@deleted-fromStark

Как включить два внешних адреса на сервере?

Здравствуйте.

Есть сервер с Ubuntu Server 14.04. На сервере 4 интерфейса. Один интерфейс для внутренней сети, два для внешних адресов.

Нужно, чтобы все три адреса пинговались. Проблема в том, что когда прописываю маршрут для одного внешника, то падает пинг до другого :(.

С локальным адресом проблем нет - он пингуется отлично.
  • Вопрос задан
  • 753 просмотра
Решения вопроса 1
Softer
@Softer
Делал примерно так: (в начале прописываются таблицы T1 и T2 в /etc/iproute2/rt_tables)

Переменные -

LOCAL=локальная сеть
LOCAL_GW=IP в локальной сети
LOCAL_ETH=Локальный интерфейс

I1_ETH/I1_GW/I1_IP - интерфейс, шлюз и IP на интерфейсе
Аналогично для 2-го.

Выдирал из рабочего скрипта (4 таблица сейчас ;) ) - может чего и упустил. :)

ip route flush table T1   #обнуляем первую таблицу маршрутов
ip route flush table T2   #обнуляем вторую таблицу маршрутов
ip rule delete table T1   #удаляем наши таблицы, если они присутствуют в текущей конфигурации (вдруг мы просто перезапускаем скрипт?)
ip rule delete table T2   #аналогично для второй.

ip rule add from $I1_IP table T1
ip route add $LOCAL            src $LOCAL_GW       dev $LOCAL_ETH      table T1
ip route add default           via $I1_GW                              table T1    metric 1000
ip route add default           via $I2_GW                              table T1    metric 1200
ip rule  add fwmark 1          table T1   #все пакеты, которые имеют метку 1 маршрутизировать по таблице T1

ip rule add from $I2_IP table T2
ip route add $LOCAL             src $LOCAL_GW      dev $LOCAL_ETH      table T2
ip route add default           via $I2_GW                              table T2    metric 1000
ip route add default           via $I1_GW                              table T2    metric 1200
ip rule  add fwmark 2          table T2   #все пакеты, которые имеют метку 2 маршрутизировать по таблицу T2

iptables -t mangle -N I2_RULE
iptables -t mangle -A I2_RULE -i $I1_ETH -j CONNMARK --set-mark 1
iptables -t mangle -A I2_RULE -i $I2_ETH -j CONNMARK --set-mark 2
iptables -t mangle -A FORWARD -m state --state NEW -j I2_RULE
iptables -t mangle -A PREROUTING -m state --state ESTABLISHED -j CONNMARK --restore-mark
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
habrahabr.ru/post/54748 здесь (и в комментариях к статье) есть большая часть нужной информации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы