Вы находитесь на странице: 1из 4

http://rus-linux.net/MyLDP/BOOKS/LSA/ch24.

html

Администрирование систем Linux. Добавление IP-


адресов и связывание сетевых интерфейсов
Оригинал: Binding and bonding
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 1 апреля 2015 г.

Глава 24. Добавление IP-адресов и связывание сетевых


интерфейсов
Иногда приходится использовать более одного IP-адреса при работе с одной сетевой картой, причем в этом случае говорят о добавлении IP-адресов
сетевого интерфейса (binding IP addresses).

Ядро Linux также может активировать множество сетевых карт, использующих один и тот же IP-адрес, причем данная технология
называется связыванием сетевых интерфейсов (bonding).

В данной главе описываются процессы добавления IP-адресов и связывания сетевых интерфейсов в наиболее популярных дистрибутивах Linux.

24.1. Добавление IP-адресов сетевых интерфейсов в


дистрибутивах Red Hat/Fedora
24.1.1. Добавление дополнительных IP-адресов

Для связывания более чем одного IP-адреса с одним и тем же сетевым интерфейсом следует использовать файл конфигурации сетевого интерфейса
с именем ifcfg-eth0:0, где вместо второго значения 0 может использоваться любое число. В подобных файлах конфигурации обязательны к
использованию всего две директивы.

