Accton Edge Core ES 3526XA
Accton Edge-Core ES-3526XA
Цель статьи - описатьпроцедуру тестирования коммутатора Accton Edge-Core ES-3526XA. Планируется как замена Dlink DES-3526.
Необходимый функционал
- IP source Guard + DHCP Snooping + Otion 82 (Выдавать IP на основании порта коммутатора и запретить все IP кроме полученных по DHCP)
- ACL (Разрешить для неавторизованных IP только доступ на портал абонента)
- 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 выхода.
- Применять ACL на аплинк-портах. смирившись с тем что траффик в пределах коммутатора не контролируется полностью. Это достаточно серьезный недостаток (кроме схемы влан-на-клиента, но при использовании этой схемы нет нужды в таком дорогом коммутаторе.)
- Использовать 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 !
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 не работает.
Выводы (+ToDo)
Плюсы:
- Рабочий DHCP-snooping с поддержкой Option 82 insertion.
- Рабочий IP Source-Guard
Минусы
- Нет способа очистки маков изученных при включении port-security
Выводы: