LinuxForum.Fans
Тема

Route ppp0 и ppp1?

Автор: SnoopCat 3 сообщений 2264 просмотров
#260344

Доброго времени суток!
Бьюсь с проблемой: уменя интернет через pptp ppp0 и vpn тунель ppp1. Не могу разобраться с маршрутами, то есть, если по дефолту ppp0 тогда нет доступа к vpn сети, но есть интернет, а если ppp1 то на оборот. Как сделать так, чтоб одновременно был и интернет и доступ к vpn сети?

~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default * 0.0.0.0 U 0 0 0 ppp0
xxx.xxx.ru 192.168.100.3 255.255.255.255 UGH 0 0 0 em1
172.16.0.1 * 255.255.255.255 UH 0 0 0 ppp1
thrash.sхх.pos 192.168.100.3 255.255.255.255 UGH 0 0 0 em1
172.17.0.1 * 255.255.255.255 UH 0 0 0 ppp0
192.168.100.0 * 255.255.255.0 U 0 0 0 em1
192.168.100.9 * 255.255.255.255 UH 0 0 0 em1

#260350

Прописать маршруты:
-- к хостам/сетям в сети vpn через ppp0, возможно таких будет несколько, это не страшно;
-- дефолтный через ppp1.

#313410

С данной проблемой справился таким образом:

Создаём две дополнительные таблицы в файле /etc/iproute2/rt_tables T1 и T2:

[console]
:~$ cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep

300 T1
350 T2

[/console]

Далее заполняем таблицы:
[console]
:~$ ip route add xxx.xxx.xxx.x/30 dev ppp0 src xxx.xxx.xxx.z table T1
:~$ ip route add default via xxx.xxx.xxx.y table T1
:~$ ip route add yyy.yyy.yyy.x/30 dev ppp1 src yyy.yyy.yyy.z table T2
:~$ ip route add default via yyy.yyy.yyy.y table T2
[/console]
где:
xxx.xxx.xxx.x/30 #адрес сети в которой находится шлюз первого провайдера
xxx.xxx.xxx.z #наш внешний адрес в сети первого провайдера
xxx.xxx.xxx.y #шлюз первого провайдера
ppp0 #имя интерфейса первого провайдера

yyy.yyy.yyy.x/30 #адрес сети в которой находится шлюз второго провайдера
yyy.yyy.yyy.z #наш внешний адрес в сети второго провайдера
yyy.yyy.yyy.y #шлюз второго провайдера
ppp1 #имя интерфейса второго провайдера

Далее маршрутизируем пакеты для сетей провайдеров через интерфейсы ppp0 и ppp1
[console]
:~$ ip route add xxx.xxx.xxx.x/30 dev ppp0 src xxx.xxx.xxx.z
:~$ ip route add yyy.yyy.yyy.x/30 dev ppp1 src yyy.yyy.yyy.z
[/console]

Указываем маршрут по умолчанию ppp0
[console]
:~$ ip route add default via ppp0
[/console]
И вcё...
Очень сильно помогла вот эта статейка - Routing for multiple uplinks/providers

Но есть одно "но"... Всё это справедливо для статических ip - адресов, как быть если один из провайдеров раздаёт динамические ip?

Войдите или зарегистрируйтесь, чтобы ответить.