IP以外のLinux NICでブロードキャストを無効にする方法

IP以外のLinux NICでブロードキャストを無効にする方法

2つのネットワークカードを持つLinuxシステム。

  1. eth0は会社のLANに接続されています。 DHCP が設定されました。主なネットワーク接続です。
  2. eth1 ネットワークアナライザへのポイントツーポイント接続。このインターフェイスに IP はありません。
  3. Linux アプリケーションは eth1 から L2 パケットを送信します。
  4. ネットワークアナライザは、eth0に到着するアプリケーションパケットとすべてのブロードキャストを取得します。

Q: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

答え1

問題は、iptablesに2つのルールを追加することで解決されました。

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  

関連情報