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

Исходное сообщение
"PPPoE (Информационный вопрос)"

Отправлено _Oleg_ , 23-Дек-09 13:49 
Добрый день.

После установки соединения появляется в системе интерфейс 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). Или я чего то не понимаю ?

Заранее всем спасибо за ответы.


Содержание

Сообщения в этом обсуждении
"PPPoE (Информационный вопрос)"
Отправлено Vitaly_loki , 23-Дек-09 14:29 
PPP используется для установки прямых соединений между двумя узлами, маска у них /32. Чтоб попасть в 195.14.38.8, нужно послать пакет через ppp0, на другом конце хост примет пакет. IPы в этом случае необязательно должны быть из одной подсети, ведь тут всего только два "участника" соединения. Рассматривай это как туннель.

"PPPoE (Информационный вопрос)"
Отправлено hizel , 23-Дек-09 16:28 
и смотрите таблицу маршрутизации

"PPPoE (Информационный вопрос)"
Отправлено _Oleg_ , 24-Дек-09 06:54 
>и смотрите таблицу маршрутизации

Интересно получается.

Vitaly_loki - Предложил принять это как должное. Ну ладно я уже смирился с тем что просто все пакеты пихаются на этот интерфейс.

Вы пишите смотреть таблицу маршрутизации. А что смотреть то ? Я привык к тому что законы статической маршрутизации в ethernet среде работают по определённым канонам. Те книги которые я читал четко объясняли что любой сформировавшийся пакет анализируется сначала в локальной таблице маршрутизации и если та сеть куда напрявляется пакет не найдена то он идёт на шлюз по умолчанию сетевая часть адреса которого должна совпадать с сетевой частью какого либо интерфейса в системе иначе система просто не поймёт на какой интерфейс кинуть пакет. И что мы тут получаем ? Мы получаем то что в данном случае тут эти принципы не применимы. Из сообщения Vitaly_loki я понял что на обоих концах сидят хосты так как маска равна /32 но я не понимаю природу этих вещей. Как система определяет что шлюз по умолчанию привязан к ppp0 интерфейсу ?


"PPPoE (Информационный вопрос)"
Отправлено Vitaly_loki , 24-Дек-09 08:33 
Да это все верно, конечно... Но представьте себя на секунду шлюзом с 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. Маршруты по умолчанию"


"PPPoE (Информационный вопрос)"
Отправлено _Oleg_ , 24-Дек-09 10:15 
>[оверквотинг удален]
>          
>     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. Маршруты по умолчанию"

Спасибо. Вроде дошло.


"PPPoE (Информационный вопрос)"
Отправлено Vitaly_loki , 24-Дек-09 15:08 
>Спасибо. Вроде дошло.

Да не за что :)


"PPPoE (Информационный вопрос)"
Отправлено ALex_hha , 23-Дек-09 17:14 
Классический пример

# 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