- Вопрос или проблема
- Ответ или решение
- Шаг 1: Настройка интерфейсов
- Шаг 2: Настройка маршрутов
- Шаг 3: Настройка Policy-Based Routing (PBR)
- Шаг 3.1: Определите новые таблицы маршрутов
- Шаг 3.2: Настройка маршрутов в новых таблицах
- Шаг 3.3: Настройка правил
- Шаг 4: Проверка конфигурации
- Шаг 5: Автоматизация при загрузке
- Заключение
Вопрос или проблема
У меня есть один маршрутизатор с двумя 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
, для диагностики и подтверждения правильной работы маршрутизации.