Автор: mleo
Дата сообщения: 07.08.2013 11:47
goletsa
почитал вот это:
[more=Маршрутизация (Роутинг)]
Как только вы запустили подключение по PPTP туннелю, проверьте доступность узлов с другой стороны туннеля. Особенность подключения к провайдерам заключается в том, что PPTP-сервер (т.н. VPN-сервер "vpn.internet.beeline.ru") находится не в одной подсети с вами, и этот сервер вам доступен через стандартный шлюз (default gateway, шлюз по-умолчанию). Когда интернет отключён, VPN-подключение по PPTP-туннелю остановлено, маршрутом по-умолчанию (default route) в таблице маршрутизации является маршрут на default gateway. Посмотреть маршрут по-умолчанию default route, указывающий на default gateway, можно при помощи команд:
# route -n
и
# netstat -nr
Для доступности узлов с другой стороны туннеля, которые находятся за PPTP-сервером, иначе говоря, для установки связи с Интернетом, необходимо, чтобы маршрут по-умолчанию default route указывал на шлюз, отвечающий за доступность узлов за PPTP-сервером, то есть, на образующийся при VPN-подключении, интерфейс ppp0.Следующая команда удалит маршрут по-умолчанию default route, который указывает на default gateway:
# route del default
затем нам понадобится создать новый маршрут по-умолчанию default route, но уже указывающий на шлюз, предоставляющий вам доступность узлов с другой стороны туннеля:
# route add default gw шлюз
или вы также можете создать новый маршрут по-умолчанию default route, указывающий на интерфейс ppp0:
# route add default dev ppp0
если установилось VPN-соединение, что можно проверить командой:
# ifconfig -a | grep inet
Для того, чтобы после каждого запуска и остановки VPN-подключения вам не приходилось вручную менять маршрут по-умолчанию default route, есть два решения:
параметр defaultroute/replacedefaultroute
скрипты в каталогах /etc/ppp/ip-up.d/ и /etc/ppp/ip-down.d/
Для этого в настройке pppd нужно прописывать параметр defaultroute. Проблема в том, что в некоторых релизах pppd отказывается замещать default route на новый default gateway, говоря при этом: will not replace defaultroute.
В таких случаях, можно добавить недокументированный параметр replacedefaultroute, благодаря которому, всякие манипуляции, с удалением маршрутов по-умолчанию default route на default gateway, становятся ненужными. Однако, этот параметр работает не во всех релизах pppd.
Когда устанавливается VPN-подключение по PPTP туннелю, маршрут по-умолчанию default route указывает на PPTP-сервер, доступный по интерфейсу ppp0. В связи с замещением этим маршрутом по-умолчанию предыдущего default route, система не знает, как добраться до PPTP-сервера, так как он недоступен, исходя из таблицы маршрутизации.
# route -n
Поэтому маршрут до PPTP-сервера нужно прописать в таблице маршрутизации вручную. Следующая проблема заключается в том, что PPTP-серверов у каждого провайдера много, и их список (nslookup vpn.internet.beeline.ru) постоянно меняется. Выводы:
Отслеживайте любые изменения в вашей таблице маршрутизации и вносите только тщательно проверенные и правильные маршруты.
Используйте скрипты для автоматического управления маршрутами вместо добавления постоянных маршрутов.
Для использования автоматического управления маршрутами через скрипты, воспользуйтесь файлами, содержащими скрипты /etc/ppp/ip-up и /etc/ppp/ip-down
После того, как связь установлена - скрипт /etc/ppp/ip-up
Как только связь PPP установлена, pppd ищет /etc/ppp/ip-up. Если этот скрипт существует и является исполняемым, то pppd выполняет скрипт. Скрипт позволяет вам автоматизировать любые специальные команды маршрутизации, которые могут вам понадобиться, и любые другие действия, которые вы хотите выполнить при активации соединения PPP.
Файл всего лишь является shell скриптом, и он может делать всё, что может делать shell скрипт (то есть фактически всё что вы захотите). Например, вы можете заставить sendmail послать исходящую почту, стоящую в очереди. Точно так же, вы можете вставить команды в скрипт ip-up для проверки почты (используя POP), ожидающей вашей проверки в вашем почтовом ящике.
Имеются следующие ограничения на /etc/ppp/ip-up:
Для усиления защиты он выполняется в преднамеренно ограниченном окружении. Это означает, что вы должны указывать полный путь к запускаемым файлам внутри скриптов и т.д. Технически /etc/ppp/ip-up - это программа, а не скрипт. Это означает, что он может быть всё таки выполнен - и следовательно, ему потребуется стандартный файл (#!/bin/bash) в начале первой строки скрипта, также он должен быть читаемым и исполняемым от пользователем root.
Если вы связываете две локальных сети, вы должны будете установить специфические маршруты к 'посторонней' локальной сети. Это легко сделать используя скрипт /etc/ppp/ip-up. Единственая трудность возникает, если ваша машина работает с несколькими PPP соединениями. Потому, что /etc/ppp/ip-up выполняется для КАЖДОГО ppp соединения, которое устанавливается, так что, вы должны тщательно проверить на правильность команды маршрутизации для определённого устанавливаемого соединения - и не выполнять их, когда устанавливается любое другое соединение.
После того, как связь завершена - скрипт /etc/ppp/ip-down
Вы можете создать скрипт, который будет выполняться, как только связь будет завершена. Он называется /etc/ppp/ip-down. Он может использоваться, чтобы отменить что-нибудь, что вы сделали в соответствующем скрипте /etc/ppp/ip-up. Например, вернуть прежние маршруты или правила iptables.
Помните, скрипт - это только стандартный скрипт bash и может использоваться так, чтобы автоматизировать ЛЮБУЮ функцию, которую нужно выполнять каждый раз, при установке соответствующего PPP соединения. [/more]
и получается, что назначить каждому интерфейсу шлюз по умолчанию не возможно. можно создать скрипт и положить его в соответствующую папку. в же Винде можно присвоить интерфейсу в Свойствах шлюз.
причем поместив сюда /etc/ppp/ip-up.d/ скрипт , я не получаю автоматического его запуска при включении соединения через ppp0.
приходится делать запуск вручную (((
это как то грустно.
или я не прав? и в чем желательно узнать ))