Ethernet kanālu saistīšana jeb NIC Teaming uz Linux sistēmām


Izmantojot Ethernet kanālu savienojumu, divas vai vairākas tīkla saskarņu kartes (NIC) ļauj izveidot vienu virtuālo NIC karti, kas var palielināt joslas platumu un nodrošināt NIC karšu atlaišanu. Tas ir lielisks veids, kā ražošanas sistēmā panākt liekas saites, kļūdu toleranci vai slodzes līdzsvarošanas tīklus. Ja viens fiziskais NIC nedarbojas vai ir atvienots no tīkla, tas automātiski pārvietos resursus uz citu NIC karti. Kanālu/NIC savienošana darbosies ar kodola draivera palīdzību. Mēs izmantosim divus NIC, lai parādītu to pašu.

Ir pieejami gandrīz seši kanāla obligāciju veidi. Šeit mēs pārskatīsim tikai divu veidu kanālu obligācijas, kas ir populāras un plaši izmantotas.

  1. 0: slodzes līdzsvarošana (apļa pārbaude): satiksme tiek pārraidīta secībā vai kārtā no abiem NIC. Šis režīms nodrošina slodzes līdzsvarošanu un kļūdu toleranci.
  2. 1: Active-Backup: Tikai viens vergu NIC ir aktīvs noteiktā laika posmā. Cita interfeisa karte būs aktīva tikai tad, ja aktīvais vergu NIC neizdosies.

Ethernet kanālu saistīšanas izveide

Mums ir divas tīkla Ethernet kartes, t.i., eth1 un eth2, kur bond0 tiks izveidota saistīšanas nolūkā. Nepieciešams priviliģēts superlietotājs, lai izpildītu zemāk norādītās komandas.

Konfigurācijas failā miniet parametru MASTER bond0 un eth1 kā SLAVE, kā parādīts tālāk.

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes

Šeit arī norādiet parametru MASTER bond0 un eth2 kā SLAVE.

# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Izveidojiet bond0 un konfigurējiet Channel bonding interfeisu direktorijā “/ etc/sysconfig/network-scripts /” ar nosaukumu ifcfg-bond0.

Šis ir kanālu savienošanas konfigurācijas faila paraugs.

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

Piezīme: Iepriekšminētajā konfigurācijā mēs esam izvēlējušies Bonding Options režīmu = 0, t.i., Round-Robin un miimon = 100 (Aptaujas intervāli 100 ms).

Apskatīsim saskarnes, kas izveidotas, izmantojot komandu ifconfig, kas parāda, ka “bond0” darbojas kā MASTER, kā arī saskarnes “eth1” un “eth2”, kas darbojas kā SLAVES.

# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          inet addr:192.168.246.130  Bcast:192.168.246.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1231555 (1.1 MiB)  TX bytes:1622391 (1.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1196931 (1.1 MiB)  TX bytes:819042 (799.8 KiB)
          Interrupt:19 Base address:0x2000

eth2      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:34624 (33.8 KiB)  TX bytes:803583 (784.7 KiB)
          Interrupt:19 Base address:0x2080

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

Restartējiet tīkla pakalpojumu un saskarnēm jābūt OK.

# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Obligācijas statusa pārbaude.

# watch -n .1 cat /proc/net/bonding/bond0

Zemāk izvads parāda, ka līmēšanas režīms ir slodzes līdzsvarošana (RR) un parādās eth1 un eth2.

Every 0.1s: cat /proc/net/bonding/bond0                         Thu Sep 12 14:08:47 2013 

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Šajā scenārijā vergu saskarnes paliek nemainīgas. tikai viena izmaiņa būs obligāciju saskarnē ifcfg-bond0, nevis ‘0’, tā būs ‘1’, kas parādīta kā zemāk.

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"

Restartējiet tīkla pakalpojumu un pārbaudiet saistīšanas statusu.

# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Obligācijas statusa pārbaude ar komandu.

# watch -n .1 cat /proc/net/bonding/bond0

Bonding Mode parāda kļūdu toleranci (aktīvā dublēšana), un Slave Interface ir aktivizēts.

Every 0.1s: cat /proc/n...  Thu Sep 12 14:40:37 2013

Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Piezīme. Manuāli uz leju un uz augšu vergu saskarnes, lai pārbaudītu kanālu saistīšanas darbību. Lūdzu, skatiet komandu, kā norādīts zemāk.

# ifconfig eth1 down
# ifconfig eth1 up

Tieši tā!