mybridge
ボードにブリッジ()eth0
とインターフェースを作成したいと思いますeth1
。ボードはLinux 2.6.34.9を実行します。
コマンドは次のとおりです。
brctl addbr mybridge
ifconfig eth1 0.0.0.0
ifconfig eth0 0.0.0.0
brctl addif mybridge eth1
brctl addif mybridge eth0
ifconfig mybridge up
PC------ETH1-----mybridge------ETH0
PCでボードをpingするとパケットを受信できますがeth1
(eth1
rxカウンタが増えます)、mybridge
rxカウンタがmybridge
増えないためパケットは送信されません。オンラインで検索した結果、開始は行われたが
mybridge
実行モードには切り替えられないことがわかりました。ブリッジは実行モードに入らないと動作しません。
mybridge
なぜRUNNING状態に入らなかったのか教えてもらえますか?
/ # ifconfig
eth0 Link encap:Ethernet HWaddr BC:9A:78:56:34:12
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth1 Link encap:Ethernet HWaddr 00:E0:0C:BC:E0:00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:101 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7200 (7.0 KiB) TX bytes:126 (126.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
mybridge Link encap:Ethernet HWaddr 00:E0:0C:BC:E0:00
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
どんな意見でも大いに役立つでしょう。
答え1
ボードにIPアドレスがないため、ボードをpingできません。ここで正確に何をしているのかは不明です。
ボードの eth0 には何もないため、パケットはボードのブリッジを通過しません。デバイスをeth0に接続してpingすると、パケットがブリッジを通過することがわかります。
eth0のパケットカウンタが増加しない理由は2つあります。
1)ブリッジは、ブリッジの各ポートの背後にあるデバイスのMACアドレスを追跡するという点で、スイッチとやや同様に機能します。このコマンドを実行すると、brctl showmacs mybridge
ブリッジによって検出されたデバイスのMACアドレスとそのデバイスが存在するポートを確認できます。
デバイスをeth0に接続してpingを試みると、pingホストは最初にpingするIPアドレスを持つホストのMACアドレスを取得するためにARP要求をブロードキャストします。ホストが ARP 要求に応答すると、ブリッジは、対応する MAC アドレスを持つホストがブリッジの eth0 の後ろにあることを確認します。しかし、インターフェイスに対して計算されたARPブロードキャストを見たいです。したがって、eth0のパケット/バイト数は少なくなりますが、ゼロではありません。
2)eth0には何も接続されていないため、キャリアはありません。プラグインされたインターフェイスからパケットを送信することは意味がありません。 「ip link」コマンドを使用してこれを表示できます(このip
コマンドは廃止されましたifconfig
。インターフェイスカウンタを表示するために使用できますip -s link
)。 eth0についてこれを見ることができますNO-CARRIER
。
答え2
私は同じ問題がありましたが、すべてのeth設定にHDADDRパラメータを指定して解決しました。したがって、ifconfig -a コマンドを使用してインターフェイス mac アドレスを探し、/etc/sysconfig/network-scripts/ifcfg-ethX で各インターフェイス設定ファイルを編集し、各インターフェイス カードの正確な mac アドレスを指定する必要があります。 Redhatでは、複数の物理インターフェイスカードがある場合は、インターフェイスHDADDRを指定することをお勧めします。
HWADDR=MAC-address ここで、MAC-address は AA:BB:CC:DD:EE:FF 形式のイーサネットデバイスのハードウェアアドレスです。モジュールには、設定がロードされる順序に関係なく、正しいデバイス名が割り当てられます。