Linux Box L2スイッチをすばやく設定/起動する方法

Linux Box L2スイッチをすばやく設定/起動する方法

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テーブル)。他の人がこの質問に興味がある場合に備えて、私は時々必要なものよりも詳細に各ポイントを扱おうとします。

  1. 設定

    完全性のために以前に行われていない場合は、初期設定に以下を追加する必要があります。

    ip link set eth0 up
    ip link set eth1 up
    

    ブリッジポートを開かないと、アクティブブリッジはフレームを受信または送信しません。これが問題の原因である可能性があります。

  2. ブリッジポートとレイヤ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(存在する場合)は使用できなくなります。注目すべき例外は、ブリッジ名を持つ特別な暗黙的なセルフブリッジポートなので、ここでbr0IPを割り当てると、レイヤ2でフレームを交換するだけでなく、ブリッジも機能します。そうしないと交換のみ可能です。

  3. 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〜するまもなくすべての名前空間しかし、まだそうではありません。モジュールをロードしてオプションを無効にした後、ブリッジ固有のオプションを設定することもできますが、現在は初期名前空間でのみ正しく機能すると考えられています。モジュールの自動ロードは、すべてのネットワーク名前空間でトリガーすることもできます(次を使用して)。体の発達)は、他のすべてのネットワークネームスペース(初期ネームスペースを含む)に影響を与えるため、常にルールを準備する必要があります。

    注2:一度ブリッジ接続追跡利用可能nftables、使用する理由はありません。ブリッジNF

  4. 今後

    デフォルトでは、他のオプションがない場合、ブリッジはポートとセルフスタートから数秒後にフレームを転送します(そしてSTPを処理しません)。したがって、ループが不可能であることを知っている場合は、準備ができている必要があります。

  5. 動的ホスト構成プロトコル

    はい、ブリッジはDHCPクエリと応答を渡す必要があります。ここで、ブリッジレベルには特別なものはありません。

  6. いくつかの雑多な

    • 仮想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また追加されますブリッジツールインターフェースブリッジ構成用のフック相互作用祭典。単純なブリッジ構成で十分です。

おすすめ記事