RHEL/CentOS 7 üzərindən teaming

Bu günki məqaləmizdə, RHEL/CentOS 7 ailəsinə mənsub olan linux distributivləri üzərindən şəbəkə interfeyslərinin teaming-i ( başqa dildə desək – bonding. etherchannel və s.) ilə tanış olacağıq. Teaming, 2 və daha artıq fiziki şəbəkə portunun vahid virtual adapter kimi təyin olunmasına imkan verir ki , bu da seçilmiş iş rejimindən asılı olaraq, hər hansı şəbəkə adapterində və ya switchə gedən yolda problem çıxarsa, traffikin mövcud aktiv kanal üzrə ötürülməsinə yardımçı olacaq və ya mövcud traffikin 2 interfeys arasında load-balancing vasitəsilə bölgüsünə nail olacaq.

RHEL 7 ailəsinə mənsub olan ƏS-ləri, teaming-in aşağıdakı iş rejimləri ( runners) üzrə sazlanmaları dəstəkləyir:

  • broadcast – Trafik eyni anda bütün interfeyslər üzrə göndərilir;
  • round-robin – Trafik növbəli rejimdə bütün interfeyslər üzrə göndərilir;
  • activebackup – Teaming-də sazlanmış fiziki intefeyslərdən yalnız 1-i aktiv rejimdə traffik göndərir, digər interfeyslər gözləmə rejimində olurlar və aktiv interfeysdə xəta baş verdikdə aktivləşir;
  • loadbalance– Traffikin interfeyslər arasında yüklənmə həcminə görə bölünməsi.
  • lacpLACP protokolu vasitəsilə teaming;

Biz 2 iş rejiminin sazlanmasına baxacağıq:

  • active-backup – Bu rejimin işləməsi üçün switch tərəfində heç bir sazlanmaya ehtiyac yoxdur. Rejim, mövcud şəbəkə interfeyslərindən yalnız 1-ni trafikin göndərilməsi üçün istifadə edir, digər sazlanmış interfeyslər gözləmə rejimində olurlar. ( failover)
  • LACP – IEEE tərəfindən təsdiqlənmış standarta əsasən teaming sazlanması. ƏS-dən əlavə, switchdə də müəyyən işlərin görülməsi zəruridir.

Istifadə olunan mühit:
ƏS: virtsrv.technet.local, CentOS 7 x86_64, 2 fiziki adapter
Switch: Cisco switch, 3560

rounded_corners

 

Ilk öncə, CentOS ƏS-ni teaming hazırlayacağıq. Bunu faktiki 1 neçə metodla etmək mümkündür, biz nmcli aləti vasitəsilə bunu edəcəyik. Lazımı paketleri yükləyirik:

[[email protected] ~]# yum install teamd NetworkManager -y

Active-backup
Mövcud fiziki şəbəkə interfeyslərinə baxırıq:

