|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
ВНИМАНИЕ ПОСТ ОБНОВЛЁН 18.04.2009. - Добавлен способ получения маршрутов от провайдера "Прогтех" от DHCP сервера автоматически, как это делается в OS Windows.
Учитывая, что у многих безлимитые тарифы я думаю это будет очень полезно.
Как надо делать чтобы таблица маршрутиризции Вашего провайдера поднималась при старте системы, а так-же как надо сделать так, чтобы и подключение по VPN поднималось автоматом.
Сначала предлагаю немного общих сведений http://forum.ubuntu.ru/index.php?topic=12454.0 - это база с которой надо ознакомится.
Цитата: |
Ну достали уже с этой маршрутизацией.
Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут — это маршрут, который задается явно с помощью команды route. Динамическая маршрутизация выполняется процессом-демоном (routed или gated), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т. д.
Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация.
Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации командой route. Прежде чем пытаться настраивать маршруты, просмотрите таблицу маршрутизации ядра с помощью команды netstat -n -r. Вы должны увидеть что-то вроде следующего
Код:
rigon@ubuntu-comp:~$ netstat -n -r
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.254.1 0.0.0.0 UG 0 0 0 eth1 |
Если таблица пуста, то вы увидите только заголовки столбцов. Тогда надо использовать route. С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат:
Код:
[b]route[/b] [[b]-f[/b]] операция [[b]-тип[/b]] адресат шлюз [[b]dev[/b]] интерфейс |
Здесь аргумент операция может принимать одно из двух значений: add (маршрут добавляется) или delete (маршрут удаляется). Аргумент адресат может быть IP-адресом машины, IP-адресом сети или ключевым словом default . Аргумент шлюз — это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда
Код:
удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host . В первом случае в поле адресата указывается адрес сети, а во втором — адрес конкретного компьютера (хоста).
Как правило, бывает необходимо настроить маршрутизацию по упоминавшимся выше трем интерфейсам:
* локальный интерфейс (lo),
* интерфейс для платы Ethetnet (eth0),
* интерфейс для последовательного порта (PPP или SLIP).
Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1. Поэтому для маршрутизации пакетов с адресом 127.... используется команда:
Код:
route add -net 127.0.0.1 lo |
Если у вас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети (сетевая маска 255.255.255.0), то для настройки маршрутизации достаточно вызвать:
Код:
route add -net 192.168.36.0 netmask 255.255.255.0 eth0 |
Если же вы имеете насколько интерфейсов, то вам надо определиться с сетевой маской и вызвать команду route для каждого интерфейса.
Поскольку очень часто IP-пакеты с вашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров — маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. С помощью маршрута по умолчанию вы говорите ядру "а все остальное отправляй туда". Маршрут по умолчанию настраивается следующей командой:
Код:
route add default gw 192.168.1.1 eth0 |
Опция gw указывает программе route, что следующий аргумент - это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации.
Вот немного теории с сайта linuxcenter.ru
А теперь пример из жизни
Имеются следующие интерфейсы /etc/network/interface
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.17.8
hwaddress ether 00:E0:4C:A2:C4:48
netmask 255.255.255.0
broadcast 192.168.17.255
auto eth1
iface eth1 inet static
address 192.168.254.2
netmask 255.255.255.0
gateway 192.168.254.1
broadcast 192.168.254.255 |
Интерфейс eth0 это связь с локальной сетью состоящей из 20 подсетей 192.168.1.х-192.168.20.х
Интерфейс eth1 это связь с ADSL модемом с выходом в интернет. Так большинство запросов идут в Инет на этом интерфейсе прописываем шлюз (gateway 192.168.254.1) данный параметр указывает в системе шлюз по-умолчанию, обращаю внимание, что шлюз надо прописывать только на одном интерфейсе, иначе в системе появятся 2 маршрута по умолчанию и естно будет затупление в работе. С интернетом разобрались.
Но требуется еще просматривать ресурсы локальной сети
для этого надо выполнить вот эти команды
Код:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
route add -net 192.168.21.0 netmask 255.255.255.0 gw 192.168.17.254 eth0 |
На этом примере маршрутизируются 3 подсети
Все эти команды и многие другие можно прописать в файлк /etc/interface в итоге получится следующее:
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.17.8
hwaddress ether 00:E0:4C:A2:C4:48
netmask 255.255.255.0
broadcast 192.168.17.255
up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
up route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
up route add -net 192.168.21.0 netmask 255.255.255.0 gw 192.168.17.254 eth0
auto eth1
iface eth1 inet static
address 192.168.254.2
netmask 255.255.255.0
gateway 192.168.254.1
broadcast 192.168.254.255
Ну вот и все по аналогии настраиваются любое кол-во маршрутов и сетевых интерфейсов |
|
Это уже о многом говорит, это очень простое и понятное объяснение на мой взгляд. Напомню речь идёт о /etc/network/interfaces
Понятно дело, что в Ubuntu надо делать так -
sudo gedit /etc/network/interfaces |
Обращаю Ваше внимание на то, что надо не забывать про синтаксисы - pre-up, up, post-up, pre-down, down, post-down перед добавляемыми Вами командами!
Теперь ближе к теме, вот показываю как выглядит этот файл у меня выходящей в Сеть через Nat -
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
up route add -net 10.0.0.0/8 gw 192.168.0.1
up route add -net 62.117.80.120/29 gw 192.168.0.1
up route add -net 62.117.85.0/24 gw 192.168.0.1
up route add -net 82.138.6.0/29 gw 192.168.0.1
up route add -net 80.252.152.0/22 gw 192.168.0.1
up route add -net 80.252.150.0/23 gw 192.168.0.1
post-up route del default gw 192.168.0.1
post-up pptp hobo.progtech.ru
auto eth1
iface eth1 inet dhcp
auto eth2
iface eth2 inet dhcp
auto ath0
iface ath0 inet dhcp
auto wlan0
iface wlan0 inet dhc |
Разумеется шлюз надо будет немного поменять в соответствии с Вашим сегментом.
Например для Ip вида 10.100.7.99 - Это будет выглядеть так -
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
up route add -net 10.0.0.0/8 gw 10.100.7.1
up route add -net 62.117.80.120/29 gw 10.100.7.1
up route add -net 62.117.85.0/24 gw 10.100.7.1
up route add -net 82.138.6.0/29 gw 10.100.7.1
up route add -net 80.252.152.0/22 gw 10.100.7.1
up route add -net 80.252.150.0/23 gw 10.100.7.1
post-up route del default gw 10.100.7.1
post-up pptp hobo.progtech.ru
auto eth1
iface eth1 inet dhcp
auto eth2
iface eth2 inet dhcp
auto ath0
iface ath0 inet dhcp
auto wlan0
iface wlan0 inet dhc |
Вот, я думаю, что всё понятно, но дело ещё в том, что я опустил - после указания маршрута, но думаю, если одна карта Сетевая то это не будет принципиально, а вот если несколько то надо будет указать на всякий случай думаю.
Теперь при старте Системы у меня поднимается VPN и локалка.
Я думаю как опускать поднятый VPN все знают, при это хочу отметить, что Локальная Сеть не падает, и потом снова можно поднять VPN всё будет работать как надо.
Думаю, что это будет полезно всем мигрантам с Windows на Ubuntu Linux.
Получение маршрутов от провайдера "Прогтех" от DHCP сервера автоматически, как это делается в OS Windows.
Предисловие: я был удивлён когда узнал, что компьютеры под управлением OS Windows ничего уже давно не знают про маршрутизацию... Мне стало интересно, и оказывается компьютер под управлением OS Windows получает маршруты автоматически... И мне стало интересно, каким образом это реализованно, сначало подумал про RIP2, но затем решил уточнить в технической поддержке провайдера "Прогтех" через HELPDESK, очень быстро получил ответ на свой вопрос от Специалиста технической поддержки пользователей, чему был рад.
Приступим к настройке: Маршруты отдаются в DHCP-пакете. Опция номер 249.
Подробности раздачи таким образом можно посмотреть тут: RFC-3442, но там речь идёт про опцию 121, но почему мы говорим про опцию 249?
Ответ:
Цитата: |
На самом деле "правильно" передавать все то же самое, но в опции 121. 249 забила Microsoft, когда стандарт (classless static routes) был еще в драфте. Так до сих пор и работает.
|
(c)Техническая поддержка "Прогтех".
Для клиентов, использующих операционные системы Linux и BSD эта возможность доступна после установки и небольшой модификации конфигурационных файлов DHCP клиентов dhcp-client или dhcp3-client. - О том как получить эти пакеты смотрите в документации Вашего дистрибутива.
Настроим на примере Ubuntu 8.04.2:
1. Закоментируем строки добавления статических маршрутов в файле (если ранее Вы добавляли маршруты по первому способу описанному мной здесь):
sudo nano /etc/network/interfaces | Установив знак "#" в строках добавления маршрутов.
Примерно это выглядет так:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
#up route add -net 10.0.0.0/8 gw 10.100.X.X
#up route add -net 172.16.0.0/12 gw 10.100.X.X
#up route add -net 62.117.80.120/29 gw 10.100.X.X
#up route add -net 62.117.85.0/24 gw 10.100.X.X
#up route add -net 80.252.152.0/22 gw 10.100.X.X
#up route add -net 93.185.192.0/20 gw 10.100.X.X
#up route add -net 85.112.113.96/28 gw 10.100.X.X
post-up route del default gw 10.100.X.X
post-up pptp hobo.progtech.ru
auto eth0
auto eth1 |
Лишнее я отсюда не выводил. Смысл такой, что мы убираем добавление маршрутов, но при этом оставляем:
post-up route del default gw 10.100.X.X
post-up pptp hobo.progtech.ru |
Я убираю для VPN маршрут по умолчанию командой
post-up route del default gw 10.100.X.X |
для того чтобы созданное pptp соединение было маршрутом по умолчанию, остальные маршруты мы ведь уже получим автоматически... Локальный траффик пойдёт на eth интерфейс, остальной через pptp.
X - Ваши адреса.
Для справки: Windows так делает уже по умолчанию, там есть галочка которая уже активированна по умолчанию "Дополнительные параметры TCP/IP" на вкладке "Общие" свойств протокола TCP/IP каждого из созданных VPN соединений.
2. Создайте в каталоге /etc/dhcp3/dhclient-exit-hooks.d (/etc/dhcp/dhclient-exit-hooks.d для клиента dhcp-client)
файл rfc3442-classless-static-routes следующего содержания:
Создаём:
sudo nano /etc/dhcp3/dhclient-exit-hooks.d/rfc3442-classless-static-routes |
Вставляем туда код:
if [ x"$new_rfc3442_classless_static_routes" != x"" ]; then
case $reason in BOUND|RENEW|REBIND|REBOOT)
rfc_routes=($new_rfc3442_classless_static_routes)
for(( i=0; i < ${#rfc_routes[@]}; )); do
net_length=${rfc_routes[$i]}
((i++))
net_address=(0 0 0 0)
for(( j=0; j < $[$net_length / 8 + \
($net_length % 8 ? 1 : 0)]; j++, i++)); do
net_address[$j]=${rfc_routes[$i]}
done
gateway=(0 0 0 0)
for (( j=0; j < 4; j++, i++ )); do
gateway[$j]=${rfc_routes[$i]}
done
old_IFS="$IFS"
IFS='.'
if [ x"$net_length" == x"32" ]; then
/sbin/route add -host "${net_address[*]}" gw "${gateway[*]}"
else
/sbin/route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}"
fi
IFS="$old_IFS"
done
esac
fi |
3. В конфигурационный файл /etc/dhcp3/dhclient.conf (/etc/dhcp/dhclient.conf для клиента dhcp-client)
sudo nano /etc/dhcp3/dhclient.conf |
Добавте строку:
option rfc3442-classless-static-routes code 249 = array of unsigned integer 8;#Добавляем описание новой опции dhcp сервера |
Затем найдите секцию request и добавте туда:
rfc3442-classless-static-routes;#Добавляем запрос статических бесклассовых маршрутов |
For example (так выглядит у меня на данный момент):
# Classless Static Routes. RFC code 121. Windows code 249
# Using 249 except for 121 because most of computers uses this shit
option rfc3442-classless-static-routes code 249 = array of unsigned integer 8;
#
request subnet-mask, broadcast-address, time-offset, host-name,
netbios-name-servers, netbios-scope, rfc3442-classless-static-routes; |
Понятно думаю как добавлять. Заменить ";" в конце секции на "," и добавить: rfc3442-classless-static-routes;
4. Всё. Теперь можно либо перезагрузить ПК, или удалить в ручную старые маршруты которые были получены статически: , подробнее см.
See also:
man dhclient
man dhclient-script -- очень интересная утилита.
man route |
При подготовке материала были использованы следующие информационные источники с моими правками и соединениями:
http://archlinux.org.ru/forum/viewtopic.php?f=8&t=723 http://forum.dobroe.ru/index.php?showtopic=34115 Ссылки прямые, не скрытые и работоспособные на момент публикации этого поста.
P.S. Лично мне осталось придумать как динамически модифицировать таблицу NAT в iptables в зависимости от маршрутов которые я получил таким образом. Я думаю, что это не вызывет больших трудностей, хотя как знать. В общем буду модифицировать под себя: файл /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-static-routes —- Планирую выложить сюда и мой модифицированный скрипт. Или создам новый: /etc/dhcp/dhclient-exit-hooks.d/iptables-dynamic-route см. man dhclient-script , если необходимо что-либо подобное делать.
P.P.S. на этом я думаю, что тему маршрутизации в сети "Прогтех" мы рассмотрели сдесь полностью.
|
Последний раз редактировалось: DALDON (18 Апр 2009, 20:58), всего редактировалось 7 раз(а)
|
|
|
|
|
|
|
Возраст: 35 C нами с 15.10.2007 Репутация: 73.2
|
|
столкнулся с счемт странным. при включении локалки работает только один канал иптв с сайта бестоф...при подключении другого локального соединения там где прописаны маршруты работают все,но когда к работающему локальному добавить пптп то опять работает один канал(что это может быть??
|
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
UPD 18.04.2009 см. первый пост.
|
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
Всем привет! Кто может подсказать, я уже иссяк... Идей больше нету...
Есть такая система:
Linux gw
На нём VPN тоннель такой:
ppp1 192.168.2.106 -> 192.168.2.100 |
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.16.1 * 255.255.255.255 UH 0 0 0 ppp0
10.100.14.34 synkrisis-l3sw. 255.255.255.255 UGH 0 0 0 eth0
192.168.2.2 192.168.2.1 255.255.255.255 UGH 0 0 0 eth1
hobo4-1.progtec synkrisis-l3sw. 255.255.255.255 UGH 0 0 0 eth0
192.168.2.100 192.168.2.106 255.255.255.255 UGH 0 0 0 ppp1
192.168.2.100 * 255.255.255.255 UH 0 0 0 ppp1
62.117.80.120 synkrisis-l3sw. 255.255.255.248 UG 0 0 0 eth0
85.112.113.96 synkrisis-l3sw. 255.255.255.240 UG 0 0 0 eth0
233.50.1.0 daldon.progtech 255.255.255.0 UG 0 0 0 eth0
234.5.2.0 daldon.progtech 255.255.255.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
10.100.8.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
62.117.85.0 synkrisis-l3sw. 255.255.255.0 UG 0 0 0 eth0
80.252.152.0 synkrisis-l3sw. 255.255.252.0 UG 0 0 0 eth0
93.185.192.0 synkrisis-l3sw. 255.255.240.0 UG 0 0 0 eth0
172.16.0.0 synkrisis-l3sw. 255.240.0.0 UG 0 0 0 eth0
10.0.0.0 synkrisis-l3sw. 255.0.0.0 UG 0 0 0 eth0
default * 0.0.0.0 U 0 0 0 ppp0 |
Есть хост в локальной сети:
$ route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 192.168.2.1 255.255.255.255 UGH 0 0 0 br0
192.168.2.100 192.168.2.106 255.255.255.255 UGH 0 0 0 br0
192.168.2.0 * 255.255.255.0 U 0 0 0 br0
192.168.0.0 * 255.255.255.0 U 0 0 0 br0
default ubuntu.home.loc 0.0.0.0 UG 0 0 0 br0 |
Задача ping'ом достигнуть с неё 192.168.2.100.
Сейчас с сервера 192.168.2.100 достигается без проблем, с хоста локальной Сети достигается: 192.168.2.106 , как достичь: 192.168.2.100.
$ sudo traceroute 192.168.2.100
traceroute to 192.168.2.100 (192.168.2.100), 30 hops max, 40 byte packets
1 192.168.2.1 (192.168.2.1) 0.140 ms 0.140 ms 0.158 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * * |
С хоста... Почему трафик не заворачивается на 192.168.2.106? Я так понимаю надо просто завернуть и всё... Если смотреть на маршруты получается, что должно ведь всё заворачиваться же...
У меня уже нету идей. Помогите!
P.S. нужно прямое достижение, без Nat. Чистый forward между интерфейсами. Он кстати включен.
|
|
|
|
|
|
|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
192.168.2.100 192.168.2.106 255.255.255.255 UGH 0 0 0 br0
вроде наоборот должно быть:
192.168.2.106 192.168.2.100 255.255.255.255 UGH 0 0 0 br0
|
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
splav, нее... Это получается наобарот: route add -host 192.168.2.106 gw 192.168.2.100 |
Это будет означать, что весь трафик для 106 адреса направлять через 100-ый... А мне надо 100 достигнуть. Я попоробовал конечно, получилось так:
это на хосте с которого нужно достигнуть адрес 192.168.2.100:
$ route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.106 192.168.2.100 255.255.255.255 UGH 0 0 0 br0
192.168.2.0 192.168.2.1 255.255.255.0 UG 0 0 0 br0
192.168.2.0 * 255.255.255.0 U 0 0 0 br0
192.168.0.0 * 255.255.255.0 U 0 0 0 br0
default ubuntu.home.loc 0.0.0.0 UG 0 0 0 br0
|
Вестимо ничего не работает, и теперь не проходит ping даже на 106 адрес, что в общем логично так-как 192.168.2.100 по прежнему не доступен...
Схему может нарисовать чтобы понятнее было? - Пока не стал, так-как схема вроде простая и так понятная.
|
|
|
|
|
|
|
|
Возраст: 44 C нами с 05.04.2005 Репутация: 121.2
|
|
DALDON, команды которые возможно помогут Вам разобраться:
ip ro get 192.168.2.100 покажет через что с этого хоста на этот IP пойдут пакеты
запустите ping 192.168.2.100 и с помощью tcpdump -ni IFACE host 192.168.2.100 послушайте на интерфейсах и посмотрите как ходят и ходят ли пакеты на 192.168.2.100
|
_____________________________ IRC WeNet #programming
jid: seb2000@jabber.ru
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
seb, делаю на хосте на gw даю команду:
sudo tcpdump -ni ppp1 host 192.168.2.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp1, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
20:50:20.763096 IP 192.168.2.2 > 192.168.2.100: ICMP echo request, id 20004, seq 1, length 64
20:50:21.777450 IP 192.168.2.2 > 192.168.2.100: ICMP echo request, id 20004, seq 2, length 64
20:50:22.777606 IP 192.168.2.2 > 192.168.2.100: ICMP echo request, id 20004, seq 3, length 64
20:50:23.777779 IP 192.168.2.2 > 192.168.2.100: ICMP echo request, id 20004, seq 4, length 64 |
Из чего видно, что icmp пакеты уходит от меня, но обратно не приходят... Только не понятно, почему... Пробовал смотреть на другом интерфейсе c ping ya.ru - ответный трафик есть. В моём случае нету. Видимо это на той сторое VPN севрер так себя ведёт?
Да и ещё:
Я не понял, где надо это команду запустить... И вообще не понял ничего... привёл меня в ужас, можно чуть поподробнее? Зачем это и где пускать?
Добавлено спустя 1 минуту 53 секунды:
tcpdump ещё терпимая утилита... trafshow тоже... Но пока от вида ip или tc утилит я прихожу в ужас... Читал там тоннели какие-то городят с ip...
Добавлено спустя 4 минуты 43 секунды:
Попробовал: с gw... Ответы есть...
sudo tcpdump -ni ppp1 host 192.168.2.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp1, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
21:00:00.089168 IP 192.168.2.106 > 192.168.2.100: ICMP echo request, id 15129, seq 4, length 64
21:00:00.090114 IP 192.168.2.100 > 192.168.2.106: ICMP echo reply, id 15129, seq 4, length 64
21:00:01.089192 IP 192.168.2.106 > 192.168.2.100: ICMP echo request, id 15129, seq 5, length 64
21:00:01.089993 IP 192.168.2.100 > 192.168.2.106: ICMP echo reply, id 15129, seq 5, length 64
|
А вот уже так опять же с сервера: ping -I 192.168.2.1 192.168.2.100 |
То есть просто изменив source IP - облом...
sudo tcpdump -ni ppp1 host 192.168.2.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp1, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
21:01:07.759148 IP 192.168.2.1 > 192.168.2.100: ICMP echo request, id 16921, seq 7, length 64
21:01:08.759148 IP 192.168.2.1 > 192.168.2.100: ICMP echo request, id 16921, seq 8, length 64
21:01:09.759149 IP 192.168.2.1 > 192.168.2.100: ICMP echo request, id 16921, seq 9, length 64
|
Из чего прихожу к выводу: что VPN сервер не позволяет общаться с ним кроме как с выданного клиенту ip адрерса?
|
|
|
|
|
|
|
|
Возраст: 44 C нами с 05.04.2005 Репутация: 121.2
|
|
а на 192.168.2.100 есть доступ ? какая там таблица маршрутизации ? насколько я понял схема сети такая:
| host | | gw | | target |
| 192.168.2.2 (br0) : (eth0) | -> | (eth1) 192.168.2.1 | | |
| 192.168.2.106 (ppp1) | -> | (pppX) 192.168.2.100 | |
идите по порядку:
- на gw tcpdump на eth1 видит IP 192.168.2.2 > 192.168.2.100: ICMP echo request ?
- там же на gw tcpdump на ppp1 видит IP 192.168.2.2 > 192.168.2.100: ICMP echo request ?
- на target (на 192.168.2.100) tcpdump на pppX видит IP 192.168.2.2 > 192.168.2.100: ICMP echo request ?
Добавлено спустя 3 минуты 7 секунд:
ip если упрощённо это расширенный вариант ifconfig + route. запустите на target команду: ip ro get 192.168.2.2 она покажет куда target отправляет пакеты для 192.168.2.2, возможно он их шлёт не в pppX а в сеть напрямую в ethX
|
_____________________________ IRC WeNet #programming
jid: seb2000@jabber.ru
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
Схема совершенно верна! Классный способ рисовать.
- на gw tcpdump на eth1 видит IP 192.168.2.2 > 192.168.2.100: ICMP echo request ?
- там же на gw tcpdump на ppp1 видит IP 192.168.2.2 > 192.168.2.100: ICMP echo request ?
Да.
- на target (на 192.168.2.100) tcpdump на pppX видит IP 192.168.2.2 > 192.168.2.100: ICMP echo request?
Не знаю там Windows.
Нету обратных ответов. В первых двух пунктах. Запрос идёт туда, обратно ответа нету... То есть идёт "бомбёжка" icmp траффиком в одну сторону... pong'ов нету.
target под Windows. Ну подозреваю что да - туда мои запросы доходят. Ибо если в кач-ве ping scr addr указать адрес который мне выдал VPN сервер - обратный icmp трафик приходит - О чём свидетельствует tcpdump. Мне кажется что проблема нашлась, то есть почему-то Windows XP встроенный VPN сервер не отвечает на любые запросы кроме как посланные с ip адреса клиента. — Вообще смысл поделия всего в том, что я за NAT'ом, есть ПО (2000 года) которое в принципе с NAT не работает (ох и намучался пока я всё это перепробывал)... Необходимо с хостом target установить direct соединение на всю мою локальную домашнюю Сеть для чего собственно решил поднять подсеть 192.168.2.X...
seb, спасибо, что помогаете!
Добавлено спустя 12 минут 51 секунду:
Попробовал: ip ro get - всё одекватно с моей стороны. С другой стороны не Linux - не смогу попробовать.
Спасибо! Это весьма полезный и ценный опыт Вы мне передаёте!
|
|
|
|
|
|
|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
DALDON, мне кажется проблема в том, что на виндовой машине надо прописать маршрут через туннель к вашей подсети. Иначе он законно считает туннель соединением point-to-point и не знает, куда передать пакет для ответа.
|
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
splav, логично - что он "не знает" куда отправлять ответы... Если бы он прописывался... Было бы отлично... point-to-point - логично...
route add 192.168.2.0 mask 255.255.255.0 192.168.2.100
route add 192.168.2.0 mask 255.255.255.0 192.168.2.106 |
Не добавляются, в первом случае пишет: ошибка параметров...
Во втором пишет: Шлюз лежит не в той подсети... Хоть ты стой хоть падай.
Но ковырну этот момент...
Почитаю ещё раз может что-либо толковое найду.
|
|
|
|
|
|
|
|
Возраст: 44 C нами с 05.04.2005 Репутация: 121.2
|
|
посмотрите ещё ipconfig /all на windows, возможно там другой IP, не 192.168.2.100 а какой-нибудь "виртуальный", поэтому правильная команда route add 192.168.2.0 mask 255.255.255.0 192.168.2.100
не выполняется.
ещё route print там же, может быть такая сеть 192.168.2.0 mask 255.255.255.0 уже прописана.
route add 192.168.2.0 mask 255.255.255.0 192.168.2.100 лучше видимо делать с ключом -p что бы этот маршрут был постоянным.
|
_____________________________ IRC WeNet #programming
jid: seb2000@jabber.ru
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
-p пока не делал. Ибо пока временно надо. Но этот ключ знаю - буду иметь ввиду. Потом подготовлю cmd сценарии и sh соответственно.
route print - смотрел, подсеть не прописана.
ipconfig - говорит 192.168.2.100.
ipconfig /all - не догадался. Вполне вероятно, что да. Там виртуальный адрес ведь... Не подумал даже. Буду завтра смотреть - вечером. ОТПИШУСЬ!
|
|
|
|
|
|
|
|
Возраст: 44 C нами с 05.04.2005 Репутация: 121.2
|
|
там в ipconfig /all есть ещё такая строчка:
Настройка протокола IP для Windows
Имя компьютера . . . . . . . . . : home
Основной DNS-суффикс . . . . . . : progtech.ru
Тип узла. . . . . . . . . . . . . : неизвестный
___IP-маршрутизация включена . . . . : нет___
WINS-прокси включен . . . . . . . : нет
Порядок просмотра суффиксов DNS . : progtech.ru
| в windows не разбираюсь, не знаю нужно ли ставить там "да" в Вашем случае...
|
_____________________________ IRC WeNet #programming
jid: seb2000@jabber.ru
|
|
|
|
|
|
|
C нами с 09.04.2005 Репутация: 0.1
|
|
seb, хм... Интересно.. Я тоже не особо силён в этом во всём деле... Попробую. Отпишусь.
|
|
|
|
|
|
|
|
|