Провожу настройку подключения 2 провайдера. Работает сервер Suse Enterprise Server 11.
Три сетевые карточки: две (eth0 и eth1) смотрят на провайдеров, одна (eth2) в локальную сеть.
На интерфейсе eth0 получаю адрес и интернет через шлюз, интерфейс eth1 настроен на статический адрес, выданный вторым провайдером, интерфейс eth2 смотрит в локальную сеть.
Адреса интерфейсов:
eth1 - 99.99.99.2
eth2 - 88.88.88.2
Скрипт:
#!/bin/bash
IP_LOCAL="88.88.88.2" # IP-адрес нашего маршрутизатора в локальной сети.
PROV2_IP="99.99.99.61" # IP-адрес нашего маршрутизатора в сети второго 2 провайдера.
IF_PROV1="eth0" # имя интерфейса на первого 1 провайдера.
IF_PROV2="eth1" # имя интерфейса на второго 2 провайдера.
IF_LOCAL="eth2" # имя интерфейса на локальную сеть
NET_LOCAL="88.88.88.0/24" # локальная сеть.
NET_PROV2="99.99.99.60/30" # адрес сети, в которой находится гейт второго 2 провайдера.
PROV2_GW="99.99.99.61" # гейт второго провайдера.
echo "1">/proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 88.88.88.0/24 -j SNAT --to 99.99.99.62
ip route flush table T_PROV2 ip route add 99.99.99.60/30 dev eth1 table T_PROV2 # заполняем маршруты таблицы второго 2 прова
ip route add 88.88.88.0/24 dev eth2 table T_PROV2
ip route add 10.0.0.8 dev eth0 table T_PROV2
ip route add default via 99.99.99.61 table T_PROV2
ip route add 127.0.0.0/8 dev lo table T_PROV2
ip route add 99.99.99.60/30 dev eth1 src 99.99.99.62 #заполнение таблицы main
ip route add dev eth2 src 88.88.88.2
ip route add default via 99.99.99.61
ip rule delete table T_PROV2 # удаление правил
ip rule delete table T_PROV2
ip rule add from all lookup T_PROV2
ip rule add from 99.99.99.62 lookup T_PROV2
ip route flush cache # очистить кеш
exit 0
После инициализации скрипта получаю следующее:
С интерфейса eth1 (который смотрит на 2 прова) пингуется шлюз 2го прова и интернет, но не проходят пинги до интерфейса который смотрит в локальную сеть (eth2).
С интерфейса eth2 (локалка) пингуется шлюз 2го прова,но не проходят пинги до интернета.
Пинг с интерфейса eth2 (локалка) до интерфейса eth1 выводит следующее:
ping -I eth2 99.99.99.62
PING 99.99.99.62 (99.99.99.99) from 88.88.88.2 eth2: 56(84) bytes of data.
From 99.99.99.62: icmp_seq=1 Destination Host Unreachable
From 99.99.99.62 icmp_seq=1 Destination Host Unreachable
Список правил:
# ip rule list
0: from all lookup local
32764: from 99.99.99.62 lookup T_PROV2
32765: from all lookup T_PROV2
32766: from all lookup main
32767: from all lookup default
Таблица main выглядит след образом:
# ip route show table main
99.99.99.60/30 dev eth1 proto kernel scope link src 99.99.99.62
88.88.88.0/24 dev eth2 proto kernel scope link src 88.88.88.2
10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.10.29
127.0.0.0/8 dev lo scope link
default via 99.99.99.61 dev eth1
Таблица T_PROV1 выглядит след образом:
#ip route show table T_PROV2
99.99.99.60/30 dev eth1 scope link
88.88.88.0/24 dev eth2 scope link
127.0.0.0/8 dev lo scope link
default via 99.99.99.61 dev eth1
Почему-то не видят друг друга два интерфейса eth2 и eth1?
Отсутствует соединение с интернетом из 88.88.88.0 (eth2), когда с eth1 все проходит.
Помогите разобраться почему не работает интернет на интерфейсе eth2?