Сервер в кармане, или просто о сложном!

главная - Статьи - Linux, FreeBSD

Linux и 2 внешних интерфейса

Теги: Linux Настройка сервера

Стоял себе сервер, подключенный к одному провайдеру (ip 1.1.1.1). Все в порядке, все работает. И вот привалило счастье - появился второй провайдер (для большей доступности). Подключили еще одну сетевую карту, назначили ip 2.2.2.2. Проверяем доступность сайта или почты через 2.2.2.2. А в ответ - тишина. На запросы не отвечает, сайт по нему не открывается. Хотя и брандмауэр уже настроили, и вроде бы все должно работать. Все дело в маршруте по-умолчанию. Если default gateway у сервера указан как 1.1.1.1, то даже если вы снаружи пытаетесь пингануть 2.2.2.2, то сервер все равно упорно отправит ответ через 1.1.1.1, соответственно, пакет будет потерян, т.к. выйдет через другой интерфейс. Что делать?

Это исправляется достаточно просто. Основная идея: создать правило, которое укажет, через какой GW отправить пакет (читай, куда пихнуть ответ), если запрос пришел на конкретный IP.

Например, шлюз по умолчанию у нас 1.1.1.1. Соответственно, если пытаться снаружи пинговать 2.2.2.2, мы получим тишину в эфире.

Исправляем!

Готовим таблицы маршрутизации:

ip route add default via 1.1.1.1 table 101
ip route add default via 2.2.2.1 table 201

Читайте: "таблица маршрутизации 101 отправит пакет через шлюз 1.1.1.1, а таблица 201 - через шлюз 2.2.2.1"

Создадим правило, что пришедшее с IP 1.1.1.2 попадает в таблицу 101, а с IP 2.2.2.2 - в таблицу 201:

ip rule add from 1.1.1.2 table 101
ip rule add from 2.2.2.2 table 201

Читайте: "если запрос пришел с 1.1.1.2, то связанный с ним ответ отправить в таблицу 101, а если с 2.2.2.2, то в таблицу 201".

# ip rule
0: from all lookup local
32764: from 1.1.1.2 lookup 101
32765: from 2.2.2.2 lookup 201
32766: from all lookup main
32767: from all lookup default

Например, пинганули мы снаружи наш хост по IP 2.2.2.2. Пакет пришел на 2.2.2.2. Ага! Значит, хоть и шлюз по-умолчанию у нас 1.1.1.1, ответ на этот пинг ядро отправит через шлюз 2.2.2.1. Вот и все! А еще можете посмотреть здесь.

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?