faq обучение настройка
Текущее время: Ср июн 25, 2025 16:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: Вт май 26, 2009 14:20 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 18:39
Сообщений: 68
Здравствуйте.

На форуме неоднократно читал, что FBPDU определяет, будут ли передаваться в порт BPDU-пакеты при выключенном STP на коммутаторе.

Пытался написать правила ACL чтобы фильтровать BPDU пакеты, приходящие с порта (надеялся опознавать их по DSAP 0x42 и ловить с помощью ACL на packet_content_mask, но пока что-то не выходит :oops: ) и обнаружил следующее поведение функции FPBDU.
Тестовый стенд: линукс(eth2) --- (порт 3)DES-3526(порт 10) --- микротик

"Микротик" - эта такая железячка, которая умеет участвовать в работе stp. Её функция в данной схеме - просто генерить bpdu. Можно было бы вместо неё взять еще один dlink с включенный STP, но нету свободного коммутатора :(
На линуксе tcpdump'ом смотрю - выпускает ли коммутатор в порт линукса (порт №3) bpdu пакеты от микротика.
Или я неправильно провожу эксперимент, или функция FBPDU регулирует прохождение BPDU на порте в обе стороны, не только отдачу в порт:

Прошивка 6.00.B12
Код:
Boot PROM Version : Build 5.00.009
Firmware Version  : Build 6.00.B12
Hardware Version  : 3A1


STP выключен
Код:
DES-3526:admin#sh stp
Command: show stp

STP Bridge Global Settings
---------------------------
STP Status        : Disabled
STP Version       : RSTP
Max Age           : 20
Hello Time        : 2
Forward Delay     : 15
Max Hops          : 20
TX Hold Count     : 6
Forwarding BPDU   : Enabled


Настройки STP 3го порта (сюда подключен линукс)
Код:
DES-3526:admin#sh stp ports 3
Command: show stp ports 3
MSTP Port Information
----------------------
Port Index        : 3     ,  Hello Time: 2 /2 ,  Port STP enabled
Restricted role   : False ,  Restricted TCN : False
External PathCost : Auto     /200000   , Edge Port : False/No , P2P : Auto /Yes
Port Forward BPDU : enabled
BPDU Type : RSTP

Msti   Designated Bridge   Internal PathCost  Prio  Status       Role
-----  ------------------  -----------------  ----  -----------  ----------
0      N/A                 200000             128   -            Disabled


Настройки STP 10го порта (сюда подключен микротик, он же stp root)
Код:
DES-3526:admin#sh stp port 10
Command: show stp ports 10
MSTP Port Information
----------------------
Port Index        : 10    ,  Hello Time: 2 /2 ,  Port STP enabled
Restricted role   : False ,  Restricted TCN : False
External PathCost : Auto     /200000   , Edge Port : False/No , P2P : Auto /Yes
Port Forward BPDU : disabled
BPDU Type : RSTP

Msti   Designated Bridge   Internal PathCost  Prio  Status       Role
-----  ------------------  -----------------  ----  -----------  ----------
0      N/A                 200000             128   -            Disabled


Итого: FBPDU у порта, с которого приходят BPDU, выключен. FBPDU у порта с линуксом - включен.

Код:
[root@campus0 ~]# tcpdump -i eth2 -nnnvvve -c 200
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
14:39:53.949068 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 108: (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 94) 192.168.249.207.5678 > 255.255.255.255.5678: UDP, length 66
14:39:55.758943 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.249.160 tell 192.168.249.207
14:39:56.758979 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.249.160 tell 192.168.249.207
14:39:57.759045 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.249.160 tell 192.168.249.207


Видим следы жизнедеятельности микротика - он по арп ищет свой шлюз (192.168.249.160). BPDU не наблюдается. Т.е. при выключенном FBPDU пакеты, приходящие в порт, не принимаются.

Теперь для порта №10, куда подключен микротик, включаем FBPDU:
Код:
DES-3526:admin#conf stp ports 10 fbpdu ena
Command: config stp ports 10 fbpdu enable

Success.

DES-3526:admin#sh stp port 10
Command: show stp ports 10
MSTP Port Information
----------------------
Port Index        : 10    ,  Hello Time: 2 /2 ,  Port STP enabled
Restricted role   : False ,  Restricted TCN : False
External PathCost : Auto     /200000   , Edge Port : False/No , P2P : Auto /Yes
Port Forward BPDU : enabled
BPDU Type : RSTP

Msti   Designated Bridge   Internal PathCost  Prio  Status       Role
-----  ------------------  -----------------  ----  -----------  ----------
0      N/A                 200000             128   -            Disabled


Смотрим tcpdump на линуксе:
Код:
[root@campus0 ~]# tcpdump -i eth2 -nnnvvve -c 200
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
14:45:00.870881 00:0c:42:36:4e:dc > 01:80:c2:00:00:00, 802.3, length 60: LLC, dsap STP (0x42), ssap STP (0x42), cmd 0x03: 802.1d unknown version
14:45:02.870956 00:0c:42:36:4e:dc > 01:80:c2:00:00:00, 802.3, length 60: LLC, dsap STP (0x42), ssap STP (0x42), cmd 0x03: 802.1d unknown version
14:45:04.871076 00:0c:42:36:4e:dc > 01:80:c2:00:00:00, 802.3, length 60: LLC, dsap STP (0x42), ssap STP (0x42), cmd 0x03: 802.1d unknown version
14:45:06.871184 00:0c:42:36:4e:dc > 01:80:c2:00:00:00, 802.3, length 60: LLC, dsap STP (0x42), ssap STP (0x42), cmd 0x03: 802.1d unknown version


BPDU коммутатором пропускаются (в 10й порт пришли, в 3й ушли).

Теперь у 3го порта (сюда подключен линуск) отключаю FBPDU:

Код:
DES-3526:admin#conf stp ports  3 fbpdu dis
Command: config stp ports 3 fbpdu disable

Success.

DES-3526:admin#sh stp port  3
Command: show stp ports 3
MSTP Port Information
----------------------
Port Index        : 3     ,  Hello Time: 2 /2 ,  Port STP enabled
Restricted role   : False ,  Restricted TCN : False
External PathCost : Auto     /200000   , Edge Port : False/No , P2P : Auto /Yes
Port Forward BPDU : disabled
BPDU Type : RSTP

Msti   Designated Bridge   Internal PathCost  Prio  Status       Role
-----  ------------------  -----------------  ----  -----------  ----------
0      N/A                 200000             128   -            Disabled


BPDU до линукса более не доходят:
Код:
[root@campus0 ~]# tcpdump -i eth2 -nnnvvve -c 200
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
14:48:27.791691 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.249.160 tell 192.168.249.207
14:48:28.791639 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.249.160 tell 192.168.249.207
14:48:29.791715 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.249.160 tell 192.168.249.207
14:48:53.983421 00:0c:42:36:4e:dc > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 108: (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 94) 192.168.249.207.5678 > 255.255.255.255.5678: UDP, length 66
14:48:53.983503 00:0c:42:36:4e:dc > 01:00:0c:cc:cc:cc, 802.3, length 83: LLC, dsap SNAP (0xaa), ssap SNAP (0xaa), cmd 0x03: oui Cisco (0x00000c), pid CDP (0x2000): CDPv1, ttl: 120s, checksum: 376 (unverified), length 61
        Device-ID (0x01), length: 8 bytes: 'MikroTik'
        Address (0x02), length: 13 bytes: IPv4 (1) 192.168.249.207
        Capability (0x04), length: 4 bytes: (0x00000001): Router
        Version String (0x05), length: 4 bytes:
          3.10
        Platform (0x06), length: 8 bytes: 'MikroTik'


Проверяю что не напутал с портами - что линукс действительно в 3м, а микротик - в 10м:

коммутатор:
Код:
DES-3526:admin#sh fdb port 3
Command: show fdb port 3

VID   VLAN Name         MAC Address        Port    Type
----  ----------------  -----------------  ------  ----------------
1     default           00-0A-E6-04-7E-34  3       Dynamic

Total Entries : 1

DES-3526:admin#sh fdb port 10
Command: show fdb port 10

VID   VLAN Name         MAC Address        Port    Type
----  ----------------  -----------------  ------  ----------------
1     default           00-0C-42-36-4E-DC  10      Dynamic

Total Entries : 1

линукс:
Код:
[root@campus0 ~]# ifconfig eth2 | grep HWaddr
eth2      Link encap:Ethernet  HWaddr 00:0A:E6:04:7E:34

микротик:
Код:
[admin@MikroTik] > /interface ethernet print
Flags: X - disabled, R - running, S - slave
 #    NAME                   MTU   MAC-ADDRESS       ARP        MASTER-PORT                  SWITCH   
 0 R  ether1                 1500  00:0C:42:36:4E:DC enabled   


Результаты эксперимента подтверждаются многократными итерациями.

Честно скажу, что меня фильтрация в обе стороны вполне устраивает и для меня она более удобна, чем только фильтрация отдаваемых в порт BPDU пакетов. Собственно вопрос - является ли подобное поведение опции FBPDU багом или фичей? Не изменится ли оно в следующей версии прошивки?

Ну а если кто бы еще подсказал как можно зафильтровать STP пакеты с помощью ACL - было бы совсем хорошо :) Это нужно для ситуации когда между двумя 3526 есть некоторое кол-во домов с небольшим числом абонентов и ставить на эти дома управляемые коммутаторы мне никто не даст по финансовым причинам, но хотелось бы с помощью ACL принимать с таких аплинков BPDU только от определенных MAC-адресов.

Заранее спасибо и респект тем, кто дочитал до этого места :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт май 26, 2009 16:04 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт янв 21, 2005 11:52
Сообщений: 11212
Откуда: D-Link, Moscow
Функционал меняться не будет, а bpdu нужно фильтровать через CPU Interface Filtering.

_________________
С уважением,
Бигаров Руслан.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт май 26, 2009 16:44 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 18:39
Сообщений: 68
Bigarov Ruslan писал(а):
Функционал меняться не будет, а bpdu нужно фильтровать через CPU Interface Filtering.


Спасибо за ответ. bpdu фильтровать как раз и пытаюсь через cpu interface filtering но пока не очень получается. Но ничего, я упорный :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB