Фильтрация L2-уровня (Transparent Firewall)

Фильтрация L2-уровня (Transparent Firewall)

Техподдержка Фактор-ТС

В интерфейсах bridge возможно производить фильтрацию на уровне Ethernet фреймов. Для этого используются списки bridge access-list. В bridge access-list также присутствует возможность фильтровать трафик на L3/L4 уровне.

В приведенном примере применена типовая схема коммутации № 3

Создание bridge access-list в целом аналогично созданию ip access-list, однако критерии src/dst/proto будут проверять соответствующие поля в заголовке Ethernet, а не IP. 

Пример создания bridge access-list:

NX-1(config)# bridge access-list mylist

NX-1(config-bracl-mylist)# deny src a8:5e:45:6d:e5:68


В данной конфигурации фильтр запрещает траффик с источником mac-адреса ПК-1

В отличие от ip access-list - bridge access-list может использоваться только на конкретном интерфейсе bridge. 

В Dionis-NX доступны следующие точки привязки bridge access-list:

  • local-in - В этом случае фильтроваться будут фреймы, которые получены в одном из портов сетевого моста, но покидают его (например, фреймы, предназначенные самому маршрутизатору, или фреймы, которые покинут маршрутизатор через порт, не входящий в сетевой мост).
  • local-out - В этом случае фильтроваться будут фреймы, которые попадают в сетевой мост из другого интерфейса или из самого маршрутизатора.
  • Forward - В этом случае фильтроваться будут фреймы, которые получены в одном из портов сетевого моста и уходят через порт того же сетевого моста.


Пример привязки bridge access-list:

NX-1(config)# interface bridge 0

NX-1(config-if-bridge0)# bridge access-group mylist forward

Теперь, если запустить ping с ПК-1 на ПК-2, весь траффик будет сбрасываться, т.к. mac-адрес ПК-1 запрещен правилами фильтрациями и проверим что трафик не проходит через интерфейс bridge 0 командой «tcpdump bridge 0 proto icmp verbose»:

NX-1# tcpdump bridge 0 proto icmp verbose

tcpdump: listening on bridge0, link-type EN10MB (Ethernet), capture size 262144 bytes

08:03:32.009278 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 115, length 40

08:03:36.999073 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 116, length 40

08:03:40.129778 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 117, length 40

08:03:44.222915 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 118, length 40


Как мы можем видеть с ПК-1 видны были ICMP- пакеты, но на них не приходил ответ т.к. они не доходили до ПК-2.

При задании протокола IPv4 становятся доступны параметры, позволяющие анализировать заголовок IP. Аналогично, при задании протокола IPv6 можно анализировать заголовок IP6.


NX-1(config)# bridge access-list mylist

NX-1(config-bracl-mylist)# deny IPv4 ip-src 192.168.1.2/24


Для проверки выполнения правил фильтрации следует запустить процедуру PING между ПК-1 и ПК-2:


NX-1(config-if-bridge0)# do tcpdump bridge 0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on bridge4, link-type EN10MB (Ethernet), capture size 262144 bytes

08:35:11.895826 ARP, Request who-has 192.168.1.3 (08:35:71:f0:0d:81 (oui Unknown)) tell 192.168.1.2, length 46

08:35:11.901096 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 145, length 40

08:35:16.902453 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 146, length 40

08:35:21.900838 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 147, length 40

08:35:26.901234 IP 192.168.1.2 > 192.168.1.3: ICMP echo request, id 1, seq 148, length 40


Результат проверки фильтрации IP-датаграмм в части проверки по типу IPv4 заголовка стоит считать выполненным, если обмен данными или его блокирование выполняются в соответствии со значениями, указанными в правилах фильтрации.

Bridge access-list имеет возможность фильтровать трафик по протоколу VLAN (802.1Q)

К примеру, чтобы запретить любой трафик кроме тегированного необходимо составить стенд согласно Схеме коммутации 5 (вместо NX-1 и NX-3 можно использовать управляемые коммутаторы, а NX-2 используется в роли Bridge), и в новом созданном bridge access-list добавить следующие параметры:

NX-2(config)# bridge access-list vlan

NX-2(config-bracl-vlan)# permit 802_1Q

NX-2(config-bracl-vlan)# deny


NX-2(config)# interface bridge 0

NX-2(config-if-bridge0)# bridge access-group vlan forward


В bridge 0 были добавлены интерфейсы ethernet 3 и ethernet 4 


NX-2(config-if-bridge0)# port ethernet 3

NX-2(config-if-bridge0)# port ethernet 4


На NX-1 и NX-3 были настроены VLAN-интерфейсы, с VLAN id 20 (О том, как настроить VLAN-интерфейсы см. пункт 7.7) Для того, чтобы проверить, что через bridge идет тегированный трафик необходимо отправить ICMP пакеты между NX-1 и NX-3 и с помощью утилиты «tcpdump» прослушать трафик который идет через bridge:


NX-2# tcpdump bridge 0 ether verbose


tcpdump: listening on bridge0, link-type EN10MB (Ethernet), capture size 262144 bytes

19:42:43.914295 08:35:71:f0:0d:81 (oui Unknown) > 08:35:71:f3:b1:fc (oui Unknown), ethertype 802.1Q (0x8100), length 102: vlan 20, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 60753, offset 0, flags [DF], proto ICMP (1), length 84)

  192.168.10.3 > 192.168.10.1: ICMP echo request, id 6412, seq 9, length 64

19:42:43.914400 08:35:71:f3:b1:fc (oui Unknown) > 08:35:71:f0:0d:81 (oui Unknown), ethertype 802.1Q (0x8100), length 102: vlan 20, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 63680, offset 0, flags [none], proto ICMP (1), length 84)

  192.168.10.1 > 192.168.10.3: ICMP echo reply, id 6412, seq 9, length 64

19:42:45.930279 08:35:71:f0:0d:81 (oui Unknown) > 08:35:71:f3:b1:fc (oui Unknown), ethertype 802.1Q (0x8100), length 102: vlan 20, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 61178, offset 0, flags [DF], proto ICMP (1), length 84)

  192.168.10.3 > 192.168.10.1: ICMP echo request, id 6412, seq 10, length 64

19:42:45.930414 08:35:71:f3:b1:fc (oui Unknown) > 08:35:71:f0:0d:81 (oui Unknown), ethertype 802.1Q (0x8100), length 102: vlan 20, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 63751, offset 0, flags [none], proto ICMP (1), length 84)

  192.168.10.1 > 192.168.10.3: ICMP echo reply, id 6412, seq 10, length 64

19:42:47.946099 08:35:71:f0:0d:81 (oui Unknown) > 08:35:71:f3:b1:fc (oui Unknown), ethertype 802.1Q (0x8100), length 102: vlan 20, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 61578, offset 0, flags [DF], proto ICMP (1), length 84)

  192.168.10.3 > 192.168.10.1: ICMP echo request, id 6412, seq 11, length 64

19:42:47.946218 08:35:71:f3:b1:fc (oui Unknown) > 08:35:71:f0:0d:81 (oui Unknown), ethertype 802.1Q (0x8100), length 102: vlan 20, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 63909, offset 0, flags [none], proto ICMP (1), length 84)

  192.168.10.1 > 192.168.10.3: ICMP echo reply, id 6412, seq 11, length 64


Для полной проверки необходимо отправить ICMP пакеты между NX-1 и NX-3 без тега, прослушивая bridge 0 на NX-2 аналогичным образом:


NX-2# tcpdump bridge 0 ether proto icmp verbose


tcpdump: listening on bridge0, link-type EN10MB (Ethernet), capture size 262144 bytes


0 packets captured

0 packets received by filter

0 packets dropped by kernel


Результатами проверок подтверждено что bridge access-list имеет возможность фильтровать трафик по протоколу 802.1Q.


Далее в раздел DHCP

На главную

Report Page