>форвардинг включен? и почему не iptables? Форвардинг включен, На iptables и сделал. Просто хотел узнать о iproute2. Почему в документации одно, а в жизни другое. Оф. сайт ситуацию не прояснил. Мне было бы удобно из perl вызывать одну программу вместо двух.
Вообще задача вот какая
Есть внутрення сеть:
eth2 192.168.33.0/24
и два провайдера интернета
eth0 10.20.30.1/24 gw 10.20.30.2 (Адрес назначает провайдер через DHCP)
eth1 172.16.15.1/24 gw 172.16.15.2 (Адрес назначает провайдер через DHCP)
Надо по комманде из веб интерфейса перключаться между провайдерами.
Сделал две таблицы роутинга
Provider1
192.168.33.0/24 dev eth2 scope link src 192.168.33.1
default via 10.20.30.2
Provider2
192.168.33.0/24 dev eth2 scope link src 192.168.33.1
default via 172.16.15.2
Из интерфейса ip rule from 192.168.33.0/24 lookup Provider1 prio 100 или Provider2 удаляю и записываю другую таблицу, работает.
Вот хочу узнать почему по номеру prio в iproute2 нельзя правило удалить?
Так же про NAT хочу узнать чего он в iproute не работает. Было бы удобнее только ip из скрипта вызывать.
Еще вопрос. Если переключение делаю шел через Provider1 Я перключаюсь на провайдер Provider2 и Интерфейс с Provider2 пинг идет но с ip адресом Provider1
Если пинг остановить на секунду, и снова запустить то начинает нармально идти.
Как-то можно Ядро передернуть принудительно чтоб в онлайне пинг в с нужным адресом пошел?
Кстати с пробовал не с SNAT а с MASQUERADE, трюк с перкрлючением таблиц не проходит :(
До конца не разобрался но пакеты вообще ни к какому провайдеру похоже не идут.
А было бы не дурно MASQEURADE сделать так как провайдеры оба ip динамический выдают.
Пока есть идея dhcp клиент покрутить чтоб скриптом мне iptables правил.
Кстати я правильно понимаю ip (если бы было реальзованно полностью) и iptables это просто внешние программы и в части NAT одни и теже манипуляции над ядром производят, которое ip протоколом рулит?