LINUX.ORG.RU
ФорумAdmin

Как подменить основной шлюз, частично оставив первоначальный?

 , , ,


0

1

CentOS 6.4 Есть два сетевых интерфейса. Первый смотрит в Интернет. Статика. Адрес: 192.168.0.2 Маска: 255.255.255.0 Шлюз: 192.168.0.1 Второй смотрит в специальную сеть SIP-провайдера (Казахтелеком (IDPhone), если интересно). DHCP. Адрес: какой-то случайный вида 10.2.106.Х, но может быть и другого вида (например, 10.3.70.Х). Маска: 255.255.255.0 Вместе с адресом DHCP-сервер отдает шлюз. Например, 10.2.106.1. Но может быть и другой. Задача. Получить IP-адрес на второй интерфейс. Настроить маршрутизацию таким образом, чтобы пакеты в сеть 10.Х.Х.Х (а не только 10.2.106.Х) уходили через шлюз, который отдает DHCP-сервер, а остальные пакеты должны уходить в шлюз первого интерфейса. Другими словами, трафик для SIP-провайдера уходит во второй интерфейс, а остальной трафик уходит в первый интерфейс. При настройке без доработки шлюз, получаемый по DHCP на втором интерфейсе, становится шлюзом по умолчанию, и весь трафик шпарит в сетку SIP-провайдера, т.е. Интернет становится недоступным.

1. Убери шлюз по умолчанию с первого интерфейса и взамен подними два маршрута:

route add -net 0.0.0.0 mask 128.0.0.0 gw 192.168.0.1

route add -net 128.0.0.0 mask 128.0.0.0 gw 192.168.0.1

Этим ты гарантированно перекроешь шлюз по умолчанию второго интерфейса

2. При поднятии второго интерфейса поднимай маршрут в сетку 10.0.0.0/8

Вот здесь написано, как:

https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-networkscripts-sta...

anto215 ★★ ()

Два варианта, либо изучать dhclient-script и смотреть, можно ли сделать это с помощью /etc/dhclient-enter-hooks и /etc/dhclient-up-eth1-hooks, либо прописать в файле /etc/sysconfig/network-scripts/route-eth0 кучу маршрутов через 192.168.0.1, чтобы по дефолту ходил только 10.Х.Х.Х:

ip route add 1.0.0.0/8 via 192.168.0.1 dev eth0
ip route add 2.0.0.0/8 via 192.168.0.1 dev eth0
...
ip route add 9.0.0.0/8 via 192.168.0.1 dev eth0
ip route add 11.0.0.0/8 via 192.168.0.1 dev eth0
ip route add 12.0.0.0/8 via 192.168.0.1 dev eth0

(если использовать другие маски, то маршрутов будет поменьше).

Первый вариант правильный, второй более дубовый/простой, но следом у вас может возникнуть вопрос, как сделать, чтобы dhcp-клиент не правил /etc/resolv.conf

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.