Итак, у меня есть этот вызов, и я искал в Интернете все выше и ниже. Многому научился - но у меня все еще есть некоторые проблемы, связанные с настройкой двух шлюзов, которые я действительно хочу выполнить.
У меня есть два шлюза, по разным причинам, и я пытаюсь заставить эти два NIC вести себя. Моя проблема связана со вторичным шлюзом (Gateway2), поскольку все работает со шлюзом 1 и eth0, маршрутом по умолчанию и всем.
Итак, во-первых, моя установка выглядит примерно так:
NAT (вход) = Cisco ASA NAT (выход) = Zyxel независимо от
WAN-IP
NAT (вход) - - - - - - - - - - Ubuntu Box 12.04 - - - - - - - - - - - - NAT (выход)
Gateway1
10.0.0.1 < -> 10.0.0.50 (eth0) || (eth1) 192.168.0.50 -> 192.168.0.1
. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gateway2
Итак, я пошел:
1. Создайте новую таблицу: «1 zyxelwan»
в «/ etc / iproute2 / rt_tables»
2. Создать политику маршрутизации для таблицы (zyxelwan)
ip route add 192.168.0.0/24 dev eth1 src 192.168.0.50 table zyxelwan
ip route add default via 192.168.0.1 dev eth1 table zyxelwan
3. Задайте правила IP, которые используют только что созданную таблицу маршрутизации:
ip rule add from 192.168.0.50 table zyxelwan
ip rule add to 192.168.0.50 table zyxelwan
Я пропустил другие конфигурации (на данный момент), чтобы убедиться, что я запустил самую легкую конфигурацию. И как будто мои правила ip полностью игнорируются, посмотрите здесь некоторые из выводов, которые я получаю после вышеупомянутых шагов.
route -n
Kernel IP routing table
Destination Gateway Genmask Flag Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Невозможно увидеть настроенную таблицу, но если я попытаюсь снова применить команды маршрутизации к таблице, я получу «файл уже существует». Так что конфиг должен быть где-то там.
Но когда я пытаюсь отследить путь, то есть 8.8.8.8, я получаю такой результат:
tracepath 8.8.8.8
1: 10.0.0.50 0.161ms pmtu 1500
Поэтому я попытался удалить шлюз, с которого он пытался отправить трафик (10.0.0.1) - с таким результатом (это должно быть независимо от моих правил и таблицы ip).:
tracepath 8.8.8.8
1: send failed
Resume: pmtu 65535
И если я напишу маршрут, пропустив таблицу, и заменим предыдущий маршрут по умолчанию на:
route add default via 192.168.0.1 dev eth1
Это будет работать нормально, но мне действительно нравится иметь возможность подключаться по SSH / VPN к Ubuntubox через мой шлюз Cisco и затем получать доступ к сети на моем шлюзе Zyxel - я что-то упускаю из виду, или вы умный человек в состоянии указать мне правильное направление?
Я думал в соответствии с моими правилами ip, это может быть так, как будто он только «слушает» трафик и направит его на тот же интерфейс - в соответствии с правила таблицы / ip - и решением могло быть просто «переключение кабелей»?
В любом случае, заранее спасибо за любые предложения :)
Я решил эту проблему, установив привязку к локальному IP-адресу eth0 для OpenVPN - после этого я создал еще одну таблицу маршрутизации для eth0. Затем я добавил шлюз по умолчанию для eth1, обычным способом - без таблицы:)
Спасибо, что нашли время взглянуть на мой оригинальный пост:)
Старая команда route
не может должным образом представить какие-либо необычные вещи, которые вы делаете с новой командой ip route
. Чтобы показать конфигурацию маршрутизации, используйте ip route list table [xx|all]
вместо route
.