Настройка статических маршрутов

Автор R1a1, 22 января 2014, 15:30:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

R1a1

Подскажите пожалуйста нубу, как правильно и корректно для Debian 7.3 настроить статические маршруты для различных интерфейсов (ethernet, pppoe, pptp)???

ogost

если речь идет о gateway, то можно его в /etc/network/interfaces прописать. например:

iface eth0 static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1

если пользуетесь network-manager, то лучше через него настраивать.

R1a1

Цитата: ogost от 22 января 2014, 18:04:33
если речь идет о gateway, то можно его в /etc/network/interfaces прописать. например:

iface eth0 static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1

если пользуетесь network-manager, то лучше через него настраивать.

Не, надо не маршрут по умолчанию, а статические марштуры до конкретных сетей/узлов.
network-manager не пользуюсь. все вручную через конфиги.

встречал подобные варианты:
iface eth0 inet static
......
post-up route add ....
pre-down route del ....



iface eth0 inet static
......
up route add ....
down route del ....


Не знаю правильны ли они?? И если правильны, то какой из них более корректный???




gardarea51

#3
Лучше настраивайте с помощью скриптов в /etc/network/if-*, а если соедиения ppp, то скриптами в каталогах /etc/ppp/ip-* В этих скриптах можно использовать переменные. Завтра могу вам подсказать подробнее, сейчас пора спать.

ps: маршрут необязательно удалять при опускании интерфейса,  в этом случае они все равно будут удалены из таблицы роутинга.


Сообщение объединено: 23 Январь 2014, 08:27:51

Вот как сделано у меня поднятие маршрутов для интерфейса crp (важно не забыть сделать файл исполняемым):
root@smb:~# cat /etc/network/if-up.d/crp_routes_add
#!/bin/bash

if [ "$IFACE" = "crp" ]; then
#    ip route add 172.16.0.0/16 via $IF_ADDRESS dev $IFACE
# ip route add 10.0.0.0/8 via $IF_ADDRESS dev $IFACE
# ip route add A.B.C.0/20 via $IF_ADDRESS dev $IFACE

for i in "172.16.0.0/16" "10.0.0.0/8" "A.B.C.D" "A.B.C.D" \
"A.B.C.0/20" "A.B.C.0/19" "A.B.C.0/19"
do ip route add $i via $IF_ADDRESS dev $IFACE metric 30
done
exit 0
fi

Добавление роутов описано в цикле for, чтобы не дублировать много однтотипных строк, но в общем это без разницы, а читаемость снижается.

315th

Замечу, что при получении адреса на физический интерфейс с помощью DHCP, маршуты, если необходимио, лучше задавать в /etc/dhcp/dhclient-enter-hooks.d/
пример:

root@server:~# cat /etc/dhcp/dhclient-enter-hooks.d/route_comlan
case $interface in
        'vlan3')
        case $reason in
              BOUND|RENEW|REBIND|REBOOT)
                    ip r a 10.0.0.0/8 via $router dev $interface metric 100
                    ip r a 172.16.0.0/12 via $router dev $interface metric 100
                    ip r a 192.168.0.0/16 via $router dev $interface metric 100
              ;;
        esac
        ;;
esac
Debian GNU/Linux 7.11 (wheezy) - CLI
ICH7; D525MV; r8169; Linux 4.14.32-atomd525mv-imq-ja1 (i686); Intel Atom D525 1.8 GHz

gardarea51

Да, про dhcp и маршруты...
Получение адреса по dhcp может также разрушить идиллию в /etc/resolv.conf.
И вроде в конфиге dhclient можно вообще убрать некоторые опции, чтобы клиент не получал роуты, DNS и прочие вещи.. но так как конфиг глобальный, то лучше этого не делать, а сделать как советуется выше.