URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7704
[ Назад ]

Исходное сообщение
"Как узнать default gateway?"

Отправлено Vcoder , 17-Ноя-08 22:05 
У меня дома стоит роутер на FreeBSD. Он обеспечивает выход в инет из домашней сетки.
Выход в инет осуществляется через VPN. Я использую pptp-client.
Интерфейс, смотрящий, наружу, получает IP-адрес по DHCP. Также по DHCP получается IP шлюза по умолчанию. Это серые адреса из диапазона 10.0.0.0/8.
Дело в том, что при поднятии pptp сессии приходится default маршрут сносить и прописывать конкретный маршрут до VPN сервера - через тот самый default gateway, что был получен по DHCP. После поднятия pptp дефолтный маршрут прописывается через поднятый tun0 - это и есть выход в инет.

Проблема же в том, что время от времени наружный интерфейс получает IP из разных сетей. В результате приходится переделывать скрипты запуска pptp, в которых прописывается маршрут до VPN сервера.

Посему ВОПРОС.
Есть ли способ узнать, какой default gateway был получен при последнем обновлении сетевого адреса по DHCP?
"netstat -rn | grep 0.0.0.0" не подходит по понятным причинам - после попытки установить pptp соединение дефолтный маршрут уже удалён. Можно, конечно, перед каждым установлением соединения вызывать "dhclient <ifname>", чтобы привести таблицу маршрутизации в исходный вид. Но может есть способ правильнее?


Содержание

Сообщения в этом обсуждении
"Как узнать default gateway?"
Отправлено Alex Shepovalov , 18-Ноя-08 00:19 
через скрипты которые позволяет искользовать большиство ppptp клиентов ( ip-up, ip-down )
сохранять этот default gateway.

"Как узнать default gateway?"
Отправлено Vcoder , 18-Ноя-08 08:11 
>через скрипты которые позволяет искользовать большиство ppptp клиентов ( ip-up, ip-down )
>
>сохранять этот default gateway.

Конечно же я эти скрипты знаю. И я их использую. НО!
Даже если извратиться и сделать так, чтобы при закрытии соединения дефолтный маршрут восстанавливался, остаётся одна проблема: адрес, а вместе с ним и шлюз, могут смениться уже во время работы системы, при поднятом pptp. И тогда уже сохранённый адрес шлюза оказывается неверным. Маршрут до VPN сервера теряется, соединение рвётся на ходу и больше уже не поднимается.


"Как узнать default gateway?"
Отправлено netch , 19-Ноя-08 16:56 
>Конечно же я эти скрипты знаю. И я их использую. НО!
>Даже если извратиться и сделать так, чтобы при закрытии соединения дефолтный маршрут
>восстанавливался, остаётся одна проблема: адрес, а вместе с ним и шлюз,
>могут смениться уже во время работы системы, при поднятом pptp. И
>тогда уже сохранённый адрес шлюза оказывается неверным. Маршрут до VPN сервера
>теряется, соединение рвётся на ходу и больше уже не поднимается.

Это имеется в виду адрес внешней стороны или внутренней? Если внутренней - его изменение при работе PPTP, мягко говоря, диверсия. Если внешней - туннель по-любому порвётся.
В общем, непонятно.


"Как узнать default gateway?"
Отправлено Vcoder , 20-Ноя-08 12:59 
>Это имеется в виду адрес внешней стороны или внутренней? Если внутренней -
>его изменение при работе PPTP, мягко говоря, диверсия. Если внешней -
>туннель по-любому порвётся.
>В общем, непонятно.

С внешней.

Попробую объяснить короче.
На физическом интерфейсе, через который идёт общение с pptp сервером, имеем сеть с непредсказуемой структурой (маска сети, IP адрес интерфейса и адрес шлюза - всё это получается по DHCP).

Как в скрипте узнать полученный по DHCP адрес шлюза, чтобы прописать через него маршрут до pptp сервера?
Что делать, чтобы pptp туннель не порвался, если при очередном обновлении DHCP параметров будет получен IP из другой подсети с другим адресом шлюза?


"Как узнать default gateway?"
Отправлено Square , 21-Ноя-08 16:53 
>[оверквотинг удален]
>>его изменение при работе PPTP, мягко говоря, диверсия. Если внешней -
>>туннель по-любому порвётся.
>>В общем, непонятно.
>
>С внешней.
>
>Попробую объяснить короче.
>На физическом интерфейсе, через который идёт общение с pptp сервером, имеем сеть
>с непредсказуемой структурой (маска сети, IP адрес интерфейса и адрес шлюза
>- всё это получается по DHCP).

как только эти пареметры изменятся во время сеанса  - связь порвется и проихзойдет процедура переинициализации... и сработают те же самые скрипты..

а вообще - смените провайдера... "всё это получается по DHCP" - возможно только в локальной сети конторы... в сетях с коммерческими клиентами - фирмами - это бред.


"Как узнать default gateway?"
Отправлено Vcoder , 21-Ноя-08 17:12 
>а вообще - смените провайдера...

Хорошо вам, москвичам...

>"всё это получается по DHCP" - возможно
>только в локальной сети конторы... в сетях с коммерческими клиентами -
>фирмами - это бред.

При чём тут коммерческие клиенты? Я в самом первом посте честно признался, что речь о домашнем инете.


"Как узнать default gateway?"
Отправлено Square , 21-Ноя-08 17:24 
>>а вообще - смените провайдера...
>
>Хорошо вам, москвичам...

это да :)