Сравнение коммутаторов
Сравнение коммутаторов.
В связи с тем, что у меня закончились запасы DES-35{26|50}, остро встал вопрос о замене. Из кандидатов на замену:
- Alcatel-Lucent LS-6224
- Dlink DES -3028 (у меня его нет в наличии, вместо него вцелом аналогичный DES-3526 - тесты делались много раз.)
- Alied Telesyn AT-8000S
- Accton Edge-Core ES-3528XA-v2
К сожалению, я не имею информации о закупочных ценах, но по моим данным самый дешевый и коммутаторов - Accton Edge-Core ES-3528XA-v2
Все коммутаторы имеют 24 порта 10/100 и 2-4 порта combo.
Необходимый функционал
Совершенно необходимым для коммутатора уровня доступа я считаю:
- DHCP Snooping
- Option 82 Insertion
- ACL (фильтрация на уровне номера порта tcp/udp и номеров протоколов ip считаю вполне достаточной)
- VLAN (число 64 считаю вполне достаточно для коммуттатора который не планируется как транзитный)
- IP Source Guard (ф-я может называться по разному в зависимости от вендора)
- Loopback detect
- Port Security
- Storm Control
- MSTP с возможностью полной блокировки любых STP-пакетов на клиентских портах. (этот момент сомнителен, коммутаторы на доме почти всегда имеют только один аплинк)
Описанный функционал вытекает из того факта, что используется схема влан-на-группу-домов. Это с одной стороны, позволяет разгрузить агрегатоы (недешевые), с другой - налагает повышенные требования на коммутаторы досупа. Дискуссия о достоинствах или недостатоках этой схемы перед схемой влан-на-абонента выходит за пределы этой статьи.
Функционал, который желателен но обязательным не является
- Авторизация доступа на коммутатор с использованием RADIUS-сервера. С разграничением полномочий для предоставления досупа низкоквалифицированному персоналу без возможности внесения изменений в конфигурацию.
- Кабельный тестер
- Возможность снимать информацию о маках коммутатора и о состояни DHCP Snooping database по SNMP
- SNMP v3, ssh (вместо телнета), ACL на интерфейс управления коммутатором, получение времени по ntp, пересылка сообщений на удаленный syslog.
- Поддержка "китайских" SFP. (Возиться с программатором безплатно не хочется.)
Отдельно отмечу, что на данный момент работа с мультикастом не требуется, и в связи с полным отсутвием опыта у меня в этой области, от тестирования пока отказался.
Тесты
Определяю базовый набор тестов.
- Получения ip адреса тестовым компьютером на основе данных коммутатор-влан-порт.
- Проверка работы IP Source Guard.
- Проверка работы ACL
- Атака Arppoison на коммутатор с "клиентского" порта.
- Проверка работы Loopback Detect
- Проверка работы Broadcast Storm Control (как?)
ALcatel-Lucent LS-6224
у меня для теста достался следующий коммутатор:
test# sh ver SW version 1.5.1.7 ( date 26-Feb-2008 time 17:04:09 ) Boot version 1.0.0.12 ( date 19-Oct-2006 time 09:07:37 ) HW version 00.00.01
DHCP Snooping + Opt. 82 + ip source guard
Конфиг DHCPd
Кофигурирую DHCPd (максимально простой конфиг):
... class "port-1" { match if ( binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2)) = "201" and binary-to-ascii(10, 8, "/", suffix(option agent.circuit-id, 1)) = "1" ); } ... shared-network "clients" { subnet 172.16.253.0 netmask 255.255.255.252 { } subnet 10.200.0.0 netmask 255.255.0.0 { option subnet-mask 255.255.0.0; option broadcast-address 10.200.255.255; option routers 10.200.0.1; pool { range 10.200.0.2; allow members of "port-1"; } pool { } }
Конфиг коммутатора
Наиболее важные моменты в конфигурации коммутатора:
interface range ethernet e(1-24) dot1x multiple-hosts security mode max-addresses port security max 10 port security discard switchport access vlan 201 loopback-detection enable service-acl input test2 ip source-guard exit ip dhcp snooping ip dhcp snooping vlan 201 interface ethernet g1 ip dhcp snooping trust exit ip source-guard ip source-guard tcam retries-freq 600 interface vlan 1 ip address 172.16.253.2 255.255.255.0 exit ip default-gateway 172.16.253.1 ip access-list test2 permit any 10.200.0.0 0.0.255.255 10.200.0.1 0.0.0.0 permit any 10.199.0.0 0.0.255.255 10.199.0.1 0.0.0.0 deny any 10.200.0.0 0.0.255.255 any deny any 10.199.0.0 0.0.255.255 any permit any any any exit hostname test ip ssh server
Проверка работы
При запросе DHCP от клиента в Vlan201 вижу:
... поскипано ... Option: (t=82,l=18) Agent Information Option Option: (82) Agent Information Option Length: 18 Value: 0106000400C90101020800060012CF84D420 Agent Circuit ID: 000400C90101 Agent Remote ID: 00060012CFXXXXXX End Option
Где
Agent Circuit ID: 00C90101
Значение Circuit ID побайтно:00 04 00C9 01 01
00 - Тип Circit ID (Всегда 0?) (1 байт, смещение 0)
04 - Длинна (констаната? почему такое значение?) (1 байт, смещение 1)
00C9 - VLAN ID (2 байта, смещение 2)
01 - Stack/Module ID (0 или 1 у stand-alone switch) 1 байт, смещение 4
01 - Port (1 байт, смещение 5)
Очевидно, что вставка Opt. 82 работает. Пробую переключь DHCP-сервер в другой порт (g2) и включаю его как не-доверительный.
interface ethernet g2 no ip dhcp snooping trust exit
После истечения времени аренды связь с тестовым хостом пропадает. При обратном переключении - восстанавливается.
sh ip dhcp snooping binding Total number of binding: 1 MAC Adreess IP Address Lease (sec) Type VLAN Interface ------------------ --------------- ------------ ---------- ---- ---------- 00:1c:23:95:8d:8b 10.200.0.2 46 learned 201 e1
ip source guard и ACL работают так как и описано в документации без всяких "но". Попытка поставить ip адрес руками а не использовать автоматическое получение приводит к неработоспособности сети (что и требовалось).
Arppoison
Для атаки Arppoison использую одноименную утилиту из пакета arptools Т.к. коммутатор поддерживает port-security то во избежание переполнения таблицы коммутации ограниваю число маков на порту до 10
interface range ethernet e(1-24) dot1x multiple-hosts security mode max-addresses port security max 10 port security discard exit
Запускаю arppoison (собрано на ноутбуке Dell, ASP linux неважно-какой-версии). Судя по tcpdump на порт коммутатора приходят пакеты со слчайными маками ...
#tcpdump -n arp -e ... 13:58:21.583911 00:2a:d4:74:c6:2e > Broadcast, ethertype ARP (0x0806), length 42: arp reply 223.134.179.92 is-at 00:2a:d4:74:c6:2e 13:58:21.587912 00:00:97:f6:a6:e6 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 206.27.51.62 is-at 00:00:97:f6:a6:e6 13:58:21.591910 00:4d:8b:2a:b9:a4 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 146.94.241.33 is-at 00:4d:8b:2a:b9:a4 13:58:21.595914 00:31:c4:b3:a7:29 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 100.146.34.25 is-at 00:31:c4:b3:a7:29 13:58:21.599913 00:03:70:44:8e:54 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 111.35.176.20 is-at 00:03:70:44:8e:54 13:58:21.603909 00:16:db:ec:bd:a3 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 111.213.245.11 is-at 00:16:db:ec:bd:a3 13:58:21.607911 00:12:a5:b2:31:4d > Broadcast, ethertype ARP (0x0806), length 42: arp reply 228.37.251.13 is-at 00:12:a5:b2:31:4d 13:58:21.611910 00:24:44:26:9f:fe > Broadcast, ethertype ARP (0x0806), length 42: arp reply 172.232.93.77 is-at 00:24:44:26:9f:fe 13:58:21.615914 00:41:9b:91:86:43 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 84.20.17.102 is-at 00:41:9b:91:86:43 13:58:21.619912 00:37:4f:2b:f4:de > Broadcast, ethertype ARP (0x0806), length 42: arp reply 40.170.168.93 is-at 00:37:4f:2b:f4:de 13:58:21.624664 00:04:27:5c:f9:e4 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 210.39.51.64 is-at 00:04:27:5c:f9:e4 13:58:21.627957 00:06:20:a6:c9:52 > Broadcast, ethertype ARP (0x0806), length 42: arp reply 205.37.44.0 is-at 00:06:20:a6:c9:52
На коммутаторе наблюдаю:
test# sh bridge address-table Aging time is 300 sec Vlan Mac Address Port Type -------- --------------------- ------ ---------- 1 00:15:17:2c:a8:42 g1 dynamic 201 00:04:2f:1c:e0:52 e1 dynamic 201 00:04:e5:0f:e9:ee e1 dynamic 201 00:0c:13:1b:38:9f e1 dynamic 201 00:15:17:2c:a8:42 g1 dynamic 201 00:15:3f:db:08:c7 e1 dynamic 201 00:16:cc:0e:84:f7 e1 dynamic 201 00:1c:23:95:8d:8b e1 dynamic 201 00:20:0b:d3:22:88 e1 dynamic 201 00:3a:37:a5:ca:bb e1 dynamic 201 00:3c:76:0f:8c:b3 e1 dynamic 201 00:3f:98:e9:98:c8 e1 dynamic
При этом этот ноутбук (проводящий атаку) продолжает нормально работать до истечения времени аренды адреса. При переполучении адреса иногда возникают пролемы, что вполне естесвенно при активном arppoison с порта.
Считаю, что коммутатор вполне справляется с таким видом атаки.
ACL
Дописать!
Loopback detection
В качестве имитации петли использую коммутатор DEs-3010G в конфигурации по-умолчанию, где между портами 1 и 2 сделана петля патч-кордом.
К порту 3 подключен тестовый ноутбук, порт 4 подключен к коммутатору (порт e1)
На коммутаторе:
loopback-detection enable errdisable recovery interval 30 errdisable recovery cause loopback-detection
interface ethernet e1 loopback-detection enable exit
На консоли (и в логах, соответвенно)
03-Jan-2000 16:57:03 %LINK-W-Down: e1 03-Jan-2000 16:57:33 %LINK-I-Up: e1 03-Jan-2000 16:57:33 %LINK-W-Down: e1 03-Jan-2000 16:57:35 %LINK-I-Up: e1 03-Jan-2000 16:57:35 %NT_LBD-I-PORT_SUSPENDED: Port e1 suspended by Loopback Detection. 03-Jan-2000 16:57:35 %LINK-W-Down: e1 03-Jan-2000 16:58:05 %LINK-I-Up: e1 03-Jan-2000 16:58:05 %LINK-W-Down: e1 03-Jan-2000 16:58:06 %LINK-I-Up: e1 03-Jan-2000 16:58:06 %NT_LBD-I-PORT_SUSPENDED: Port e1 suspended by Loopback Detection. 03-Jan-2000 16:58:06 %LINK-W-Down: e1 03-Jan-2000 16:58:36 %LINK-I-Up: e1 03-Jan-2000 16:58:36 %LINK-W-Down: e1 03-Jan-2000 16:58:38 %LINK-I-Up: e1 03-Jan-2000 16:58:38 %NT_LBD-I-PORT_SUSPENDED: Port e1 suspended by Loopback Detection.
Дополнительный функционнал
Не останавливаясь подробно на настройке, отмечу только что на коммутаторе полностью работоспособны:
- ssh (процессора достаточно для комфортной работы)
- snmp (v2 и v3)
- syslog (на удаленный хост)
- авторизация через radius доступа на коммутатор.
- кабельный тестер (серьезным минусом считаю что требуются привилегии уровня 15 для запуска теста)
# test copper-port tdr e1 03-Jan-2000 17:05:30 %LINK-W-Down: e1 .. Cable on port e1 is good test# 03-Jan-2000 17:05:33 %LINK-I-Up: e1
- "Китайской" SFP под рукой не оказалось, но dlink-овская работает
# 03-Jan-2000 17:05:33 %LINK-I-Up: e1 03-Jan-2000 17:07:18 %Box-I-SFP-PRESENT-CHNG: unit_id 1 SFP 1 status is present.
Alied Telesyn AT-8000s/24
DHCP Snooping + Opt. 82 + ip source guard
Option: (t=82,l=18) Agent Information Option Option: (82) Agent Information Option Length: 18 Value: 0106000400C90101020800060015775F4D60 Agent Circuit ID: 000400C90101 Agent Remote ID: 00060015775F4D60 End Option
Конфиг DHCPd
Конфиг коммутатора
Проверка работы
Arppoison
Loopback detection
Дополнительный функционна
Accton Edge-Core ES-3526XA-v2
#sh ver Serial Number: A8340XXXXX Service Tag: Hardware Version: R01 EPLD Version: 0.00 Number of Ports: 26 Main Power Status: Up Loader Version: 1.0.0.2 Boot ROM Version: 1.0.0.5 Operation Code Version: 1.1.0.23
DHCP Snooping + Opt. 82 + ip source guard
Конфиг DHCPd
Конфигурация DHCPd одинаковая для всех коммутаторов.
Конфиг коммутатора
Выделю только наиболее важные моменты:
ip dhcp snooping ip dhcp snooping vlan 101 ip dhcp snooping vlan 102 ip dhcp snooping information option 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 ! interface ethernet 1/26 ip dhcp snooping trust switchport mode trunk switchport allowed vlan add 1,101-102,4093 tagged switchport native vlan 1
Проверка работы
tshark -V ... Option: (t=82,l=18) Agent Information Option Option: (82) Agent Information Option Length: 18 Value: 0106000400650101020800060012CFAE2FC0 Agent Circuit ID: 000400650101 Agent Remote ID: 00060012CFXXXXXX End Option
В качестве Agent Remote ID выступает MAC коммутатора, что не очень удобно (удобнее использовать IP). Но в текущих версиях использование (несмотря на заявленую поддержку) пока не работает.
При
ip dhcp snooping information option remote-id ip-address
В пакете наблюдаем:
Agent Circuit ID: 000400650101 Agent Remote ID: 010400000000
Arppoison
На коммутаторе вполне работоспасобна ф-я 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
При попытке атаковать коммутатор arppoison ф-я 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 не работает.
ACL
ACL невозможно использовать совместно с ip source guard, т.к. на порту траффик обработаный source guard ACL уже не обрабатывается. Из этой ситуации есть 2 выхода.
- Применять ACL на аплинк-портах. смирившись с тем что траффик в пределах коммутатора не контролируется полностью. Это достаточно серьезный недостаток (кроме схемы влан-на-клиента, но при использовании этой схемы нет нужды в таком дорогом коммутаторе.)
- Использовать policy-map и "шейпить" нежелательный траффик до скорости 1 байт в секунду.
Описание рещения с policy-map я решил в статью не включать, подробнее здесь
Кроме как "черезжопным" такое решение я назвать не могу.
Loopback detection
Данный функционал в коммутаторе отсутвует.
Дополнительный функционал
На коммутаторе работоспособны:
- ssh (работа не очень комфортная, но заметно лучше чем у DES-3526)
- snmp (v2) При настройке snmp v3 у меня возникли проблемы, я не смог добиться шифрования всего траффика.
- syslog (на удаленный хост)
- авторизация через radius доступа на коммутатор. (в текущей ыерсии не полнофункционально, не удалось настроить доступ с разным уровнем привилегий)
Dlink DES-3526
DHCP Snooping + Opt. 82 + ip source guard
Не вижу смысла подробно останавливаться на этом коммутаторе. Весь заявленный функционал на нем работает. Некоторые шероховатости прошивок исправляются. Большая часть уже исправлена.
Из особенностй отмечу
- Возможность задать произвольную строку в качестве Remote ID. Очень удобно, но не критично.
- При использовании нужно выставлять небольшой Lease-Time т.к. при значениях от 20 минут и выше, записи в таблице ip-mac-port могут удаляться до истечения Lease-Time. По опыту использования, Lease-Time=5 минут полностью решает эту проблему.
- Иногода возникает "размножение" DHCP-пакетов. Фактически, пакет перехватывается коммутатором, и отправляется на DHCP-Relay, при этом оригинальный пакет коммутируется без изменений. Это приводит к тому, что на DHCP-сервер приходят несколько пакетов (Relay сработает и на других коммутаторах сегмента на uplink-портах). Это может привести к тому, что клиент не сможет получит адрес. Проблема носит "плавающий" характер, и производитель работает над исправленим. (информация о работах получена от Ивана Демина)
- dhcp-relay включается глобально на коммутаторе для всех портов и вланов, что является серьезным минусом при наличии, например, транзитных вланов.
- При большом числе абонентов (10+) на одном порту (например, неуправляемый сегмент) большая нагрузка на CPU не позволяет использовать этот функционал.
Arppoison
В новых версиях прошивки (6-я ветка) есть средсва защиты.
config address_binding ip_mac ports 1 stop_learning_threshlod 10
Однако это требует ручной очистки в случае переполнения.
config address_binding recover_learning ports 1
Учитывая, что комутатор делает соответвующюю запись в лог, я не считаю это необходимость очистки проблемой, т.к. можно использовать триггер на событие сислога.
ACL
Наиболее качественная реализация ACL. Возможность создавать правила по содержимому пакету позволяет создавать фильтры любой сложности. Из минусов могу отметить, что часть функционала использует ACL и иногда числа правил может оказаться недостаточно. Я с таким не сталкивался, правда.
Loopback detection
Работатет отлично,проверено длительным использованием в сети из 15000 абонентов.
Дополнительный функционнал
Не останавливаясь подробно на настройке, отмечу только что на коммутаторе полностью работоспособны:
- ssh (но работа некомфортная)
- snmp (v2 и v3)
- syslog (на удаленный хост)
- авторизация через radius доступа на коммутатор.
- кабельный тестер. С определением длинны кабеля. Не требует привилегий администратора.
- Официально поддерживаются любые SFP
Cisco (Linksys) SPS 224G4
Судя по конфигу и процессу загрузки, коммутатор очень похож на Lucent и AT, с точностью до некоторго функционала. Останавливаться на настройке подробно смысла нет.
DHCP Snooping + Opt. 82 + ip source guard
Конфигурация полностью аналогична.
Arppoison
Port-Security работает нормально, переполнения таблицы коммутации не происходит порт-секюрити отрабатывает
Loopback detection
Отсутвует.
Дополнительный функционна
Полностью аналогично AT и Люцентам. Откабельного тестера мне не удалось добиться длинны кабеля. Однако, в процессе тестирования коммутатор перезагрузился с сообщением
sps224g4# 21-Nov-2008 12:11:51 %3SWCOS-F-PCLADDPCEBLOCK: Function SW3C_pcl_common_del_pce: TAPI error - failed to add PCE block, code Illegal parameter in function called