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

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

インターフェース結合とは

ボンディング (またはチャネル ボンディング) は、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 インターフェースの場合は「ma​​ster 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


Cent OS
  1. CentOS8で単一のネットワークインターフェイスに複数のIPアドレスを割り当てる方法

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

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

  1. CentOS 7 /RHEL7でネットワークブリッジを作成する方法

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

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

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

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

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