
1Gbitと10Gbitという2つのハードウェアスイッチを備えた完全に分離されたLAN 192.168.22.0/24があります。以前の10Gbitスイッチも1Gbitを処理できるため、両方のスイッチを一緒に接続するのに問題はありません。先週、新しい10Gbitスイッチを購入しましたが、1Gbitを処理できませんでした。突然、切断されたネットワーク部分はほとんど10Gbitのサーバー(DHCPを含む)で、ほとんどのワークステーションは1Gbitに接続されているため、すぐに接続する必要があります。幸いなことに、一時的に1/10 Gbitスイッチで設定できる2つの部分に接続されたDebian Linuxボックスがありました。プロンプトに従ったが、ブリッジングは全く観察されなかった。たとえば、arpテーブルには影響がなく、wksからサーバーへのpingは発生しませんでした。私はスクリプトを書いた:
#!/bin/bash
ip link add name br0 type bridge
ip link set dev br0 up
ip link set dev eth0 master br0 #1Gb
ip link set dev eth1 master br0 #XGb
いくつかの質問に答えてください:
- eth0とeth1は(同じ)IPアドレスを持つことができますか?それとも、IPアドレスがbr0を取得できますか?
- iptablesを無効に/更新/削除する必要がありますか? (iptablesは使用しません)
- 設定する必要がある「転送」イネーブルビットはありますか?
- これらのソフトウェアスイッチは実際にDHCPブロードキャストを転送できますか?
Linuxボックスで実行中のタスクがあるため、/etc/network/interfacesの設定方法をテストするためのヒントはありません。 NetworkManagerを無効にしてよかったです。再起動できません。
どんな助けやアドバイスでも大歓迎です。月曜日の朝までLANに戻ります。
答え1
簡単にするために、イーサネットとIPv4についてのみ説明します(IPv6にも同じことが当てはまります)。IP6テーブル)。他の人がこの質問に興味がある場合に備えて、私は時々必要なものよりも詳細に各ポイントを扱おうとします。
設定
完全性のために以前に行われていない場合は、初期設定に以下を追加する必要があります。
ip link set eth0 up ip link set eth1 up
ブリッジポートを開かないと、アクティブブリッジはフレームを受信または送信しません。これが問題の原因である可能性があります。
ブリッジポートとレイヤ3
長い話を短く:最も簡単な設定のために、IPおよびルーティング設定はブリッジインターフェイスにあり、
br0
ブリッジインターフェイスにのみ必要です。これは、ブリッジング機能ではなくホストのIP接続にのみ影響します。したがって、IPが以前に設定されている場合イーサネット0あなたはそれらを適用する必要がありますbr0代わりに。そうしないと、システムへのIP接続がブロックされます(ブリッジングではありません)。参考までに、ARPはローカルシステム用であり、特別な方法でブリッジではなくARPプロトコルによって処理されます。ブリッジで役に立つのは、転送データベースエントリ(FDB)を調べることです。
ローカルシステムARPステータス:
ip neighbour show
変更のモニタリング:
ip monitor neigh
ブリッジMAC転送ステータス:
bridge fdb show br br0
変更のモニタリング:
bridge monitor fdb
追加使用など他の設定も可能です。ワイズ一対のインターフェイス、一方の端にIPがあり、もう一方の端に3番目のブリッジポートとして機能します。ブリッジにはIPがないため、ブリッジはブリッジングのみを実行し、レイヤ3には参加しません。ただし、正しく設定するには時間がかかります(たとえば、デフォルトでランダムなMACアドレスを使用するなど)。
インターフェイスがブリッジポートになると(マスターポートにブリッジされている)、対応するレイヤ3情報は無視されます。そのインターフェイスに設定されているIP(存在する場合)は使用できなくなります。注目すべき例外は、ブリッジ名を持つ特別な暗黙的なセルフブリッジポートなので、ここで
br0
IPを割り当てると、レイヤ2でフレームを交換するだけでなく、ブリッジも機能します。そうしないと交換のみ可能です。iptables/netfilter はブリッジ層と対話します。
長い話を短く:使用しない場合iptablesネットワークネームスペース(コンテナ)に含まれるルールなので、特定のルールが存在するかどうかにかかわらず、何も実行したり気にする必要はありません。iptables関連モジュールがロードされました。詳細な答えは次のとおりです...
レイヤ2(イーサネットブリッジ)のフレームフィルタリング(または破壊など)は、次のように実行する必要があります。ebtables、レイヤ3のIPパケットフィルタリングは通過する必要があります。iptables。だからiptablesフレームは通常表示されてはならず(ローカルシステムをターゲットにしてIPパケットでレイヤ3に到着しない限り)、ブリッジフレームと対話しません。
ebtables直接アクセス不可などより制限的Webフィルタ~のつながるすべてではありません拡大する利用可能iptables。これがなければ、良いレイヤ2ファイアウォール(ルータではなくスイッチとして機能します)を実装するのは難しいです。これがブリッジコードの呼び出しを許可する特別なモードがある理由です。iptables(フレームは一時的にIPパケットに変わります。iptables使用法)除外ebtables。その説明はブリッジネットワークフィルタとは何ですか?そしてLinuxベースのブリッジのebtables/iptables相互作用、相互作用の最も顕著な例7. フレーム/パケットパスiptablesPREROUTING、FORWARD、POSTROUTINGチェーン。これ一般ネットワークのNetfilterとパケットフロー回路図のリンクレイヤー側では青(ebtables)と緑(iptables)。
パターンは次のようにロードされます。br_netfilterモジュール(たとえば
modprobe br_netfilter
)を使用しますが、iptablesルールと体の発達Matchが自動的にロードされます。このモジュールがロードされると(そしてデフォルトのsysctlはまだそこにあります
net.bridge.bridge-nf-call-iptables=1
:)iptables特に、ブリッジにIPがある場合は、ブリッジと対話します。これは、ネットワーク層だけでなく、ブリッジ層でさらに時間がかかるためです。だから前の例によると第7章、LAN 192.168.22.0/24をブリッジし、NAT経由でインターネットにアクセスするためにブリッジに属していない3番目のインターフェイスもある場合、この規則(単独で使用される場合):iptables -t nat -A POSTROUTING -s 192.168.22.0/24 -j MASQUERADE
NATに加えてルーティング済み外部へのトラフィックもNATになります。ブリッジトラフィック:各システムはブリッジフレームは元のIPの代わりにブリッジのIPを送信元にします。これが一般的に次のように書かれている理由です(LXCなどのアプリケーションで設定したものがわかります)。
iptables -t nat -A POSTROUTING -s 192.168.22.0/24 ! -d 192.168.22.0/24 -j MASQUERADE
はい、使用することもできます。iptablesただし、使用しないように注意してください。ブリッジNF(これbr_netfilterモジュール)またはルールを調整してください。ネットワークを扱う一部のアプリケーション、特にコンテナ(Docker、Kubernetes...)に関連するアプリケーションは、それを有効にできます。
ネットワークネームスペースに関する注意事項:ブリッジNF〜するまもなくすべての名前空間しかし、まだそうではありません。モジュールをロードしてオプションを無効にした後、ブリッジ固有のオプションを設定することもできますが、現在は初期名前空間でのみ正しく機能すると考えられています。モジュールの自動ロードは、すべてのネットワーク名前空間でトリガーすることもできます(次を使用して)。体の発達)は、他のすべてのネットワークネームスペース(初期ネームスペースを含む)に影響を与えるため、常にルールを準備する必要があります。
今後
デフォルトでは、他のオプションがない場合、ブリッジはポートとセルフスタートから数秒後にフレームを転送します(そしてSTPを処理しません)。したがって、ループが不可能であることを知っている場合は、準備ができている必要があります。
動的ホスト構成プロトコル
はい、ブリッジはDHCPクエリと応答を渡す必要があります。ここで、ブリッジレベルには特別なものはありません。
いくつかの雑多な
仮想LAN
あなたの設定にはVLAN IDがどこにもないようですので、VLANに関する特別なことは必要ありません。お知らせする場合は、VLANタグ付きフレームが関連付けられている場合は、それを正しく処理するためにブリッジで追加の設定が必要です(で始まり、
ip link set dev br0 type bridge vlan_filtering 1
適切なbridge vlan ...
コマンドを実行)。トラブルシューティング
あなたは走らなければなりませんTCPダンプ各インターフェイスには次の内容があります。
tcpdump -e -l -n -s0 -i eth0 tcpdump -e -l -n -s0 -i br0 tcpdump -e -l -n -s0 -i eth1
また、何が起こっているのかを理解するのに役立ちます。
構成
使用する場合上下ならDebian での設定、インストールブリッジングツール廃止されたコマンドを含むパッケージbrctlまた追加されますブリッジツールインターフェースブリッジ構成用のフック相互作用祭典。単純なブリッジ構成で十分です。