監視目的でサイレントブリッジを構築しようとしています。私のコンピューターはlinux2.6、brctl 1.4を実行しており、NICは3つあります。
eth0、割り当てられたIP、SSHメンテナンスに使用
eth1、およびeth2、ブリッジbr0の2つのポート
すべてetc/network/interfacesに設定されています:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.120
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
auto br0
iface br0 inet manual
bridge_ports eth1 eth2
bridge_maxwait 0
bridge_stp off
このようにして、eth0とeth1の両方がローカルネットワークに接続されます(eth2はゲートウェイに接続されます)。ただし、IPアドレスを持つのはeth0だけです。
ブリッジは正常に機能しており、tcpdump -ibr0またはその他のツールを使用してトラフィックを監視できます。
ブリッジにはIPアドレスがないため、トラフィックを送信しないでください。ただし、eth0ではなくarpリクエストに応答する場合があります。
macアドレスのeth0が00:01:02:ab:00:00で、eth1が00:01:02:ab:00:01であると仮定すると、これは、wiresharkを実行しているローカルステーションで取得するものです。
packet no time source dest protocol info
4303 1063.539943 00:01:02:ab:00:01 Giga-Byt_46:d9:fe ARP 192.168.1.120 is at 00:01:02:ab:00:01
4305 1063.539958 00:01:02:ab:00:00 Giga-Byt_46:d9:fe ARP 192.168.1.120 is at 00:01:02:ab:00:00
私の「実際の」IPインターフェースは数ミリ秒後に応答するので、そうではありませんでした...どうすればこの問題を解決できますか?
http://kb.linuxvirtualserver.org/wiki/Using_arp_announce/arp_ignore_to_disable_ARP ブリッジにarp要求に応答しないように依頼する場合は、役立つはずです。
/ proc/*/arp_ignoreを使用する以外の別のオプションは、eth0インターフェイスを削除し、IPアドレスをブリッジに配置することです。
auto br0
iface br0 inet manual
bridge_ports eth1 eth2
bridge_maxwait 0
bridge_stp off
address 192.168.1.120
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
個人的には、インターフェイスが直接ブリッジ上にあるため、これにより概念的に単純化されると思います。