Как настроить маршруты, если у меня есть два WAN на одном роутере с двумя NIC на сервере Linux?

Вопрос или проблема

У меня есть один маршрутизатор с двумя WAN. М маршрутизатор имеет один LAN IP-адрес: 192.168.0.1. У меня есть сервер на Linux с двумя интерфейсами в одной и той же подсети: eno1:192.168.0.2 eno2: 192.168.0.3. На маршрутизаторе у меня есть DMZ от линка 1 к 192.168.0.2 и DMZ от линка 2 к 192.168.0.3.

Я получаю ответ только от DMZ линка 2, если настраиваю 192.168.0.3 на eno1:1.

Как мне настроить эти маршруты в Debian?

  • LINK1 → ROUTER DMZ1 (192.168.0.1) → 192.168.0.2 (eno1)
  • LINK2 → ROUTER DMZ2 (192.168.0.1) → 192.168.0.3 (eno2)

Ответ или решение

Конфигурация маршрутизации на сервере с двумя WAN-соединениями и двумя сетевыми интерфейсами в Linux может быть сложной задачей. Однако, следуя нижеописанным шагам, вы сможете правильно настроить маршруты для вашего сценария.

Шаг 1: Настройка интерфейсов

Убедитесь, что оба интерфейса eno1 и eno2 настроены корректно и имеют назначенные IP-адреса. Для временной настройки интерфейсов, выполните следующие команды:

# Настройка интерфейса eno1
sudo ip addr add 192.168.0.2/24 dev eno1
sudo ip link set eno1 up

# Настройка интерфейса eno2
sudo ip addr add 192.168.0.3/24 dev eno2
sudo ip link set eno2 up

Для постоянного применения изменений добавьте соответствующие настройки в файл /etc/network/interfaces:

auto eno1
iface eno1 inet static
    address 192.168.0.2
    netmask 255.255.255.0

auto eno2
iface eno2 inet static
    address 192.168.0.3
    netmask 255.255.255.0

Шаг 2: Настройка маршрутов

Чтобы настроить маршруты для правильной работы в вашем случае, вам нужно добавить маршрут для каждого интерфейса. Сначала откройте терминал и выполните следующие команды:

# Добавление маршрута для eno1 через WAN1
sudo ip route add 192.168.0.2/32 via 192.168.0.1 dev eno1

# Добавление маршрута для eno2 через WAN2
sudo ip route add 192.168.0.3/32 via 192.168.0.1 dev eno2

Шаг 3: Настройка Policy-Based Routing (PBR)

Для того чтобы трафик исходил из нужного WAN в зависимости от назначения, необходимо использовать Policy-Based Routing. Для этого создадим две таблицы маршрутов и настроим правила маршрутизации.

Шаг 3.1: Определите новые таблицы маршрутов

Откройте файл /etc/iproute2/rt_tables и добавьте следующие строки в конец:

1 link1
2 link2

Шаг 3.2: Настройка маршрутов в новых таблицах

Добавьте маршруты для каждой из таблиц:

# Для link1
sudo ip route add default via 192.168.0.1 dev eno1 table link1

# Для link2
sudo ip route add default via 192.168.0.1 dev eno2 table link2

Шаг 3.3: Настройка правил

Теперь создайте правила для маршрутизации:

# Для eno1
sudo ip rule add from 192.168.0.2/32 table link1

# Для eno2
sudo ip rule add from 192.168.0.3/32 table link2

Шаг 4: Проверка конфигурации

Чтобы убедиться, что маршруты и правила работают корректно, выполните следующие команды:

ip route show table link1
ip route show table link2
ip rule show

Шаг 5: Автоматизация при загрузке

Для того чтобы все настройки применялись автоматически при перезагрузке системы, добавьте команды в файл /etc/rc.local, чтобы они выполнялись при загрузке (если файл не существует, создайте его):

#!/bin/sh -e
ip route add default via 192.168.0.1 dev eno1 table link1
ip route add default via 192.168.0.1 dev eno2 table link2
ip rule add from 192.168.0.2/32 table link1
ip rule add from 192.168.0.3/32 table link2
exit 0

Не забудьте сделать файл исполняемым:

sudo chmod +x /etc/rc.local

Заключение

Теперь у вас настроены два WAN-соединения с двумя интерфейсами на вашем Linux-сервере. Каждый интерфейс будет использовать свой WAN-соединение для исходящего трафика, в зависимости от IP-адреса, с которого он исходит. По необходимости, вы можете проконтролировать соединение, используя такие утилиты, как ping и traceroute, для диагностики и подтверждения правильной работы маршрутизации.

Оцените материал
Добавить комментарий

Капча загружается...