Библиотека сайта rus-linux.net
Администрирование систем 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
.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Глава 23. Перехват сетевого трафика | Глава 25. Клиент и сервер ssh |