GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS / RHEL 7 :ネットワーク ボンディングまたは NIC チーミングを構成する方法

ネットワーク インターフェイス ボンディングは、ポート トランキング、チャネル ボンディング、リンク アグリゲーション、NIC チーミングなど、さまざまな名前で呼ばれています。複数のネットワーク接続を 1 つのチャネル ボンディング インターフェイスに結合または集約します。これにより、2 つ以上のネットワーク インターフェイスが 1 つとして機能し、スループットが向上し、冗長性またはフェイルオーバーが提供されます。

Linux カーネルには、複数の物理ネットワーク インターフェイスを単一の論理インターフェイスに集約するためのボンディング ドライバーが付属しています (たとえば、eth0 と eth1 を bond0 に集約します)。ボンディングされたインターフェースごとに、モードとリンク監視オプションを定義できます。次の表に示すように、7 つの異なるモード オプションがあり、それぞれが特定の負荷分散とフォールト トレランス特性を提供します。

結合モード

要件に応じて、結合モードを以下の 7 つのモードのいずれかに設定できます。

モード ポリシー 仕組み 耐障害性 負荷分散
0 ラウンドロビン パケットは、各インターフェイスを介して 1 つずつ順番に送受信されます。 いいえ はい
1 アクティブ バックアップ 1 つの NIC がアクティブで、別の NIC がスリープ状態です。アクティブな NIC がダウンすると、別の NIC がアクティブになります。 x86 環境でのみサポートされます。 はい いいえ
2 XOR [排他的 OR] このモードでは、スレーブ NIC の MAC アドレスが着信要求の MAC と照合され、この接続が確立されると、宛先 MAC の送受信に同じ NIC が使用されます。 はい はい
3 ブロードキャスト すべての送信はすべてのスレーブで送信されます はい いいえ
4 動的リンク集約 集約された NIC は 1 つの NIC として機能するため、スループットが向上しますが、NIC に障害が発生した場合はフェイルオーバーも提供されます。ダイナミック リンク アグリゲーションには、IEEE 802.3ad をサポートするスイッチが必要です。 はい はい
5 送信負荷分散 (TLB) 送信トラフィックは、各スレーブ インターフェイスの現在の負荷に応じて分散されます。着信トラフィックは現在のスレーブによって受信されます。受信スレーブが失敗した場合、別のスレーブが失敗したスレーブの MAC アドレスを引き継ぎます。 はい はい
6 アダプティブ ロード バランシング (ALB) ダイナミック リンク アグリゲーションとは異なり、アダプティブ ロード バランシングには特定のスイッチ構成は必要ありません。アダプティブ ロード バランシングは、x86 環境でのみサポートされます。受信パケットは、ARP ネゴシエーションによって負荷分散されます。 はい はい

ネットワーク結合リンクの監視

ボンディング ドライバーは、スレーブのリンク状態を監視する 2 つの方法をサポートしています。

  • MII (Media Independent Interface) モニター
    • これはデフォルトで推奨されるリンク監視オプションです。
    • ローカル ネットワーク インターフェースのキャリア状態を監視します。
    • 監視頻度と遅延を指定できます。
    • 遅延時間により、スイッチの初期化を考慮することができます。
  • ARP モニター
    • これにより、ネットワーク上のピア システムに ARP クエリが送信され、リンクがアップしていることを示すものとして応答が使用されます。
    • 監視頻度と対象アドレスを指定できます。

    ネットワーク ボンディング:構成

    ボンディング インターフェース ファイルの作成

    /etc/sysconfig/network-scripts にボンディング インターフェース ファイルを手動で作成できます。 ディレクトリ。最初にボンディング インターフェイスを作成してから、物理ネットワーク インターフェイスをボンディングに追加します。これらの物理ネットワーク インターフェースは「スレーブ」と呼ばれます 「.

    この投稿の例では、bond0 インターフェースのスレーブは ens33 と ens37 です。起動する前に、ボンディングモジュールが正しくロードされていることを確認してください。それを確認するには、以下に示すコマンドを使用します:

    # lsmod |grep bonding
    bonding               122351  0

    モジュールがロードされていない場合は、modprobe コマンドを使用してロードしてください。

    # modprobe bonding

    1. 以下は、ボンディング インターフェイス ファイルの例です。

    # cat /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    BONDING_OPTS="miimon=1 updelay=0 downdelay=0 mode=active-backup" TYPE=Bond
    BONDING_MASTER=yes
    BOOTPROTO=none
    IPADDR=192.168.2.12
    PREFIX=24
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=bond0
    UUID=bbe539aa-5042-4d28-a0e6-2a4d4f5dd744
    ONBOOT=yes

    2. 次の例では、ens33 を定義しています bond0 のスレーブとしての物理ネットワーク インターフェイス:

    # cat /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    NAME=ens33
    UUID=817e285b-60f0-42d8-b259-4b62e21d823d
    DEVICE=ens33
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes

    3. 次の例では、ens37 を定義しています bond0 のスレーブとしての物理ネットワーク インターフェイス:

    # cat /etc/sysconfig/network-scripts/ifcfg-ens37 
    TYPE=Ethernet
    NAME=ens37
    UUID=f0c23472-1aec-4e84-8f1b-be8a2ecbeade
    DEVICE=ens37
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes

    4. ネットワーク サービスを再起動します
    ネットワーク サービスを再起動して、ボンディング インターフェイスを有効にします。

    # systemctl restart network

    ネットワーク サービスを再起動したくない場合は、ボンディング インターフェイスを個別に plumb できます:

    # ifup bond0

    ネットワーク結合構成を確認する

    1. 「ip addr show」コマンド出力で新しいインターフェイスを確認します:

    # ip addr show
    1: lo: [LOOPBACK,UP,LOWER_UP] mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        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: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
    4: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
    5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe54:f720/64 scope link 
           valid_lft forever preferred_lft forever

    2. また、以下のコマンドを使用して、ボンディング インターフェイスの現在のステータスと現在アクティブなインターフェイスを確認します。

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: ens33
    MII Status: up
    MII Polling Interval (ms): 1
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: ens33
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:54:f7:20
    Slave queue ID: 0
    
    Slave Interface: ens37
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:54:f7:34
    Slave queue ID: 0

    上記のコマンド出力から、ens33 であることがわかります。 ボンドで現在アクティブなスレーブです。

    ボンディング構成の耐障害性のテスト

    1. これはアクティブ/バックアップ ボンディング構成であるため、1 つのインターフェースがダウンすると、ボンディング内の他のインターフェースがアクティブ スレーブになります。この機能を検証するために、現在のインターフェイス ens33 を停止します。

    # ifdown ens33

    2. ボンド インターフェースのステータスを再度確認すると、新しいアクティブなスレーブがインターフェース ens37 であることがわかります。

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: ens37
    MII Status: up
    MII Polling Interval (ms): 1
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: ens37
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:54:f7:34
    Slave queue ID: 0

    また、bond インターフェースが起動して実行されます:

    # ip add show bond0
    5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe54:f720/64 scope link 
           valid_lft forever preferred_lft forever
    CentOS / RHEL 7 :nmcli を使用してインターフェイス ボンディングを作成する方法


    Cent OS
    1. CentOS/RHEL 7 でネットワーク チーミングを構成する方法

    2. CentOS/RHEL 7 で無差別モードでインターフェイスを構成する方法 (永続的)

    3. CentOS/RHEL 7 および 8 の NIC で 802.1q VLAN を構成する方法

    1. CentOS/RHEL 6 でネットワーク結合モードを変更する方法

    2. CentOS/RHEL でボンディング ネットワーク構成を削除する方法

    3. Oracle Linux 6でインタフェース・ボンディング(NICチーミング)を構成する方法

    1. CentOS / RHEL 7 :ネットワーク インターフェイス名を変更する方法

    2. CentOS / RHEL 7 :nmcli を使用してネットワーク ボンディング (NIC チーミング) を作成する方法

    3. CentOS / RHEL 5 :インターフェイス ボンディング (NIC チーミング) の構成方法