Linux ネットワーク ブリッジの概要、開始方法、および構成

始める前に、ブリッジとは何かを紹介しましょう ここでは、物理スイッチがリンク層で動作することは誰もがすでに知っていると仮定します。スイッチの主なタスクは、リンク層で転送テーブル (MAC アドレスとポートの対応テーブル) を検索し、データ フレームのターゲット MAC アドレスに従って、データ フレームを対応するポートに転送することです。では、ネットワーク ブリッジとは何ですか? ネットワーク ブリッジは古い概念です。スイッチが登場する以前の物理層で動作していたハブ (マルチポート リピータ) とは異なります。2 つの小さな LAN をリンク層で 1 つに接続できます。 . 大規模なローカル エリア ネットワークを備えていますが、2 つの独立したコリジョン ドメインに分割されているデバイス。興味のある方は、独自の考古学 (リピータ、ハブ、ブリッジ、スイッチの歴史と違い) を行うことができます。簡単に言うと、ブリッジは 2 ポートのスイッチとして理解できます。Linuxブリッジとは、簡単に言うと複数のネットワークカードを搭載したLinuxホストをソフトウェアスイッチに設定して利用できるソフトウェアと理解していただけます。

1. 通常のローカルエリアネットワークの構造

  1. 以下は一般的なスイッチ ネットワークです。

ここに画像の説明を挿入

  1. Linux ブリッジによって構築されたネットワーク (この記事では、仮想ホストでの Linux ブリッジの機能については説明しません):
    物理世界では、複数のネットワーク カードを備えたホストがある場合、ホストの 1 つでネットワーク カードを置き換えることができます。このマルチネットワーク カード ホスト上に Linux ネットワーク ブリッジを作成し、一部またはすべてのネットワーク カードをブリッジに追加できます。次に、他のホストをこのマルチネットワーク カード ホストに接続すると、標準のローカル エリア ネットワークが形成されます。以下に示すように。
    ここに画像の説明を挿入

2. Linuxブリッジの機能

したがって、Linux ブリッジには、スイッチと同様に、次の 2 つの主要な機能があります。

  1. MAC 学習: MAC アドレスを学習すると、受信または送信された各データが考慮され、データ パケットの送信元 MAC がどのポートから来たのかが考慮され、アドレスとポートの比較テーブル (転送テーブル) がゆっくりと構築されます。

  2. メッセージ転送: データ パケットが送信されるたびに、宛先 MAC アドレスを抽出し、独自のアドレスとポートの比較テーブル (転送テーブル) からどのポートにデータ パケットを送信するかを見つけて、データを転送します。

上記の機能に加えて、Linux ブリッジは仮想ネットワーク インターフェイスも生成します。このインターフェイスは、通常のネットワーク カードと同様に、IP アドレス (静的または DHCP) で構成できます。Linux ブリッジが確立されているホストと、すべてのホストブリッジ上のデバイスは、このインターフェイスを介して IP ネットワーク層で外部と通信できます (上図のルーターによって割り当てられた IP アドレスを受け取り、ルーター経由でインターネットにアクセスするなど)。

3. ネットプランを使用して ubuntu でブリッジを構成する方法

これは、enp2s0、enp3s0、enp4s0、eno1 という 4 つのネットワーク カードを備えたホストです。

ifconfig -a | grep mtu
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
enp4s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

これら 4 つのネットワーク カードを同じブリッジ br0 に追加し、すべてのネットワーク カードの DHCP 要求機能をオフにして、このブリッジの機能が DHCP 経由で IP アドレスを自動的に取得できるようにします。Linuxネットワークブリッジは、/etc/netplanディレクトリにネットワークブリッジを記述するbr0.yamlファイルを追加し、各ネットワークカードのdhcpによるIPアドレス取得機能をオフにすることで実現できます。

xxx@xxx-HP-PC:~$ ls -l /etc/netplan/
总计 8
-rw-r--r-- 1 root root 104  89  2022 01-network-manager-all.yaml
-rw-r--r-- 1 root root 594  421 21:43 br0.yaml
  1. このファイルを vi で開きます。
vi /etc/netplan/br0.yaml
  1. このファイルに次の内容を追加します。
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
meihualing@xx-HP-PC:~$ cat /etc/netplan/br0.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno1:
      dhcp4: no
      dhcp6: no
    enp2s0:
      dhcp4: no 
      dhcp6: no 
    enp3s0:
      dhcp4: no 
      dhcp6: no 
    enp4s0:
      dhcp4: no 
      dhcp6: no 
  bridges:
    br0:
      interfaces:
        - enp2s0
        - enp3s0
        - enp4s0
        - eno1
      dhcp4: yes 
      dhcp6: yes 
      #addresses:
      #  - 192.168.3.166/24
      #routes:
      #  - to: default
      #    via: 192.168.3.1
      #nameservers:
      #  addresses: [192.168.3.1, 8.8.8.8]
      parameters:
        stp: false
  1. netplan apply コマンドを使用してブリッジを有効にします。
sudo netplan apply

  1. 有効になると、ip addr show および brctl show で次のネットワーク構成結果を確認できます。
  • br0ブリッジを生成しました
  • 4 枚のネットワーク カードすべてが br0 ブリッジに参加しました
  • ブリッジ インターフェイス br0 は、DHCP 要求を通じて上流の DHCP サーバーから IP アドレス 192.168.3.122 を要求します。
xxx@xxx-HP-PC:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether a0:36:9f:56:98:45 brd ff:ff:ff:ff:ff:ff
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether a0:36:9f:56:95:be brd ff:ff:ff:ff:ff:ff
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether a0:36:9f:57:18:d2 brd ff:ff:ff:ff:ff:ff
5: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 8c:dc:d4:41:8b:ac brd ff:ff:ff:ff:ff:ff
    altname enp0s25
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 82:61:84:35:97:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.112/24 brd 192.168.3.255 scope global dynamic noprefixroute br0
       valid_lft 604763sec preferred_lft 604763sec
    inet6 fe80::8061:84ff:fe35:97fb/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

xxx@xxx-HP-PC:~$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.8261843597fb	no		eno1
							enp2s0
							enp3s0
							enp4s0

4. 最後に、次のネットワークが構築されます。

ルータに接続された物理ネットワーク カードとして任意のネットワーク カードを使用でき、このネットワーク カードが br0 インターフェイスでのパケットの送受信を担当することに注意してください。

                                         +- 网桥服务器---+
                                     +---+192.168.3.112|          +--电脑3-------+
                                     |   |       enp2s0+----------+ eth0        |
                                     |   |       enp3s0+----      |192.168.3.115|
                                     |   |  Bridge br0 |    |     +-------------+
                                     |   +-------------+    |       
                 +- 路由器 -----+     |                      | 
                 | Firewall    |     |   +--电脑1-------+    |     +--电脑4------+
(外网)----WAN-----+ DHCP server +-LAN +---+ 10.10.0.3   |    + ----+ eth0        |
                 | 192.168.3.1 |     |   +-------------+    |     |192.168.3.116|
                 +-------------+     |                            +-------------+
                                     |   +--电脑2-------+
                                     +---+ 10.10.0.4   |
                                         +-------------+

5. Linuxブリッジの役割

現在のスイッチは非常に安く、安く、高速で省電力であるため、実際にコンピュータを購入して大量のネットワーク カードを追加して、Linux ホストをスイッチ (高価で電力を消費する) や Linux ブリッジに変換する人はいないでしょう。 , 仮想化クラウド サーバーの実際のアプリケーションは、仮想化クラウド サーバーの展開でのみ使用できます。将来的には、仮想化環境でのLinux ブリッジに特化した記事を更新することができます。

おすすめ

転載: blog.csdn.net/meihualing/article/details/130275304