вторник, 27 сентября 2011 г.

Статические маршруты в Linux

У клиента имеется Trixbox. Сервер имеет 2 интерфейса: одним включен в офисную локалку клиента (т.е. в роутер, имеющий доступ в инет), другим подключен напрямую к VoIP-провайдеру (SIP-транк).
Жалоба: телефония не работает :)

Приезжаю к клиенту, даю traceroute до SIP-прокси. Все сразу становится ясно - пакеты идут не через телефонный интерфейс, а через роутер и совершенно по другому маршруту (для ясности - провайдер интернет и VoIP один и тот же). То бишь, нужно указать серверу, что все что на телефонию - через eth1, остальное через eth0 (default gw - наш роутер).
Итак, исходные данные.
Локалка клиента: 192.168.1.0/24 (маршрутизатор 192.168.1.1)
Адрес на интерфейсе SIP-транка к провайдеру: 10.90.16.2 (маршрутизатор 10.90.16.1)
Сеть в которой у провайдера находится SIP-прокси: 192.168.2.0/24

В первую очередь в
/etc/sysconfig/network
пришлось добавить параметр GATEWAYDEV=eth0
Этот параметр указывает на какой интерфейс по умолчанию слать все пакеты. Сохраняем.
Теперь для интерфейса eth1 создаем статический маршрут, который будет указывать нам куда слать всю телефонию.
Для этого создаем файл
/etc/sysconfig/network-scripts/route-eth1
и вписываем туда содержимое такого вида
GATEWAY0=10.90.16.1
NETMASK0=255.255.255.0
ADDRESS0=192.168.2.0
Сохраняем.
Эти два действия эквивалентны таким командам:
route add default gw 192.168.1.1 eth0
route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.90.16.1 eth1
Разница в том, что статические маршруты заданные через route пропадут после перезагрузки сервера или рестарта сети. Маршруты заданные первым способом никуда не пропадут ни при каких обстоятельствах.
После всех манипуляций делаем
/etc/init.d/network restart
и после того как оба интерфейса поднимутся, проверяем то что получилось
netstat -nr

Комментариев нет:

Отправить комментарий