Как отключить широковещательную рассылку на сетевом интерфейсе Linux без IP-адреса

Вопрос или проблема

Система Linux с двумя сетевыми интерфейсами.

  1. eth0 подключен к локальной сети компании. Настроен DHCP. Это основное сетевое соединение.
  2. eth1 подключен по точка-точка к сетевому анализатору. На этом интерфейсе нет IP.
  3. Приложение Linux отправляет L2 пакеты на eth1.
  4. Сетевой анализатор получает пакеты приложения ПЛЮС все широковещательные рассылки, пришедшие на eth0.

Вопрос: Как я могу остановить пересылку широковещательных пакетов на eth1?

Конфигурация:

eth0 Link encap:Ethernet HWaddr 10:98:36:af:9c:0f
inet addr:192.168.x.xx Bcast:192.168.3.255 Mask:255.255.252.0 UP
BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

eth1 Link encap:Ethernet HWaddr 10:98:36:af:9c:10
UP BROADCAST RUNNING MTU:1500 Metric:1

ip link:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 10:98:36:af:9c:0f brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 10:98:36:af:9c:10 brd ff:ff:ff:ff:ff:ff

Проблема была решена добавлением двух правил в iptables:

iptables -A FORWARD -m pkttype --pkt-type broadcast -i eth1 -j DROP  
iptables -A INPUT -m pkttype --pkt-type broadcast -i eth1 -j DROP

Iptables выглядит теперь так:

$ iptables -L -v  
Chain INPUT (policy ACCEPT 54446 packets, 5132K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  123 40344 DROP       all  --  eth1   any     anywhere             anywhere             PKTTYPE = broadcast

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  eth1   any     anywhere             anywhere             PKTTYPE = broadcast

Chain OUTPUT (policy ACCEPT 8072 packets, 3990K bytes)
 pkts bytes target     prot opt in     out     source               destination  

Ответ или решение

Отключение широковещательной передачи на сетевом интерфейсе без IP-адреса в Linux

В данной ситуации речь идет о Linux-системе с двумя сетевыми интерфейсами (NIC): eth0 и eth1. Interface eth0 подключен к локальной сети компании и получает адрес через DHCP, в то время как eth1 предназначен для точечного подключения к анализатору сетевого трафика и не имеет назначенного IP-адреса. Проблема заключается в том, что пакетная система, работающая на eth1, получает не только предназначенные для нее L2-пакеты, но и все широковещательные (broadcast) сообщения, приходящие через eth0.

Чтобы решить эту проблему, необходимо устранить передачу широковещательных пакетов через интерфейс eth1. Один из наиболее эффективных способов сделать это — настроить фильтрацию пакетов с использованием iptables, встроенной в Linux системы.

Шаги по отключению передачи широковещательных пакетов

  1. Добавление правил в iptables:
    Для предотвращения передачи широковещательных пакетов через eth1 вам необходимо добавить два правила в iptables:

    iptables -A FORWARD -m pkttype --pkt-type broadcast -i eth1 -j DROP  
    iptables -A INPUT -m pkttype --pkt-type broadcast -i eth1 -j DROP

    Эти правила указывают системе не обрабатывать и не принимать широковещательные пакеты на интерфейсе eth1.

  2. Проверка настроек iptables:
    После добавления правил полезно проверить, что они правильно зарегистрировались:

    iptables -L -v

    Вывод команды должен показывать новое правило в цепочках INPUT и FORWARD, метод и параметры которых должны находиться в состоянии DROP для широковещательных пакетов.

    Примерный вывод может выглядеть следующим образом:

    Chain INPUT (policy ACCEPT)
    pkts bytes target     prot opt in     out     source               destination         
    123 40344 DROP       all  --  eth1   any     anywhere             anywhere             PKTTYPE = broadcast
    
    Chain FORWARD (policy ACCEPT)
    pkts bytes target     prot opt in     out     source               destination         
      0     0 DROP       all  --  eth1   any     anywhere             anywhere             PKTTYPE = broadcast

Заключение

Применение данных правил iptables обеспечит прекращение широковещательной передачи на интерфейсе eth1, что позволит вашему сетевому анализатору работать исключительно с непередаваемыми L2-пакетами. Важно помнить, что настройки iptables могут быть сброшены при перезагрузке системы, поэтому рекомендуется сохранить их с помощью утилиты iptables-save и восстановить при загрузке системы.

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

Оцените материал
Добавить комментарий

Капча загружается...