- Администрирование систем Linux. Добавление IP-адресов и связывание сетевых интерфейсов
- Глава 24. Добавление IP-адресов и связывание сетевых интерфейсов
- 24.1. Добавление IP-адресов сетевых интерфейсов в дистрибутивах Red Hat/Fedora
- 24.2. Добавление IP-адресов сетевых интерфейсов в дистрибутивах Debian/Ubuntu
- 24.3. Связывание сетевых интерфейсов в дистрибутивах RedHat/Fedora
- 24.4. Связывание сетевых интерфейсов в дистрибутивах Debian/Ubuntu
- 24.5. Практическое задание: добавление IP-адресов и связывание сетевых интерфейсов
- 24.6. Корректная процедура выполнения практического задания: добавление IP-адресов и связывание сетевых интерфейсов
- Несколько IP-адресов на одном сетевом адаптере в CentOS
- Принцип настройки
- Разовая настройка (командой)
- Постоянная настройка
- Настройка отвечающего интерфейса
- Как из консоли в Linux добавить второй IP-адрес?
- Установка
- Добавить второй IP-адрес в RedHat/CentOS/ASPLinux и т.д.
- Добавить второй IP-адрес в Debian/Ubuntu и т.д.
- Комментарии
- Настройка сети с помощью утилиты ip в Debian linux
- Синтаксис
- Понимание синтаксиса OBJECTS в комманде ip
- Примеры использования команды ip
- Показать информацию обо всех сетевых интерфейсах
- Назначить интерфейсу IP адрес
- Добавить широковещательный адрес на интерфейс
- Удалить IP адрес с интерфейса
- Сбросить ряд IP адресов с интерфейса
- Как изменить состояние интерфейса на UP или DOWN
- Как изменить txqueuelen устройства
- Как изменить MTU устройства
- Показать соседей (arp кэш)
- Добавить новую ARP запись
- Удалить ARP запись
- Очистить ARP запись
- ip route: команды управления таблицей маршрутизации
- Показать таблицу маршрутизации
- Добавить новый маршрут
- Удалить маршрут
Администрирование систем Linux. Добавление IP-адресов и связывание сетевых интерфейсов
Глава 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 может использоваться любое число. В подобных файлах конфигурации обязательны к использованию всего две директивы.
24.1.2. Активация дополнительных IP-адресов
Для активации виртуального сетевого интерфейса следует использовать утилиту ifup , для его деактивации — утилиту ifdown .
24.1.3. Проверка корректности добавления дополнительных IP-адресов
Для проверки корректности добавления и активации дополнительных IP-адресов сетевого интерфейса следует либо использовать утилиту ping на другом компьютере, либо использовать утилиту ifconfig таким образом, как показано в примере ниже.
24.2. Добавление IP-адресов сетевых интерфейсов в дистрибутивах Debian/Ubuntu
24.2.1. Добавление дополнительных IP-адресов
Указание дополнительных IP-адресов для одной и той же сетевой карты осуществляется в рамках файла конфигурации /etc/network/interfaces путем добавления устройств с именами eth0:x . Кроме того, при редактировании данного файла конфигурации обязательно указание масок сетей сетевых интерфейсов.
24.2.2. Активация дополнительных IP-адресов
Используйте утилиту ifup для активации дополнительных IP-адресов.
24.2.3. Проверка корректности добавления дополнительных IP-адресов
Для проверки корректности добавления и активации дополнительных IP-адресов следует либо использовать утилиту ping с другого компьютера, либо использовать утилиту ifconfig таким образом, как показано в примере ниже.
24.3. Связывание сетевых интерфейсов в дистрибутивах RedHat/Fedora
Начнем с выполнения команды ifconfig -a для получения списка всех сетевых карт, установленных в компьютере.
В данном примере мы будем связывать сетевые интерфейсы eth1 и eth2 .
Назовем нашу связку сетевых интерфейсов bond0 и добавим это название в файл конфигурации утилиты modprobe для того, чтобы ядро ОС автоматически загружало модуль bonding в момент, когда мы будем активировать соответствующий сетевой интерфейс.
После этого мы должны будем создать файл конфигурации /etc/sysconfig/network-scripts/ifcfg-bond0 для сохранения параметров конфигурации нашего сетевого интерфейса bond0 .
На следующем этапе мы должны будем создать два файла конфигурации, по одному для каждой сетевой карты, используемой для создания виртуального сетевого интерфейса bond0 .
Наконец, мы активируем сетевой интерфейс с помощью команды ifup bond0 .
Информация о виртуальном сетевом интерфейсе bond0 также будет присутствовать в одноименном файле из директории /proc/net/bonding .
24.4. Связывание сетевых интерфейсов в дистрибутивах Debian/Ubuntu
Начнем с выполнения команды ifconfig -a для получения списка всех сетевых карт, установленных в компьютере.
В данном примере мы будем связывать сетевые интерфейсы eth1 и eth2 .
Также нам придется установить пакет программного обеспечения ifenslave .
После этого нам придется отредактировать файл конфигурации /etc/network/interfaces , добавив в него информацию о виртуальном сетевом интерфейсе bond0 .
В более старых версиях дистрибутивов Debian/Ubintu вам придется вручную выполнить команду modprobe bonding , но в современных версиях данных дистрибутивов этого уже не требуется. Используйте утилиту ifup для активации сетевого интерфейса и проверьте его работоспособность.
Информация о виртуальном сетевом интерфейсе bond0 также будет присутствовать в одноименном файле из директории /proc/net/bonding/ .
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-адреса .
3. Убедитесь в том, что ваш сосед также успешно связал дополнительный IP-адрес с сетевой картой перед продолжением выполнения заданий.
4. Добавьте дополнительную сетевую карту (или две) в вашу виртуальную машину и используйте информацию из теоретической части главы для связывания двух сетевых карт .
В дистрибутивах RedHat/Fedora:
Следует добавить в директорию /etc/sysconfig/network-scripts файлы ifcfg-ethX и ifcfg-bondX , заполненные таким образом, как показано в теоретической части главы. Также не забудьте о необходимости редактирования файла конфигурации утилиты modprobe .
В дистрибутивах Debian/Ubuntu:
Следует модифицировать файл /etc/network/interfaces таким образом, как показано в теоретической части главы. Не забудьте о необходимости установки пакета программного обеспечения ifenslave .
Источник
Несколько IP-адресов на одном сетевом адаптере в CentOS
Назначение 2-х и более адресов на один физический сетевой интерфейс позволяет запуск приложений и служб, которые используют несколько IP или работают на разных сетевых адресах.
Принцип настройки
Для назначения вторичного IP-адреса создается псевдоним (alias) сетевого интерфейса. Название для алиаса задается по принципу : , например, eth0:0 или eth0:1.
Псевдониму можно назначить только статический ip-адрес, нельзя присвоить адрес с помощью DHCP.
Разовая настройка (командой)
Добавить дополнительный адрес можно одной командой:
ip a add 192.168.1.11/24 dev enp2s0:1
* в данном примере мы назначили адрес 192.168.1.11 с маской 255.255.255.0 (/24) для сетевого интерфейса enp2s0. Данный алиас назван enp2s0:1.
Если для управления сетевыми интерфейсами используем утилиту ifconfig:
ifconfig enp2s0:1 192.168.1.11 up
Проверить настройку можно одной из команд:
* обе команды позволяют посмотреть сетевые интерфейсы и узнать IP-адреса, назначенные им.
Необходимо помнить, что данная настройка будет сброшена после перезагрузки сетевой службы или системы.
Постоянная настройка
Чтобы дополнительный адрес назначался при перезагрузках, создаем новый виртуальный адаптер:
DEVICE=enp2s0:1
BOOTPROTO=static
IPADDR=192.168.1.11
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
Для применения настроек, перезапускаем сетевую службу:
systemctl restart network
Настройка отвечающего интерфейса
Некоторые приложения, которые отвечают на сетевые запросы с интерфейсов-алиасов могут работать некорректно. Это связано с тем, что ответ выполняется не с вторичного IP-адреса, на который пришел запрос, а первичного.
Для настройки сетевых ответов с IP, на который пришел запрос, вносим изменения в таблицу маршрутизации.
Для начала нужно найти незанятую таблицу (по умолчанию, они все пусты, кроме основной):
ip route show table 100
* в данном примете мы посмотрим на маршруты таблицы с номером 100.
Если маршрутов нет, то добавляем следующие:
ip route add default via 192.168.1.1 src 192.168.1.11 table 100
ip rule add from 192.168.1.0/24 table 100
ip rule add to 192.168.1.0/24 table 100
* в данном примере добавлены маршруты для подсети 192.168.1.0/24
Для постоянного добавления маршрута, создаем файл:
default via 192.168.1.1 src 192.168.1.11 table 100
Источник
Как из консоли в Linux добавить второй IP-адрес?
На работе недавно потребовалось установить одному сетевому интерфейсу 2 IP-адреса. На операционной системе Windows сделать это проще простого и все это знают, но как же быть с Linux. Вопрос оказывается тоже простой и решается несколькими строчками кода.
В Linux, также как и в Windows добавить ip адрес очень просто. Давайте не будем откладывать это в долгий ящик и прямо сейчас всё сделаем.
Установка
Чтобы не лить много воды, хочу сразу разделить все операционные системы Linux на 2 условные группы: основанные на RedHat (Fedore, CentOS, ASPL inux и так далее) и все остальные. Такое условное разделение на группы здесь не случайно, так как у RedHat и похожих на него операционных систем, есть одно явное отличие в настройке сетевых интерфейсов. У обычных Linux систем (вторая группы) все настройки сетевых интерфейсов, кроме исполняемых скриптов, лежат в /etc/network/, а у RedHat они исторически размещаются в /etc/sysconfig/network-scripts. Синтаксис и структура конфигурационных файлов также сильно отличается.
Добавить второй IP-адрес в RedHat/CentOS/ASPLinux и т.д.
В этих ОС конфигурации каждого интерфейса отведен отдельный файл. Если открыть директорию /etc/sysconfig/network-scripts, то можно их увидеть. Они имеют вид ifcfg-eth0, ifcfg-eth1 и т.д.
Чтобы добавить к существующему интерфейсу еще 1 IP-адрес, нам нужно создать новый файл ifcfg-eth0:1 с новыми настройками:
и в него поместить код:
Адрес и маска у Вас конечно же должны быть свои.
Добавить второй IP-адрес в Debian/Ubuntu и т.д.
Для этого необходимо открыть конфиг. /etc/network/interfaces :
В нем скорее всего будут уже настройки вашего интерфейса eth0. На моем подопытном сервере было так: Для того, чтобы у этого интерфейса появился дополнительно второй IP-адрес, наш конфигурационный файл должен выглядеть так:
В примере получается, что одному сетевому интерфейсу было присвоено два IP-адреса с разных подсетей.
Комментарии
Здравствуйте, Иван. Я – ваш коллега, администратор сайта http://litl-admin.ru. Хотел бы обменяться ссылками с вашим сайтом. E-mail для связи у вас есть! информация об обмене у меня на сайте в разделе “Обмен ссылками”
Скажите как такая настройка работает , стабильно ? То есть имеется ввиду при одновременном обращении клиентов из разных подсетей.
Источник
Настройка сети с помощью утилиты ip в Debian linux
Команда ip используется для назначения адреса сетевому интерфейсу и/или конфигурирования параметров сетевого интерфейса в дистрибутивах Linux. Эта команда заменяет собой старую добрую и ныне устаревшую команду ifconfig в современных дистрибутивах Linux.
Команда ip может использоваться для следующих целей:
- Узнать какие интерфейсы сконфигурированы в системе.
- Запросить статус IP интерфейса.
- Сконфигурировать локальный, Ethernet и другие интерфейсы.
- Пометить интефейс как up или down.
- Сконфигурировать или изменить статическую маршрутизацию или маршрутизацию по умолчанию.
- Сконфигурировать туннель через IP.
- Сконфигурировать содержимое ARP или NDISC кэша.
- Назначить IP адресы, маршруты, подсети и другую IP информацию на интерфейс.
Синтаксис
Понимание синтаксиса OBJECTS в комманде ip
OBJECTS может быть одним из следующих и может записываться в полной или сокращенной форме:
Объект | Сокращенная форма | Задача |
---|---|---|
link | l | Сетевое устройство. |
address | a, addr | IP адрес на устройстве. |
addrlabel | addrl | Управление метками для выбора адреса. |
neighbour | n, neigh | Записи для ARP или NDISC кэшей. |
route | r | Управление записямя таблицы маршрутизации. |
rule | ru | Правила в базе политик маршрутизации. |
maddress | m, maddr | Мультикаст адрес. |
mroute | mr | Записи мультикастового кэша маршрутизации. |
tunnel | t | Туннель через IP. |
xfrm | x | Фреймворк для протокола IPsec. |
Чтобы получить информацию о каждом из объектов используйте команду help следующим образом:
Предупреждение : команды описанные ниже должны выполняться с осторожностью, так как ошибка может привести к потере соединения с сервером. Вы должны быть особо аккуратны при работе в удаленной сессии по ssh.
Примеры использования команды ip
Не пугайтесь синтаксиса команды ip. Давайте сразу начнем с примеров.
Показать информацию обо всех сетевых интерфейсах
Введите следующую команду чтобы получить список всех ip адресов назначенных всем сетевым интерфейсам:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default
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: eth0:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:8b:46:9a brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe8b:469a/64 scope link
valid_lft forever preferred_lft forever
Вы можете выбрать между IPv4 и IPv6 используя следующий синтаксис:
Также существует возможность вывести детали только об определенном сетевом интерфейсе:
Назначить интерфейсу IP адрес
Для того чтобы добавить IP адрес используется синтаксис следующего вида:
Чтобы назначить адрес 192.168.1.200/255.255.255.0 на интерфейс eth0, введите:
Добавить широковещательный адрес на интерфейс
По умолчанию, команда ip не задает какой-либо широковещательный адрес до тех пор, пока это будет недвусмысленно указано. Таким образом следующий синтаксис задает широковещательный адрес ADDRESS:
Существует возможность использовать специальные символы + и — вместо широковещательного адреса указывая хостовую часть адреса. В этом примере добавим адрес 192.168.1.50 с маской 255.255.255.0 (/24) со стандартным широковещательным адресом и зададим название eth0Work на интерфейс eth0:
Вы можете задать лупбек адрес на лупбек интерфейсе lo следующим образом:
Удалить IP адрес с интерфейса
Синтаксис для удаления IPv4/IPv6 адреса следующий:
Чтобы удалить 192.168.1.200/24 с интерфейса eth0, введите:
Сбросить ряд IP адресов с интерфейса
Вы можете удалять IP адреса с интерфейса по одному, как показано выше. Однако команда flush может удалить набор адресов с интерфейса по указанному признаку. Например, вы можете удалить все адреса из частной сети 192.168.2.0/24 с помощью команды:
2: eth0 inet 192.168.2.201/24 scope global secondary eth0
2: eth0 inet 192.168.2.200/24 scope global eth0
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***
Вы можете выключить IP адрес на всех ppp (Point-to-Point) интерфейсах:
Еще один пример для всех Ethernet интерфейсов:
Как изменить состояние интерфейса на UP или DOWN
К примеру, чтобы положить интерфейс eth1, используйте:
А чтобы поднять этот же интерфейс:
Как изменить txqueuelen устройства
Вы можете установить длину очереди передачи устройства с помощью ifconfig или команды ip следующим образом:
В этом примере изменим txqueuelen со значения по умолчанию, равного 1000, на 10000 для интерфейса 10000:
Как изменить MTU устройства
Для гигабиных сетей вы можете установить максимальный размер блоков передачи (MTU) для лучшей производительности сети. Синтаксис следующий:
Например, установим MTU устройства eth0 на 9000:
2: eth0: mtu 9000 qdisc pfifo_fast state UP qlen 1000
link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1
inet6 fe80::208:9bff:fec4:3030/64 scope link
valid_lft forever preferred_lft forever
Показать соседей (arp кэш)
Пример вывода (часть информации скрыта):
74.xx.yy.zz dev eth1 lladdr 00:30:48:yy:zz:ww REACHABLE
10.10.29.66 dev eth0 lladdr 00:30:48:c6:0a:d8 REACHABLE
74.ww.yyy.xxx dev eth1 lladdr 00:1a:30:yy:zz:ww REACHABLE
10.10.29.68 dev eth0 lladdr 00:30:48:33:bc:32 REACHABLE
74.fff.uu.cc dev eth1 lladdr 00:30:48:yy:zz:ww STALE
74.rr.ww.fff dev eth1 lladdr 00:30:48:yy:zz:ww DELAY
10.10.29.65 dev eth0 lladdr 00:1a:30:38:a8:00 REACHABLE
10.10.29.74 dev eth0 lladdr 00:30:48:8e:31:ac REACHABLE
Последнее поле показывает состояние системы «определения недоступности соседа»:
- STALE — сосед существует, но, скорее всего недоступен, поэтому ядро попробует проверить это при первой ближайшей передаче.
- DELAY — пакет был отправлен соседу в состоянии STALE и ядро ждет подтверждения.
- REACHABLE — сосед существует и определенно доступен.
Добавить новую ARP запись
Например, добавить постоянную ARP запись для соседа 192.168.1.5 на устройстве eth0:
Состояние соседа | Значение |
---|---|
permanent | Состояние соседа занято навсегда и может быть удалено только администратором. |
noarp | Состояние соседа валидно. Попыток проверить состояние не будет, но может быть удалено, когда закончится время жизни. |
stale | Состояние соседа валидно, но подозрительно. Эта опция для ip neigh не меняет состояние соседа, если оно было валидно и адрес не был изменен этой командой. |
reachable | Состояние соседа валидно до окончания таймаута доступности. |
Удалить ARP запись
Удалить запись для соседа 192.168.1.5 на интерфейсе eth1:
Изменить состояние на reachable для соседа 192.168.1.100 на устройстве eth1:
Очистить ARP запись
Команда flush или f очищает таблицы соседей или arp таблицы. Синтаксис:
ip route: команды управления таблицей маршрутизации
Используйте следующие команды для управления таблицей маршрутизации ядра.
Показать таблицу маршрутизации
Посмотреть таблицу маршрутизации:
Показать роутинг для 192.168.1.0/24:
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10
Добавить новый маршрут
Добавить статический маршрут в сеть 192.168.1.0/24 через шлюз 192.168.1.254:
Чтобы маршрутизировать весь трафик через шлюз 192.168.1.254 подключенный через сетевой интерфейс eth0:
Удалить маршрут
Команда чтобы удалить маршрут по умолчанию:
В этом примере удалим маршрут созданный в предыдущем блоке:
Источник