[[email protected] ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
link/ether e4:1f:13:b3:8a:74 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
link/ether e4:1f:13:b3:8a:74 brd ff:ff:ff:ff:ff:ff

Gördüyümüz kimi, 2 şəbəkə adapterimiz mövcuddur eth0, eth1. Yeni team0 adlı master team interfeysi yaradırıq, static İP təyin edirik və iş rejimi kimi, activebackup rejimini seçirik :

[[email protected] ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name": "activebackup"}}' ip4 192.168.122.50/24 gw4 192.168.122.1
Connection 'team0' (a9f0ecb3-13f3-4fe4-8ec9-d04fd391c314) successfully added.
[[email protected] ~]# nmcli connection modify team0 ipv4.method manual

Yeni yaratdığımız virtual team interfeysinə qoşulacaq slave fiziki interfeysləri sazlayırıq:

[[email protected] ~]# nmcli connection add type team-slave con-name team0_port0 ifname eth0 master team0
Connection 'team0_port0' (b43bb7cc-2dca-41af-83ee-85003e43f6a5) successfully added.
[[email protected] ~]# nmcli connection add type team-slave con-name team0_port1 ifname eth1 master team0
Connection 'team0_port1' (758b4627-2d36-49d5-a905-c5032af4f556) successfully added.

Ardınca yeni yaradılmış interfeysləri reset etməklə team interfeysinin sazlanmasını bitmiş hesab etmək olar:

[[email protected] ~]# nmcli connection down team0_port0 && nmcli connection up team0_port0
Connection 'team0_port0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/33)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/35)

[[email protected] ~]# nmcli connection down team0_port1 && nmcli connection up team0_port1
Connection 'team0_port0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/33)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/35)

teamdctl əmri vasitəsilə team interfeyslərinin statusuna baxa bilərik.

[[email protected] ~]# teamdctl team0 state
setup:
runner: activebackup
ports:
eth0
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
eth1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: eth1

Gördüyünüz kimi, active-backup rejimində interfeyslərdən yalnız 1-i aktiv olur – bizim misalımızda, eth0 . Həmin interfeysi deaktiv etməklə, şəbəkədə problem simulyasiya edək digər interfeysin aktiləşməsini yoxlaya bilərik:

[[email protected] ~]# nmcli device disconnect eth1
Device 'eth1' successfully disconnected.
[[email protected] ~]# teamdctl team0 state
setup:
runner: activebackup
ports:
eth0
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: eth0

Gördüyünüz kimi, active interfeys digər porta keçirildi.

LACP vasitəsilə teaming.
İlk öncə, Cisco switchində portların sazlanmasını həyata keçiririk.

Press RETURN to get started.

TESTSW#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.

TESTSW(config)#interface range g0/9 - 10
TESTSW(config-if-range)#no shutdown
TESTSW(config-if-range)#channel-group 1 mode passive
Creating a port-channel interface Port-channel 1
TESTSW(config-if-range)#end
TESTSW#show etherchannel 1 summary
………………………………………………...
Number of channel-groups in use: 1
Number of aggregators: 1

Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) LACP Gi0/9(P) Gi0/10(P)

Ardınca CentOS 7 ƏS-ndə yeni team interfeys yaradırıq və iş rejimini lacp göstəririk, müvafiq slave interfeysləri təyin edirik və interfeysi aktivləşdiririk:

[[email protected] ~]# nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name": "lacp"}}' ip4 192.168.122.50/24 gw4 192.168.122.1
[[email protected] ~]# nmcli connection add type team-slave con-name team0_port1 ifname eth1 master team0
Connection 'team0_port1' (a8f882ba-181c-43f4-932d-fcfc0493bd0a) successfully added.
[[email protected] ~]# nmcli connection add type team-slave con-name team0_port0 ifname eth0 master team0
Connection 'team0_port0' (3a8464cf-0eba-42b2-9518-fb7639183bf5) successfully added.
[[email protected] ~]# nmcli connection up team0_port0 && nmcli connection up team0_port1

teamdctl vasitəsilə interfeysin statusuna baxırıq:

[[email protected] ~]# teamdctl team0 state
setup:
runner: lacp
ports:
eth0
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
aggregator ID: 3, Selected
selected: yes
state: current
eth1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
aggregator ID: 3, Selected
selected: yes
state: current
runner:
active: yes
fast rate: no

Bununla da teaming sazlanmasını bitmiş hesab etmək olar.

Fərid Səmədov | CISM, CISSP, RHCE, MCITP

Səs: +20. Bəyənilsin Zəifdir

Müəllif: Fərid Səmədov

Şərhlər ( 3 )

  1. Fərid əlinizə sağlıq. Gözəl məqalə alinib. Centos 6 ile 7 arasinda command syntax fərqinin cox oldugunu anlaşılır 🙂

    • Pərviz / . Dərc edilib:A 23/05/2015 at 4:32 PM
      Səs: +2. Bəyənilsin Zəifdir

    Çox faydalı məqalədi.Sağolun Fərid müəllim

  2. Fərid bəy çox gözəl mövzudur. Təşəkkürlər.

Şərh yazın