Network teaming or bonding

Материал из pNp Wiki
Версия от 14:41, 22 ноября 2017; Andy (обсуждение | вклад) (Новая страница: «== Аггрегирование интерфейсов: teaming или bonding == ==== Предварительные требования ==== * Виртуал…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Аггрегирование интерфейсов: teaming или bonding

Предварительные требования

  • Виртуальная машина с двумя сетевыми интерфейсами
  • Установленные пакеты: bash-completion, teamd

Настройка интерфейсов

Настройка производится при помощи NetworkManager.

Предположим, что у нас имеются интерфейсы:

[root@vm-02 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:69:43:af brd ff:ff:ff:ff:ff:ff
3: ens10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:12:f1:62 brd ff:ff:ff:ff:ff:ff
[root@vm-02 ~]#

которые не имеют адресов и, следовательно, не показываются в nmcli:

[root@vm-02 ~]# nmcli connection show
NAME  UUID  TYPE  DEVICE
[root@vm-02 ~]#

Добавим интерфейсы:

[root@vm-02 ~]# nmcli connection add type ethernet ifname ens3 con-name ens3
[root@vm-02 ~]# nmcli connection add type ethernet ifname ens10 con-name ens10

Если интерфейс не подключился автоматически, то можно сделать так:

[root@vm-02 ~]# nmcli device connect ens10 
Device 'ens10' successfully activated with '3f2bda3f-ea5c-4210-907b-1b2ab031533a'.
[root@vm-02 ~]# nmcli connection show
NAME   UUID                                  TYPE            DEVICE 
ens10  3f2bda3f-ea5c-4210-907b-1b2ab031533a  802-3-ethernet  ens10  
ens3   3e6df68f-c1db-45d7-8303-c9d8f5910e73  802-3-ethernet  ens3   
[root@vm-02 ~]#

Для ускорения времени в настройке teaming'а надо взять примеры конфигурационных файлов, входящих в пакет teamd:

[root@vm-02 ~]# rpm -qd teamd | grep load
/usr/share/doc/teamd-1.9/example_configs/loadbalance_1.conf
/usr/share/doc/teamd-1.9/example_configs/loadbalance_2.conf
/usr/share/doc/teamd-1.9/example_configs/loadbalance_3.conf
[root@vm-02 ~]#

В зависимости от задания (настроить roundrobin, loadbalance или lacp), выбираем нужную конфигурацию, в данном примере, предположим, что у нас loadbalance, поэтому скопируем соответствующий файл в директорию /root:

/bin/cp -a /usr/share/doc/teamd-1.9/example_configs/loadbalance_2.conf /root/lb2.conf

Поправим имена интерфейсов в конфигурационном файле в соотвествии с именами нашей виртуальной машины:

[root@vm-02 ~]# sed -i 's#eth1#ens3#g' /root/lb2.conf 
[root@vm-02 ~]# sed -i 's#eth2#ens10#g' /root/lb2.conf 
[root@vm-02 ~]# cat /root/lb2.conf 
{
	"device":		"team0",
	"runner": {
		"name": "loadbalance",
		"tx_hash": ["eth", "ipv4", "ipv6"]
	},
	"ports":		{"ens3": {}, "ens10": {}}
}
[root@vm-02 ~]#