[root@rhel6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0


DEVICE="eth0:0"
IPADDR="192.168.1.133"
[root@rhel6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE="eth0:0"
IPADDR="192.168.1.142"

24.1.2. Активация дополнительных IP-адресов

Для активации виртуального сетевого интерфейса следует использовать утилиту ifup, для его деактивации - утилиту ifdown.

[root@rhel6 ~]# ifup eth0:0


[root@rhel6 ~]# ifconfig | grep 'inet '
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:192.168.1.133 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0
[root@rhel6 ~]# ifup eth0:1
[root@rhel6 ~]# ifconfig | grep 'inet '
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:192.168.1.133 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:192.168.1.142 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0

24.1.3. Проверка корректности добавления дополнительных IP-адресов

Для проверки корректности добавления и активации дополнительных IP-адресов сетевого интерфейса следует либо использовать утилиту ping на
другом компьютере, либо использовать утилиту ifconfigтаким образом, как показано в примере ниже.

[root@rhel6 ~]# ifconfig


eth0 Link encap:Ethernet HWaddr 08:00:27:DD:0D:5C
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fedd:d5c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1259 errors:0 dropped:0 overruns:0 frame:0
TX packets:545 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:115260 (112.5 KiB) TX bytes:84293 (82.3 KiB)

eth0:0 Link encap:Ethernet HWaddr 08:00:27:DD:0D:5C


inet addr:192.168.1.133 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

eth0:1 Link encap:Ethernet HWaddr 08:00:27:DD:0D:5C


inet addr:192.168.1.142 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

24.2. Добавление IP-адресов сетевых интерфейсов в


дистрибутивах Debian/Ubuntu
24.2.1. Добавление дополнительных IP-адресов
Указание дополнительных IP-адресов для одной и той же сетевой карты осуществляется в рамках файла
конфигурации /etc/network/interfaces путем добавления устройств с именами eth0:x. Кроме того, при редактировании данного файла
конфигурации обязательно указание масок сетей сетевых интерфейсов.

debian5:~# cat /etc/network/interfaces


# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface


auto lo
iface lo inet loopback

# The primary network interface


iface eth0 inet static
address 192.168.1.34
network 192.168.1.0
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0

auto eth0:0
iface eth0:0 inet static
address 192.168.1.233
netmask 255.255.255.0

auto eth0:1
iface eth0:1 inet static
address 192.168.1.242
netmask 255.255.255.0

24.2.2. Активация дополнительных IP-адресов

Используйте утилиту ifup для активации дополнительных IP-адресов.

debian5:~# ifup eth0:0


debian5:~# ifup eth0:1

24.2.3. Проверка корректности добавления дополнительных IP-адресов

Для проверки корректности добавления и активации дополнительных IP-адресов следует либо использовать утилиту ping с другого компьютера, либо
использовать утилиту ifconfig таким образом, как показано в примере ниже.

debian5:~# ifconfig | grep 'inet '


inet addr:192.168.1.34 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:192.168.1.233 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:192.168.1.242 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0

24.3. Связывание сетевых интерфейсов в дистрибутивах


RedHat/Fedora
Начнем с выполнения команды ifconfig -a для получения списка всех сетевых карт, установленных в компьютере.

[root@rhel6 network-scripts]# ifconfig -a | grep Ethernet


eth0 Link encap:Ethernet HWaddr 08:00:27:DD:0D:5C
eth1 Link encap:Ethernet HWaddr 08:00:27:DA:C1:49
eth2 Link encap:Ethernet HWaddr 08:00:27:40:03:3B

В данном примере мы будем связывать сетевые интерфейсы eth1 и eth2.

Назовем нашу связку сетевых интерфейсов bond0 и добавим это название в файл конфигурации утилиты modprobe для того, чтобы ядро ОС
автоматически загружало модуль bonding в момент, когда мы будем активировать соответствующий сетевой интерфейс.

[root@rhel6 network-scripts]# cat /etc/modprobe.d/bonding.conf


alias bond0 bonding

После этого мы должны будем создать файл конфигурации /etc/sysconfig/network-scripts/ifcfg-bond0 для сохранения параметров конфигурации
нашего сетевого интерфейса bond0.

[root@rhel6 network-scripts]# pwd


/etc/sysconfig/network-scripts
[root@rhel6 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.199
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

На следующем этапе мы должны будем создать два файла конфигурации, по одному для каждой сетевой карты, используемой для создания
виртуального сетевого интерфейса bond0.

[root@rhel6 network-scripts]# cat ifcfg-eth1


DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
[root@rhel6 network-scripts]# cat ifcfg-eth2
DEVICE=eth2
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

Наконец, мы активируем сетевой интерфейс с помощью команды ifup bond0.

[root@rhel6 network-scripts]# ifup bond0


[root@rhel6 network-scripts]# ifconfig bond0
bond0 Link encap:Ethernet HWaddr 08:00:27:DA:C1:49
inet addr:192.168.1.199 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feda:c149/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:251 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:39852 (38.9 KiB) TX bytes:1070 (1.0 KiB)

Информация о виртуальном сетевом интерфейсе bond0 также будет присутствовать в одноименном файле из директории /proc/net/bonding.

[root@rhel6 network-scripts]# cat /proc/net/bonding/bond0


Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

Bonding Mode: load balancing (round-robin)


MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1


MII Status: up
Link Failure Count: 0
Permanent HW addr: 08:00:27:da:c1:49

Slave Interface: eth2


MII Status: up
Link Failure Count: 0
Permanent HW addr: 08:00:27:40:03:3b

24.4. Связывание сетевых интерфейсов в дистрибутивах


Debian/Ubuntu
Начнем с выполнения команды ifconfig -a для получения списка всех сетевых карт, установленных в компьютере.

debian5:~# ifconfig -a | grep Ethernet


eth0 Link encap:Ethernet HWaddr 08:00:27:bb:18:a4
eth1 Link encap:Ethernet HWaddr 08:00:27:63:9a:95
eth2 Link encap:Ethernet HWaddr 08:00:27:27:a4:92

В данном примере мы будем связывать сетевые интерфейсы eth1 и eth2.

Также нам придется установить пакет программного обеспечения ifenslave.

debian5:~# aptitude search ifenslave


p ifenslave - Attach and detach slave interfaces to a bonding device
p ifenslave-2.6 - Attach and detach slave interfaces to a bonding device
debian5:~# aptitude install ifenslave
Чтение списков пакетов Готово
...

После этого нам придется отредактировать файл конфигурации /etc/network/interfaces, добавив в него информацию о виртуальном сетевом
интерфейсе bond0.

debian5:~# tail -7 /etc/network/interfaces


iface bond0 inet static
address 192.168.1.42
netmask 255.255.255.0
gateway 192.168.1.1
slaves eth1 eth2
bond-mode active-backup
bond_primary eth1

В более старых версиях дистрибутивов Debian/Ubintu вам придется вручную выполнить команду modprobe bonding, но в современных версиях данных
дистрибутивов этого уже не требуется. Используйте утилиту ifup для активации сетевого интерфейса и проверьте его работоспособность.

debian5:~# ifup bond0


debian5:~# ifconfig bond0
bond0 Link encap:Ethernet HWaddr 08:00:27:63:9a:95
inet addr:192.168.1.42 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe63:9a95/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:212 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:31978 (31.2 KiB) TX bytes:6709 (6.5 KiB)

Информация о виртуальном сетевом интерфейсе bond0 также будет присутствовать в одноименном файле из директории /proc/net/bonding/.

debian5:~# cat /proc/net/bonding/bond0


Ethernet Channel Bonding Driver: v3.2.5 (March 21, 2008)

Bonding Mode: fault-tolerance (active-backup)


Primary Slave: eth1
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1


MII Status: up
Link Failure Count: 0
Permanent HW addr: 08:00:27:63:9a:95

Slave Interface: eth2


MII Status: up
Link Failure Count: 0
Permanent HW addr: 08:00:27:27:a4:92

24.5. Практическое задание: добавление IP-адресов и связывание


сетевых интерфейсов
1. Свяжите дополнительный IP-адрес с одной из ваших сетевых карт. Проверьте его работоспособность (может ли ваш сосед использовать данный IP-
адрес для входа в вашу систему с использованием протокола ssh)!

2. Используйте утилиту ifdown для деактивации данного IP-адреса.

3. Убедитесь в том, что ваш сосед также успешно связал дополнительный IP-адрес с сетевой картой перед продолжением выполнения заданий.

4. Добавьте дополнительную сетевую карту (или две) в вашу виртуальную машину и используйте информацию из теоретической части главы
для связывания двух сетевых карт.

24.6. Корректная процедура выполнения практического задания:


добавление IP-адресов и связывание сетевых интерфейсов
1. Свяжите дополнительный IP-адрес с одной из ваших сетевых карт. Проверьте его работоспособность (может ли ваш сосед использовать данный IP-
адрес для входа в вашу систему с использованием протокола ssh)!

В дистрибутивах RedHat/Fedora:

Следует добавить файлы конфигурации /etc/sysconfig/network-scripts/ifcfg-ethX:X, содержащие описания виртуальных сетевых


интерфейсов, таким образом, как показано в теоретической части главы.

В дистрибутивах Debian/Ubuntu:

Следует модифицировать файл конфигурации /etc/network/interfaces, добавив в него описания виртуальных сетевых интерфейсов таким
образом, как показано в теоретической части главы.

2. Используйте утилиту ifdown для деактивации данного IP-адреса.

ifdown eth0:0

3. Убедитесь в том, что ваш сосед также успешно связал дополнительный IP-адрес с сетевой картой перед продолжением выполнения заданий.

ping $дополнительный_ip_адрес_соседа

или

ssh $дополнительный_ip_адрес_соседа

4. Добавьте дополнительную сетевую карту (или две) в вашу виртуальную машину и используйте информацию из теоретической части главы
для связывания двух сетевых карт.

В дистрибутивах RedHat/Fedora:

Следует добавить в директорию /etc/sysconfig/network-scripts файлы ifcfg-ethX и ifcfg-bondX, заполненные таким образом, как
показано в теоретической части главы. Также не забудьте о необходимости редактирования файла конфигурации утилиты modprobe.

В дистрибутивах Debian/Ubuntu:

Следует модифицировать файл /etc/network/interfaces таким образом, как показано в теоретической части главы. Не забудьте о
необходимости установки пакета программного обеспечения ifenslave.

Вам также может понравиться