Как настроить несколько сетевых интерфейсов в CentOS 7
Для настройки доступности сервера через разные сетевые интерфейсы и публичные IP адреса не достаточно просто прописать параметры для каждой сетевой карты. Т.к. шлюз по умолчанию может быть только один, то и все сетевые пакеты будут уходить с сервера через него, даже если изначально были получены на другой адрес. Это минус используемой по умолчанию политики маршрутизации на основе адреса получателя. В данном руководстве мы рассмотрим процесс настройки маршрутизации на основе адреса источника (source based routing).
Настройка сетевых интерфейсов
Если вы используете облачный сервер Serverspace, то настройка параметров сетевых интерфейсов происходит автоматически при их добавлении или создании сервера. В противном же случае необходимо привести параметры к приведенному ниже виду. Приведенный пример можно скопировать, подставив свои значения для имени интерфейса (eth0), шлюза (GATEWAY), MAC-адреса (HWADDR), IP адреса (IPADDR) и в некоторых случаях маски подсети (NETMASK):
DEFROUTE=yes
DEVICE=eth0
GATEWAY=55.66.77.1
HWADDR=aa:bb:cc:dd:ee:ff
IPADDR=55.66.77.88
MTU=1500
NETMASK=255.255.255.0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
Шлюз прописывается только для одного сетевого интерфейса, т.к. он должен быть только один в системе. Настройка второго интерфейса:
DEVICE=eth1
HWADDR=bb:cc:dd:ee:ff:gg
IPADDR=66.77.88.99
MTU=1500
NETMASK=255.255.255.0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
Аналогичным образом производится настройка того количества интерфейсов, которое подключено к системе.
Настройка source based routing
На всякий случай стоит проверить установлен ли пакет iproute и установить его, если нет.
Теперь откройте следующий файл:
Добавьте в его конец следующие строки:
101 table101
Запись должна быть в формате число пробел название таблицы. Оба значения могут быть произвольными. Единственное условие – их уникальность относительно значений других записей в файле. Количество строк должно соответствовать количеству сетевых интерфейсов, для которых настраиваем доступность.
Теперь создадим файлы с параметрами таблиц маршрутизации. Нужно создать отдельный такой файл для каждого интерфейса, заменив в названии файла eth0 на актуальное имя сетевого соединения.
Ниже содержимое файла, где вместо 55.66.77.88 надо поставить IP адрес сетевого интерфейса, а вместо table100 – добавленные выше таблицы, по 1 для каждого интерфейса:
И соответствующие файлы с правилами маршрутизации. Создаются по тем же принципам, что и файлы параметров таблиц маршрутизации.
Нужно подставить актуальные значения адреса подсети, шлюза, имени интерфейса и значение таблицы, соответствующее значению из предыдущего файла.
default dev eth0 via 55.66.77.1 table table100
Такие пары файлов создаются для каждого сетевого интерфейса в системе с соответствующими ему значениями.
Перезагрузим сетевую службу, чтобы изменения применились: