Accton Edge Core ES 3526XA

Материал из noname.com.ua
Версия от 15:26, 25 февраля 2011; Sirmax (обсуждение | вклад) (Защищена страница «Accton Edge Core ES 3526XA» [edit=sysop:move=sysop])
Перейти к навигацииПерейти к поиску


Accton Edge-Core ES-3526XA

Цель статьи - описатьпроцедуру тестирования коммутатора Accton Edge-Core ES-3526XA. Планируется как замена Dlink DES-3526.
Необходимый функционал

  1. IP source Guard + DHCP Snooping + Otion 82 (Выдавать IP на основании порта коммутатора и запретить все IP кроме полученных по DHCP)
  2. ACL (Разрешить для неавторизованных IP только доступ на портал абонента)
  3. VLAN, SNMP - более менее стандартный функционал L2-коммутаторов.

Bu3zNZ <a href="http://paoomxejtzhu.com/">paoomxejtzhu</a>, [url=http://vgiovoowihvv.com/]vgiovoowihvv[/url], [link=http://mxkmsexltwqp.com/]mxkmsexltwqp[/link], http://aggljqtjpdtr.com/

Обновление Firmware

Сразу же обновляю firmware:

Console#dir
          File name                        File type       Startup Size (byte)
 -------------------------------------     --------------  ------- -----------
 Unit1:
          ES3526XA-V2_DIAG_1005.bix        Boot-Rom Image  Y           305512
          ES3526XA_ES3510_V11022.bix       Operation Code  Y          3076624
          Factory_Default_Config.cfg       Config File     N              542
          startup1.cfg                     Config File     Y             5572
          y                                Config File     N             5437
 ---------------------------------------------------------------------------
                                                  Total free space:   3276800
Console#copy tftp file
TFTP server IP address: 192.168.95.22
Choose file type:
 1. config:  2. opcode: <1-2>: 2
Source file name: ES3526XA_ES3510_V11023.bix
Destination file name: ES3526XA_ES3510_V11023.bix
Write to FLASH Programming.
Write to FLASH finish.
Success.

Выбираю новый софт как загружаемый по-умолчанию

Console(config)#boot system opcode:ES3526XA_ES3510_V11023.bix
Success.

Наблюдаю загрузку нового софта:

Loading Runtime Image File : ES3526XA_ES3510_V11023.bix

Настройка

CLI вцелом cisco-like, но это пожалуй самый неудобный в настройке коммутатор из тех с которыми мне приходилось иметь дело. Возможно, дело привычки.

DHCP Relay

Настройка коммутатора

Настройка достаточно простоа и аналогична другим коммутаторам (AT-8000S, Lucent LS-62..., DES- ...)

ip dhcp relay information option
ip dhcp relay information option remote-id ip-address
ip dhcp relay information policy replace
 IP DHCP relay server 172.16.251.1

Однако, отмечу что в пакете в качестве Remote-ID содержиться не ip а какой-то мусор. На данный момент у меня нет ответа от поставщика как расшифровать remote-id.


Настойка DHCPd

tshark -V -n  ...
Вот пример пакета (только option 82)
Bootstrap Protocol
    Message type: Boot Reply (2)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 1
    Transaction ID: 0xa5ee3a70
    Seconds elapsed: 0
    Bootp flags: 0x8000 (Broadcast)
        1... .... .... .... = Broadcast flag: Broadcast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 192.168.199.2 (192.168.199.2)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 172.16.251.2 (172.16.251.2)
    Client MAC address: 00:1c:23:95:8d:8b (00:1c:23:95:8d:8b)
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Offer
        Option: (53) DHCP Message Type
        Length: 1
        Value: 02
    Option: (t=54,l=4) Server Identifier = 172.16.251.1
        Option: (54) Server Identifier
        Length: 4
        Value: AC10FB01
    Option: (t=51,l=4) IP Address Lease Time = 8 hours, 36 minutes, 40 seconds
        Option: (51) IP Address Lease Time
        Length: 4
        Value: 00007918
    Option: (t=1,l=4) Subnet Mask = 255.255.255.0
        Option: (1) Subnet Mask
        Length: 4
        Value: FFFFFF00
    Option: (t=3,l=4) Router = 192.168.199.254
        Option: (3) Router
        Length: 4
        Value: C0A8C7FE
    Option: (t=6,l=8) Domain Name Server
        Option: (6) Domain Name Server
        Length: 8
        Value: C1213021C12130A0
        IP Address: 193.33.48.33
        IP Address: 193.33.48.160
    Option: (t=82,l=16) Agent Information Option
        Option: (82) Agent Information Option
        Length: 16
        Value: 01060004006501010206010400000000
        Agent Circuit ID: 000400650101
        Agent Remote ID: 010400000000
    End Option
    Padding

Первое впечатление, что формат Circuit ID анлогичен Dlink DES-3526 и другим коммутаторам (Если есть стандарт то хорошо бы найти докумнтацию)

Значение Circuit ID побайтно:00 04 0065 01 01

00 - Тип Circit ID (Всегда 0?) (1 байт, смещение 0)
04 - Длинна (констаната? почему такое значение?) (1 байт смещение 1)
0065 - VLAN ID (2 байта, смещение 2)
01 - Stack/Module ID (0 или 1 у stand-alone switch) 1 байт, смещение 4
01 - Port (1 байт, смещение 5)


Конфиг сервера аналогичен.
Простой пример:

class "port-1"
  {
  match if(
          binary-to-ascii(10, 8, "/",  suffix(option agent.circuit-id, 1)) = "1"
        );
  }


Для логов использую следующюю конструкцию:

if exists agent.circuit-id {
    log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ",
        binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " , VLAN ",
        binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)),  " on switch ",
        binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6))));

    log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address),
     "<>raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id), " AID: ",
        binary-to-ascii(16, 8, ".", option agent.remote-i

В логах наблюдаю успешную выдачу IP

anarxist dhcpd: DHCPDISCOVER from 00:1c:ХХ:ХХ:ХХ:ХХ (tester) via 172.16.251.2
anarxist dhcpd: DHCPOFFER on 192.168.199.2 to 00:1c:ХХ:ХХ:ХХ:ХХ (tester) via 172.16.251.2
anarxist dhcpd: Lease for 192.168.199.2 is connected to interface 1/1 , VLAN 101 on switch 0:0:0:0
anarxist dhcpd: Lease for 192.168.199.2 raw option-82 info is CID: 0.4.0.101.1.1 AID: 1.4.0.0.0.0

jl3IhB <a href="http://vzcqnelnsdgd.com/">vzcqnelnsdgd</a>, [url=http://nrcyedtxxjqw.com/]nrcyedtxxjqw[/url], [link=http://xdzlyczrnzmv.com/]xdzlyczrnzmv[/link], http://nfudtuznliqi.com/

IP Source Guard

IP Source Guard - функционал который позволяет блокировать все src-ip (и мак?) кроме выданных по DHCP. Весьма полезный функционал совместно с Option 82 insertion и DHCP Snooping.

На коммутаторе:

interface ethernet 1/1
 ip source-guard sip-mac
exit

Пробую поставить ip адрес вручную.
После истечения времени Lease-time связь с тестовым клиентом пропадает. После восстановления автоматических настроенк и получении ip адреса от DHCP-сервера связь восстанавливается.

ACL

ACL невозможно использовать совместно с ip source guard, т.к. на порту траффик обработаный source guard ACL уже не обрабатывается. Из этой ситуации есть 2 выхода.

  1. Применять ACL на аплинк-портах. смирившись с тем что траффик в пределах коммутатора не контролируется полностью. Это достаточно серьезный недостаток (кроме схемы влан-на-клиента, но при использовании этой схемы нет нужды в таком дорогом коммутаторе.)
  2. Использовать policy-map и "шейпить" нежелательный траффик до скорости 1 байт в секунду. Выглядит как "костыль", не так ли?

На втором способе остановлюсь чуть подробнее.

Для примера, рассмотрим следующюю ситуацию: Клиент может получать ip адрес из 3-х различных пулов в зависимости от состояния счета.
Пусть это будут пулы

  • 10.199.0.0 /24 для "неплатильщиков"
  • 10.200.0.0 /24 для "неавторизованных"

Для "неплатильщиков" нужно разрешить только хост 192.168.95.22 где запущен соответвующим образом настроенный ДНС и веб-сервер с сообщением о долге, а для "неавторизованных" разрешить хост 10.199.0.100 где, соответвенно, запущен сервис авторизации. Самбу запретить для всех.

Для этого пришлось применить следужщюю конструкцию:

access-list IP extended m4
 permit 10.199.0.0 255.255.0.0 host 10.199.0.100
 permit 10.200.0.0 255.255.0.0 host 192.168.95.22
 deny 10.199.0.0 255.255.0.0 any
 deny 10.200.0.0 255.255.0.0 any
 deny TCP any any destination-port 135 135
 deny TCP any any destination-port 137 137
 deny TCP any any destination-port 138 138
 deny TCP any any destination-port 139 139
 deny TCP any any destination-port 445 445
 deny UDP any any destination-port 135 135
 deny UDP any any destination-port 137 137
 deny UDP any any destination-port 138 138
 deny UDP any any destination-port 139 139
!
class-map m4 match-any
 match access-list m4
 exit
!
!
policy-map m4
 class m4
  set cos 0
  police 1 64 exceed-action drop
  exit
 exit
!
interface ethernet 1/1
 ip source-guard sip-mac
 switchport allowed vlan add 101 untagged
 switchport mode access
 switchport native vlan 101
 switchport allowed vlan remove 1
 switchport allowed vlan remove 4093
 service-policy input m4
!
Note: Особо отмечу, что policy-map заработали корректно только после перезагрузки коммутатора

Port Security

На коммутаторе вполне работоспасобна ф-я port-security

interface ethernet 1/2
 port security max-mac-count 10
 port security action trap-and-shutdown
 ip source-guard sip-mac
 switchport allowed vlan add 101 untagged
 switchport mode access
 switchport native vlan 101
 switchport allowed vlan remove 1
 switchport allowed vlan remove 4093
 service-policy input m4

При попытке атаковать коммутатор (утилита arppoison из пакета arptools) ф-я security отрабатывает верно, и коммутатор перестает изучать маки на атакованом порту.

Console# sh mac-address-table
 Interface MAC Address       VLAN Type
 --------- ----------------- ---- -----------------
  Eth 1/ 2 00-01-E5-E5-E1-97  101 Learned-PSEC
  Eth 1/ 2 00-02-CD-15-A8-EE  101 Learned-PSEC
  Eth 1/ 2 00-16-EF-72-56-36  101 Learned-PSEC
  Eth 1/ 2 00-18-B8-9B-C2-BE  101 Learned-PSEC
  Eth 1/ 2 00-2D-AF-F7-7E-CC  101 Learned-PSEC
  Eth 1/ 2 00-30-F9-DF-12-61  101 Learned-PSEC
  Eth 1/ 2 00-35-F2-76-37-D3  101 Learned-PSEC
  Eth 1/ 2 00-37-36-27-47-2F  101 Learned-PSEC
  Eth 1/ 2 00-4B-19-DF-10-4F  101 Learned-PSEC
  Eth 1/ 2 00-4C-D8-DF-1F-6D  101 Learned-PSEC
  Eth 1/26 00-30-48-35-9A-11    1 Learned
  Eth 1/26 00-30-48-35-9A-11  101 Learned

Т.е. атака arp poison не работает.

Note: Однако, в бочке меда есть немаленькая ложка дегтя - маки, имеющие статус Learned-PSEC не очищаются до перезагрузки. Ожидается исправлеие в ближайшее время.

Выводы (+ToDo)

Плюсы:

  1. Рабочий DHCP-snooping с поддержкой Option 82 insertion.
  2. Рабочий IP Source-Guard


Минусы

  1. Нет способа очистки маков изученных при включении port-security

Выводы: