インターフェース結合とは
ボンディング (またはチャネル ボンディング) は、Linux カーネルと Red Hat Enterprise Linux によって有効化されるテクノロジです。これにより、管理者は 2 つ以上のネットワーク インターフェイスを組み合わせて、冗長性またはスループットの向上のために単一の論理的な「結合された」インターフェイスを形成できます。結合されたインターフェイスの動作は、モードによって異なります。一般的に言えば、モードはホット スタンバイ サービスまたは負荷分散サービスのいずれかを提供します。さらに、リンクの完全性監視を提供する場合もあります。
インターフェイス ボンディングを使用する理由
インターフェース ボンディングを作成する 2 つの重要な理由は次のとおりです。
1.増加した帯域幅を提供するには
2.ハードウェア障害に備えて冗長性を提供するため
ボンディングを構成するための前提条件の 1 つは、EtherChannel をサポートするネットワーク スイッチを用意することです (これは、ほとんどすべてのスイッチの場合に当てはまります)。
結合モード
要件に応じて、結合モードを以下の 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 ネゴシエーションによって負荷分散されます。 | はい | はい |
nmcli を使用したネットワーク ボンディングの作成
1. Bonding インターフェースの作成
1. nmcli connection コマンドを引数なしで使用して、既存のネットワーク接続を表示します。 「接続」を短くすることができます 」引数を「con」に 」。例:
# nmcli connection NAME UUID TYPE DEVICE ens33 59b61d18-90ed-4c3c-97e0-6c9e0528f25f 802-3-ethernet ens33 ens37 c09f18e1-793b-4d60-9107-98762cf593a7 802-3-ethernet ens37
2. 「追加タイプの絆」を含めます 」引数、およびネットワーク結合接続を作成するための追加情報。次の例では、bond0 という結合インターフェースを作成し、インターフェースを bond0 として定義し、モードを「active-backup」に設定します。 "、結合されたインターフェイスに IP アドレスを割り当てます。
# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 192.168.219.150/24 Connection 'bond0' (1a75eef0-f2c9-417d-81a0-fabab4a1531c) successfully added.
nmcli con コマンドは、新しい結合接続を表示します。
# nmcli connection NAME UUID TYPE DEVICE bond0 1a75eef0-f2c9-417d-81a0-fabab4a1531c bond bond0 ens33 59b61d18-90ed-4c3c-97e0-6c9e0528f25f 802-3-ethernet ens33 ens37 c09f18e1-793b-4d60-9107-98762cf593a7 802-3-ethernet ens37
3. 「nmcli con add type bond」コマンドは、/etc/sysconfig/network-scripts にインターフェイス構成ファイルを作成します。 ディレクトリ。例:
# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BONDING_OPTS=mode=active-backup TYPE=Bond BONDING_MASTER=yes BOOTPROTO=none IPADDR=192.168.219.150 PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bond0 UUID=1a75eef0-f2c9-417d-81a0-fabab4a1531c ONBOOT=yes
4. ip addr コマンドは、新しい bond0 インターフェイスを表示します:
# ip addr show bond0 5: bond0: [BROADCAST,MULTICAST,MASTER,UP] mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 192.168.219.150/24 brd 192.168.219.255 scope global bond0 valid_lft forever preferred_lft forever
2.スレーブ インターフェイスの作成
1. 結合する各インターフェースに対して、「nmcli con add type bond-slave」を使用します ' 指図。次の例では、ens33 を追加します ボンドスレーブとしてのインターフェイス。このコマンドには con-name 引数が含まれていないため、名前は自動的に生成されます。 con-name 引数を使用して、スレーブ インターフェイスの名前を設定できます。
# nmcli con add type bond-slave ifname ens33 master bond0 Connection 'bond-slave-ens33' (79c40960-6b2c-47ba-a417-988332affed1) successfully added.
2. 次の例では、ens37 を追加します 「絆奴隷」としてのインターフェース 「.
# nmcli con add type bond-slave ifname ens37 master bond0 Connection 'bond-slave-ens37' (46222a52-f2ae-4732-bf06-ef760aea0d7b) successfully added.
3. nmcli con コマンドは新しい接続を表示します。
# nmcli connection NAME UUID TYPE DEVICE bond0 1a75eef0-f2c9-417d-81a0-fabab4a1531c bond bond0 ens33 59b61d18-90ed-4c3c-97e0-6c9e0528f25f 802-3-ethernet ens33 ens37 c09f18e1-793b-4d60-9107-98762cf593a7 802-3-ethernet ens37 bond-slave-ens33 79c40960-6b2c-47ba-a417-988332affed1 802-3-ethernet -- bond-slave-ens37 46222a52-f2ae-4732-bf06-ef760aea0d7b 802-3-ethernet --
4. nmcli con add type bond-slave コマンドは、/etc/sysconfig/network-scripts にインターフェイス構成ファイルを作成します。 ディレクトリ。例:
# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33 TYPE=Ethernet NAME=bond-slave-ens33 UUID=79c40960-6b2c-47ba-a417-988332affed1 DEVICE=ens33 ONBOOT=yes MASTER=bond0 SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens37 TYPE=Ethernet NAME=bond-slave-ens37 UUID=46222a52-f2ae-4732-bf06-ef760aea0d7b DEVICE=ens37 ONBOOT=yes MASTER=bond0 SLAVE=yes
5. ip addr コマンドには「SLAVE」が含まれています ens33 および ens37 インターフェースの場合は「master bond0」も含まれます 「.
3.絆の発動
1. nmcli コマンドを使用して接続を確立できます。最初にスレーブを立ち上げ、次にボンド インターフェイスを立ち上げます。次のコマンドはスレーブを起動します:
# nmcli connection up bond-slave-ens33 # nmcli connection up bond-slave-ens37
2. 次のコマンドは、bond0 インターフェースを起動します。
# nmcli con up bond0
3. ip addr コマンドまたは ip link コマンドは、UP 状態のスレーブとボンド インターフェイスを表示します。
# ip link 2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff 3: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff 4: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
ネットワーク ボンディング情報の表示
1. 各ネットワーク インターフェイスには、/sys/class/net ディレクトリにディレクトリが含まれています。例:
# ls /sys/class/net bond0 bonding_masters ens33 ens36 ens37 lo
2. この例では、「bond0」という名前のネットワーク ボンドが存在します。そのボンドの構成情報を含む同じ名前のディレクトリーが存在します。例:
# ls /sys/class/net/bond0 addr_assign_type bonding carrier_changes dormant gro_flush_timeout iflink lower_ens37 operstate queues subsystem uevent address broadcast dev_id duplex ifalias link_mode mtu phys_port_id speed tx_queue_len addr_len carrier dev_port flags ifindex lower_ens33 netdev_group power statistics type
3. このディレクトリ内には、bond0 インターフェースの情報を含む結合ディレクトリがあります。例:
# ls /sys/class/net/bond0/bonding active_slave ad_aggregator ad_select arp_interval fail_over_mac mii_status num_unsol_na queue_id updelay ad_actor_key ad_num_ports ad_user_port_key arp_ip_target lacp_rate min_links packets_per_slave resend_igmp use_carrier ad_actor_sys_prio ad_partner_key all_slaves_active arp_validate lp_interval mode primary slaves xmit_hash_policy ad_actor_system ad_partner_mac arp_all_targets downdelay miimon num_grat_arp primary_reselect tlb_dynamic_lb
4. 各スレーブの情報を含むディレクトリもあります。例:
# ls /sys/class/net/bond0/lower_ens33 addr_assign_type bonding_slave carrier_changes dev_port flags ifindex master operstate queues subsystem uevent address broadcast device dormant gro_flush_timeout iflink mtu phys_port_id speed tx_queue_len upper_bond0 addr_len carrier dev_id duplex ifalias link_mode netdev_group power statistics type
5. 以下は、/sys/class/net ディレクトリ内のファイルを表示する例です。
# cat /sys/class/net/bonding_masters bond0
# cat /sys/class/net/bond0/operstate up
# cat /sys/class/net/bond0/address 00:0c:29:54:f7:20
# cat /sys/class/net/bond0/bonding/active_slave ens33
# cat /sys/class/net/bond0/bonding/mode active-backup 1
# cat /sys/class/net/bond0/bonding/slaves ens33 ens37
6. 以下は、/proc/net/bonding/bond0 ファイルを表示する例です。
# 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): 100 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
結合インターフェースで IPv4 または IPv6 を無効にする方法
これらの手順は、bond1 が ipv4 または ipv6 アドレスを使用しない場合にのみ必要です
# nmcli connection modify bond1 ipv4.method disabled
および/または
# nmcli connection modify bond1 ipv6.method ignore