Сравнение коммутаторов: различия между версиями
Sirmax (обсуждение | вклад) (→Тесты) |
Sirmax (обсуждение | вклад) |
||
(не показаны 53 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Networking]] |
||
+ | [[Категория:SNMP]] |
||
+ | [[Категория:Switch]] |
||
+ | [[Категория:DlinkSwitch]] |
||
+ | [[Категория:EdgeCore]] |
||
=Сравнение коммутаторов.= |
=Сравнение коммутаторов.= |
||
Строка 49: | Строка 54: | ||
* Проверка работы Broadcast Storm Control (как?) |
* Проверка работы Broadcast Storm Control (как?) |
||
+ | ==ALcatel-Lucent LS-6224== |
||
− | ==1111== |
||
+ | у меня для теста достался следующий коммутатор: |
||
<PRE> |
<PRE> |
||
− | test# sh |
+ | test# sh ver |
+ | SW version 1.5.1.7 ( date 26-Feb-2008 time 17:04:09 ) |
||
− | interface ethernet e1 |
||
+ | Boot version 1.0.0.12 ( date 19-Oct-2006 time 09:07:37 ) |
||
− | port storm-control broadcast enable |
||
+ | HW version 00.00.01 |
||
− | exit |
||
+ | </PRE> |
||
− | interface ethernet e1 |
||
+ | ===DHCP Snooping + Opt. 82 + ip source guard=== |
||
− | port storm-control broadcast rate 100 |
||
+ | ====Конфиг DHCPd==== |
||
− | exit |
||
+ | Кофигурирую DHCPd (максимально простой конфиг): |
||
− | no spanning-tree |
||
+ | <PRE> |
||
− | interface ethernet e2 |
||
+ | ... |
||
− | description "---=== Access-Port=2 ===---" |
||
+ | class "port-1" |
||
− | exit |
||
+ | { |
||
− | interface range ethernet e(1,24) |
||
+ | match if ( |
||
− | dot1x multiple-hosts |
||
+ | binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2)) = "201" |
||
− | exit |
||
+ | and |
||
− | interface ethernet e1 |
||
+ | binary-to-ascii(10, 8, "/", suffix(option agent.circuit-id, 1)) = "1" |
||
− | port security mode max-addresses |
||
+ | ); |
||
− | exit |
||
+ | |||
− | interface ethernet e1 |
||
+ | } |
||
− | port security max 10 |
||
+ | ... |
||
− | exit |
||
+ | |||
− | interface range ethernet e(1,24) |
||
+ | |||
− | port security discard |
||
+ | |||
− | exit |
||
+ | shared-network "clients" { |
||
− | interface ethernet e24 |
||
+ | subnet 172.16.253.0 netmask 255.255.255.252 { } |
||
− | switchport mode customer |
||
+ | |||
− | exit |
||
+ | subnet 10.200.0.0 netmask 255.255.0.0 { |
||
− | interface range ethernet g(1-4) |
||
+ | option subnet-mask 255.255.0.0; |
||
− | switchport mode trunk |
||
+ | option broadcast-address 10.200.255.255; |
||
− | exit |
||
+ | option routers 10.200.0.1; |
||
− | vlan database |
||
+ | |||
− | vlan 201-224,1000 |
||
+ | |||
− | exit |
||
+ | pool { |
||
− | interface ethernet e1 |
||
+ | range 10.200.0.2; |
||
− | switchport access vlan 201 |
||
+ | allow members of "port-1"; |
||
− | exit |
||
+ | } |
||
− | interface range ethernet g(1-4) |
||
+ | |||
− | switchport trunk allowed vlan add 201 |
||
+ | pool { |
||
− | exit |
||
+ | } |
||
− | interface ethernet e2 |
||
+ | |||
− | switchport access vlan 202 |
||
+ | } |
||
− | exit |
||
+ | </PRE> |
||
− | interface range ethernet g(1-4) |
||
+ | ====Конфиг коммутатора==== |
||
− | switchport trunk allowed vlan add 202 |
||
+ | Наиболее важные моменты в конфигурации коммутатора: |
||
− | exit |
||
+ | <PRE> |
||
− | interface ethernet e3 |
||
+ | interface range ethernet e(1-24) |
||
− | switchport access vlan 203 |
||
+ | dot1x multiple-hosts |
||
− | exit |
||
+ | security mode max-addresses |
||
− | interface range ethernet g(1-4) |
||
+ | port security max 10 |
||
− | switchport trunk allowed vlan add 203 |
||
+ | port security discard |
||
− | exit |
||
+ | switchport access vlan 201 |
||
− | interface ethernet e4 |
||
+ | loopback-detection enable |
||
− | switchport access vlan 204 |
||
+ | service-acl input test2 |
||
− | exit |
||
+ | ip source-guard |
||
− | interface range ethernet g(1-4) |
||
+ | exit |
||
− | switchport trunk allowed vlan add 204 |
||
+ | |||
− | exit |
||
+ | |||
− | interface ethernet e5 |
||
− | switchport access vlan 205 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 205 |
||
− | exit |
||
− | interface ethernet e6 |
||
− | switchport access vlan 206 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 206 |
||
− | exit |
||
− | interface ethernet e7 |
||
− | switchport access vlan 207 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 207 |
||
− | exit |
||
− | interface ethernet e8 |
||
− | switchport access vlan 208 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 208 |
||
− | exit |
||
− | interface ethernet e9 |
||
− | switchport access vlan 209 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 209 |
||
− | exit |
||
− | interface ethernet e10 |
||
− | switchport access vlan 210 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 210 |
||
− | exit |
||
− | interface ethernet e11 |
||
− | switchport access vlan 211 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 211 |
||
− | exit |
||
− | interface ethernet e12 |
||
− | switchport access vlan 212 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 212 |
||
− | exit |
||
− | interface ethernet e13 |
||
− | switchport access vlan 213 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 213 |
||
− | exit |
||
− | interface ethernet e14 |
||
− | switchport access vlan 214 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 214 |
||
− | exit |
||
− | interface ethernet e15 |
||
− | switchport access vlan 215 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 215 |
||
− | exit |
||
− | interface ethernet e16 |
||
− | switchport access vlan 216 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 216 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 217 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 218 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 219 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 220 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 221 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 222 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 223 |
||
− | exit |
||
− | interface range ethernet g(1-4) |
||
− | switchport trunk allowed vlan add 224 |
||
− | exit |
||
ip dhcp snooping |
ip dhcp snooping |
||
ip dhcp snooping vlan 201 |
ip dhcp snooping vlan 201 |
||
+ | |||
− | ip dhcp snooping vlan 202 |
||
− | ip dhcp snooping vlan 203 |
||
− | ip dhcp snooping vlan 204 |
||
− | ip dhcp snooping vlan 205 |
||
− | ip dhcp snooping vlan 206 |
||
− | ip dhcp snooping vlan 207 |
||
− | ip dhcp snooping vlan 208 |
||
− | ip dhcp snooping vlan 209 |
||
− | ip dhcp snooping vlan 210 |
||
− | ip dhcp snooping vlan 211 |
||
− | ip dhcp snooping vlan 212 |
||
− | ip dhcp snooping vlan 213 |
||
− | ip dhcp snooping vlan 214 |
||
− | ip dhcp snooping vlan 215 |
||
− | ip dhcp snooping vlan 216 |
||
− | ip dhcp snooping vlan 217 |
||
− | ip dhcp snooping vlan 218 |
||
− | ip dhcp snooping vlan 219 |
||
− | ip dhcp snooping vlan 220 |
||
− | ip dhcp snooping vlan 221 |
||
− | ip dhcp snooping vlan 222 |
||
− | ip dhcp snooping vlan 223 |
||
− | ip dhcp snooping vlan 224 |
||
interface ethernet g1 |
interface ethernet g1 |
||
− | ip dhcp snooping trust |
+ | ip dhcp snooping trust |
− | exit |
||
− | interface ethernet g2 |
||
− | ip dhcp snooping trust |
||
− | exit |
||
− | interface ethernet g3 |
||
− | ip dhcp snooping trust |
||
− | exit |
||
− | interface ethernet g4 |
||
− | ip dhcp snooping trust |
||
exit |
exit |
||
+ | |||
ip source-guard |
ip source-guard |
||
ip source-guard tcam retries-freq 600 |
ip source-guard tcam retries-freq 600 |
||
+ | |||
− | interface range ethernet e(1-24) |
||
− | loopback-detection enable |
||
− | exit |
||
interface vlan 1 |
interface vlan 1 |
||
− | ip address 172.16.253.2 255.255.255.0 |
+ | ip address 172.16.253.2 255.255.255.0 |
exit |
exit |
||
+ | |||
ip default-gateway 172.16.253.1 |
ip default-gateway 172.16.253.1 |
||
+ | |||
− | ip access-list test1 |
||
− | permit ip 10.200.0.0 0.0.255.255 10.200.0.1 0.0.0.0 |
||
− | permit ip 10.199.0.0 0.0.255.255 10.199.0.1 0.0.0.0 |
||
− | deny ip 10.200.0.0 0.0.255.255 any |
||
− | deny ip 10.199.0.0 0.0.255.255 any |
||
− | permit ip any any |
||
− | exit |
||
− | ip access-list permit |
||
− | permit ip any any |
||
− | exit |
||
ip access-list test2 |
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.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 |
+ | 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.200.0.0 0.0.255.255 any |
− | deny any 10.199.0.0 0.0.255.255 any |
+ | deny any 10.199.0.0 0.0.255.255 any |
− | permit any any any |
+ | permit any any any |
− | exit |
||
− | interface ethernet e1 |
||
− | service-acl input test2 |
||
exit |
exit |
||
+ | |||
hostname test |
hostname test |
||
− | logging 172.16.253.1 port 214 severity notifications description test_syslog |
||
− | username dimar password 4510891ec4ee6fd75dff09d9867847d2 level 15 encrypted |
||
− | username sirmax password a295dae6bd4c30a942b7ac36ac6081df level 15 encrypted |
||
ip ssh server |
ip ssh server |
||
+ | </PRE> |
||
− | snmp-server view ALL iso included |
||
+ | |||
− | snmp-server community MON ro view ALL |
||
+ | ====Проверка работы==== |
||
− | snmp-server host 172.16.253.1 MON traps 2 |
||
+ | При запросе DHCP от клиента в Vlan201 вижу: |
||
− | no ip http server |
||
+ | <PRE> |
||
+ | ... поскипано ... |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | Где |
||
+ | Agent Circuit ID: 00C90101 |
||
+ | Значение Circuit ID побайтно:<FONT color=red>00</FONT> <FONT color=green>04</FONT> <FONT color=blue>00C9</FONT> <FONT color=PINK>01</FONT> <FONT color=GREY>01</FONT><BR> |
||
+ | <BR> |
||
+ | <FONT color=red>00 </FONT> - Тип Circit ID (Всегда 0?) (1 байт, смещение 0)<BR> |
||
+ | <FONT color=green>04</FONT> - Длинна (констаната? почему такое значение?) (1 байт, смещение 1)<BR> |
||
+ | <FONT color=blue>00C9</FONT> - VLAN ID (2 байта, смещение 2)<BR> |
||
+ | <FONT color=PINK>01</FONT> - Stack/Module ID (0 или 1 у stand-alone switch) 1 байт, смещение 4<BR> |
||
+ | <FONT color=GREY>01</FONT> - Port (1 байт, смещение 5)<BR> |
||
+ | |||
+ | Очевидно, что вставка Opt. 82 работает. |
||
+ | Пробую переключь DHCP-сервер в другой порт (g2) и включаю его как не-доверительный. |
||
+ | <PRE> |
||
+ | interface ethernet g2 |
||
+ | no ip dhcp snooping trust |
||
+ | exit |
||
+ | </PRE> |
||
+ | |||
+ | После истечения времени аренды связь с тестовым хостом пропадает. При обратном переключении - восстанавливается. |
||
+ | |||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | ip source guard и ACL работают так как и описано в документации без всяких "но". Попытка поставить ip адрес руками а не использовать автоматическое получение приводит к неработоспособности сети (что и требовалось). |
||
+ | ===Arppoison=== |
||
+ | Для атаки Arppoison использую одноименную утилиту из пакета arptools |
||
+ | Т.к. коммутатор поддерживает port-security то во избежание переполнения таблицы коммутации ограниваю число маков на порту до 10 |
||
+ | <PRE> |
||
+ | interface range ethernet e(1-24) |
||
+ | dot1x multiple-hosts |
||
+ | security mode max-addresses |
||
+ | port security max 10 |
||
+ | port security discard |
||
+ | exit |
||
+ | </PRE> |
||
+ | Запускаю arppoison (собрано на ноутбуке Dell, ASP linux неважно-какой-версии). Судя по tcpdump на порт коммутатора приходят пакеты со слчайными маками ... |
||
+ | <PRE> |
||
+ | #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 |
||
+ | </PRE> |
||
+ | |||
+ | На коммутаторе наблюдаю: |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | При этом этот ноутбук (проводящий атаку) продолжает нормально работать до истечения времени аренды адреса. При переполучении адреса иногда возникают пролемы, что вполне естесвенно при активном arppoison с порта. |
||
+ | |||
+ | Считаю, что коммутатор вполне справляется с таким видом атаки. |
||
+ | |||
+ | ===ACL=== |
||
+ | Дописать! |
||
+ | |||
+ | ===Loopback detection=== |
||
+ | В качестве имитации петли использую коммутатор DEs-3010G в конфигурации по-умолчанию, где между портами 1 и 2 сделана петля патч-кордом. |
||
+ | К порту 3 подключен тестовый ноутбук, порт 4 подключен к коммутатору (порт e1) |
||
+ | <BR> |
||
+ | На коммутаторе: |
||
+ | <PRE> |
||
+ | loopback-detection enable |
||
+ | errdisable recovery interval 30 |
||
+ | errdisable recovery cause loopback-detection |
||
+ | </PRE> |
||
+ | |||
+ | <PRE> |
||
+ | interface ethernet e1 |
||
+ | loopback-detection enable |
||
+ | exit |
||
+ | </PRE> |
||
+ | |||
+ | На консоли (и в логах, соответвенно) |
||
+ | <PRE> |
||
+ | 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. |
||
+ | </PRE> |
||
+ | |||
+ | ===Дополнительный функционнал=== |
||
+ | |||
+ | Не останавливаясь подробно на настройке, отмечу только что на коммутаторе полностью работоспособны: |
||
+ | * ssh (процессора достаточно для комфортной работы) |
||
+ | * snmp (v2 и v3) |
||
+ | * syslog (на удаленный хост) |
||
+ | * авторизация через radius доступа на коммутатор. |
||
+ | * кабельный тестер (серьезным минусом считаю что требуются привилегии уровня 15 для запуска теста) |
||
+ | <PRE> |
||
+ | # 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 |
||
+ | </PRE> |
||
+ | * "Китайской" SFP под рукой не оказалось, но dlink-овская работает |
||
+ | <PRE> |
||
+ | # 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. |
||
+ | </PRE> |
||
+ | |||
+ | ==Alied Telesyn AT-8000s/24== |
||
+ | ===DHCP Snooping + Opt. 82 + ip source guard=== |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | ====Конфиг DHCPd==== |
||
+ | ====Конфиг коммутатора==== |
||
+ | ====Проверка работы==== |
||
+ | |||
+ | ===Arppoison=== |
||
+ | |||
+ | ===Loopback detection=== |
||
+ | |||
+ | ===Дополнительный функционна=== |
||
+ | |||
+ | ==Accton Edge-Core ES-3526XA-v2== |
||
+ | <PRE> |
||
+ | #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 |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | ===DHCP Snooping + Opt. 82 + ip source guard=== |
||
+ | ====Конфиг DHCPd==== |
||
+ | Конфигурация DHCPd одинаковая для всех коммутаторов. |
||
+ | |||
+ | ====Конфиг коммутатора==== |
||
+ | Выделю только наиболее важные моменты: |
||
+ | <PRE> |
||
+ | 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 |
||
+ | |||
+ | </PRE> |
||
+ | |||
+ | ====Проверка работы==== |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | В качестве Agent Remote ID выступает MAC коммутатора, что не очень удобно (удобнее использовать IP). Но в текущих версиях использование (несмотря на заявленую поддержку) пока не работает. |
||
+ | |||
+ | При |
||
+ | <PRE> |
||
+ | ip dhcp snooping information option remote-id ip-address |
||
+ | </PRE> |
||
+ | В пакете наблюдаем: |
||
+ | <PRE> |
||
+ | Agent Circuit ID: 000400650101 |
||
+ | Agent Remote ID: 010400000000 |
||
+ | </PRE> |
||
+ | |||
+ | ===Arppoison=== |
||
+ | |||
+ | На коммутаторе вполне работоспасобна ф-я port-security |
||
+ | |||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | При попытке атаковать коммутатор arppoison ф-я security отрабатывает верно, и коммутатор перестает изучать маки на атакованом порту. |
||
+ | |||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | Т.е. атака arp poison не работает. |
||
+ | {{Note|Однако, в бочке меда есть немаленькая ложка дегтя - маки, имеющие статус Learned-PSEC не очищаются до перезагрузки. Ожидается исправлеие в ближайшее время.}} |
||
+ | |||
+ | ===ACL=== |
||
+ | ACL невозможно использовать совместно с ip source guard, т.к. на порту траффик обработаный source guard ACL уже не обрабатывается. Из этой ситуации есть 2 выхода. |
||
+ | # Применять ACL на аплинк-портах. смирившись с тем что траффик в пределах коммутатора не контролируется полностью. Это достаточно серьезный недостаток (кроме схемы влан-на-клиента, но при использовании этой схемы нет нужды в таком дорогом коммутаторе.) |
||
+ | # Использовать policy-map и "шейпить" нежелательный траффик до скорости 1 байт в секунду. |
||
+ | Описание рещения с policy-map я решил в статью не включать, подробнее [http://wiki.sirmax.noname.com.ua/index.php/Accton_Edge_Core_ES_3526XA#ACL здесь] |
||
+ | |||
+ | Кроме как "черезжопным" такое решение я назвать не могу. |
||
+ | |||
+ | ===Loopback detection=== |
||
+ | Данный функционал в коммутаторе отсутвует. |
||
+ | |||
+ | ===Дополнительный функционал=== |
||
+ | На коммутаторе работоспособны: |
||
+ | * ssh (работа не очень комфортная, но заметно лучше чем у DES-3526) |
||
+ | * snmp (v2) При настройке snmp v3 у меня возникли проблемы, я не смог добиться шифрования всего траффика. |
||
+ | * syslog (на удаленный хост) |
||
+ | * авторизация через radius доступа на коммутатор. (в текущей ыерсии не полнофункционально, не удалось настроить доступ с разным уровнем привилегий) |
||
+ | |||
+ | ==Dlink DES-3526== |
||
+ | ===DHCP Snooping + Opt. 82 + ip source guard=== |
||
+ | Не вижу смысла подробно останавливаться на этом коммутаторе. Весь заявленный функционал на нем работает. Некоторые шероховатости прошивок исправляются. Большая часть уже исправлена.<BR> |
||
+ | Из особенностй отмечу |
||
+ | * Возможность задать произвольную строку в качестве 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-я ветка) есть средсва защиты. |
||
+ | <PRE> |
||
+ | config address_binding ip_mac ports 1 stop_learning_threshlod 10 |
||
+ | </PRE> |
||
+ | Однако это требует ручной очистки в случае переполнения. |
||
+ | <PRE> |
||
+ | config address_binding recover_learning ports 1 |
||
+ | </PRE> |
||
+ | |||
+ | Учитывая, что комутатор делает соответвующюю запись в лог, я не считаю это необходимость очистки проблемой, т.к. можно использовать триггер на событие сислога. |
||
+ | ===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 и Люцентам. |
||
+ | Откабельного тестера мне не удалось добиться длинны кабеля. |
||
+ | Однако, в процессе тестирования коммутатор перезагрузился с сообщением |
||
+ | <PRE> |
||
+ | 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 |
||
</PRE> |
</PRE> |
Текущая версия на 09:04, 7 октября 2020
Сравнение коммутаторов.
В связи с тем, что у меня закончились запасы 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