Добрый день.После установки соединения появляется в системе интерфейс ppp0, всем конечно же это известно. Но вот не совсем понятно как происходит маршрутизация а именно:
ppp0 Link encap:Point-to-Point Protocol
inet addr:89.178.77.182 P-t-P:195.14.38.8 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:40 (40.0 b) TX bytes:46 (46.0 b)Inet addr - Ваш Ip адрес (в данном случае внешний)
P-t-P - Адрес сервера ( а точнее наверное будет адрес шлюза по умолчанию в вашей системе)
Вот тут вопрос возникает. Каким образом пакеты будут ходить на этот шлюз ? Ведь в системе отсутствует интерфейс, который бы входил в подсеть Remote IP(p-t-p). Или я чего то не понимаю ?Заранее всем спасибо за ответы.
PPP используется для установки прямых соединений между двумя узлами, маска у них /32. Чтоб попасть в 195.14.38.8, нужно послать пакет через ppp0, на другом конце хост примет пакет. IPы в этом случае необязательно должны быть из одной подсети, ведь тут всего только два "участника" соединения. Рассматривай это как туннель.
и смотрите таблицу маршрутизации
>и смотрите таблицу маршрутизацииИнтересно получается.
Vitaly_loki - Предложил принять это как должное. Ну ладно я уже смирился с тем что просто все пакеты пихаются на этот интерфейс.
Вы пишите смотреть таблицу маршрутизации. А что смотреть то ? Я привык к тому что законы статической маршрутизации в ethernet среде работают по определённым канонам. Те книги которые я читал четко объясняли что любой сформировавшийся пакет анализируется сначала в локальной таблице маршрутизации и если та сеть куда напрявляется пакет не найдена то он идёт на шлюз по умолчанию сетевая часть адреса которого должна совпадать с сетевой частью какого либо интерфейса в системе иначе система просто не поймёт на какой интерфейс кинуть пакет. И что мы тут получаем ? Мы получаем то что в данном случае тут эти принципы не применимы. Из сообщения Vitaly_loki я понял что на обоих концах сидят хосты так как маска равна /32 но я не понимаю природу этих вещей. Как система определяет что шлюз по умолчанию привязан к ppp0 интерфейсу ?
Да это все верно, конечно... Но представьте себя на секунду шлюзом с PPP-соединением :))) Вы получаете задание отправить дейтаграмму на 195.14.38.8, посмотрев таблицу маршрутизации, вы видите, что этот хост находится на другом конце провода, туда и отправляете... Понимаете, все эти маски, подсети нужны для того чтобы пакет мог найти своего получателя (и отправлять потом обратно на основе SRC IP)... а здесь то зачем его искать, - он 100% находится на другом конце ПРОВОДА, там ни сеть, ни AS, там отдельный хост/32, потому и можно вот так отправить...И да, в таблице маршрутизации то будет указано что-то типа такого:
dst gw netif
195.14.38.8/32 89.178.77.182 ppp0Насчет шлюза по умолчанию... ну если там же указанно 0.0.0.0/0 via ppp0, то так и определяет, иначе в ppp0 идет только трафик, отправленный на P-t-P:195.14.38.8 Mask:255.2 (в вашем случае)
Если вам так легче будет, то можно слегка изменить мировоззрение... считайте, что здесь не действуют правила маршрутизации (вычисление сетевого адреса, передача на шлюз из той же подсети) это коммутируемое соеднинение, здесь не сети, а как бы "туннель". Т.е. хост может напрямую отправить пакет через ppp0 даже если у другого хоста IP адрес совсем из другой подсети (сетей то там как таковых нет, у всех маска /32). Другой вопрос, что через это соединение потом уже осуществляется "классическая" маршрутизация, когда дает, например, досуип в корпоративную сеть. Например, так:
dst gw netif
222.222.222.0/24 195.14.38.8/32 ppp0Обратили внимание на шлюз? Он не 89.178.77.182, ответ тут:
http://www.freebsd.org/doc/ru/books/handbook/network-routing...
раздел "27.2.2. Маршруты по умолчанию"
>[оверквотинг удален]
>
> gw
>
> netif
>222.222.222.0/24 195.14.38.8/32 ppp0
>
>
>Обратили внимание на шлюз? Он не 89.178.77.182, ответ тут:
>http://www.freebsd.org/doc/ru/books/handbook/network-routing...
>раздел "27.2.2. Маршруты по умолчанию"Спасибо. Вроде дошло.
>Спасибо. Вроде дошло.Да не за что :)
Классический пример# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:xxx.xxx.xxx.xxx P-t-P:yyy.yyy.yyy.yyy Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:9838271 errors:0 dropped:0 overruns:0 frame:0
TX packets:7185629 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1841391939 (1.7 GiB) TX bytes:947586446 (903.6 MiB)# ip ro sh
yyy.yyy.yyy.yyy dev ppp0 proto kernel scope link src xxx.xxx.xxx.xxx
default dev ppp0 scope link