Имя:    Пароль:      Помнить меня       
Unsorted   ~  Software  ~  Linux and Unix  ~  Маршрутизация в Ubuntu mini HOWTO UPD 18.04.2009
На страницу «  1, 2, 3, 4, 5  »
DALDON
Сообщение  18 Сен 2007, 21:02  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
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-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда
Код:
route -f

удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения 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

Вот, я думаю, что всё понятно, но дело ещё в том, что я опустил
eth0
- после указания маршрута, но думаю, если одна карта Сетевая то это не будет принципиально, а вот если несколько то надо будет указать на всякий случай думаю.

Теперь при старте Системы у меня поднимается 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. Всё. Теперь можно либо перезагрузить ПК, или удалить в ручную старые маршруты которые были получены статически:
route del
, подробнее см.
man route


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 раз(а)
В начало
Профиль : Фотоальбом : Личное Сообщение
_VersouL_
Сообщение  08 Фев 2009, 22:41  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 15.10.2007
Репутация: 73.2

столкнулся с счемт странным. при включении локалки работает только один канал иптв с сайта бестоф...при подключении другого локального соединения там где прописаны маршруты работают все,но когда к работающему локальному добавить пптп то опять работает один канал(что это может быть??
В начало
Профиль : Личное Сообщение : ICQ
DALDON
Сообщение  18 Апр 2009, 21:10  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

UPD 18.04.2009 см. первый пост.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
DALDON
Сообщение  30 Авг 2009, 15:04  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

Всем привет! Кто может подсказать, я уже иссяк... Идей больше нету...


Есть такая система:

Linux gw
На нём VPN тоннель такой:

ppp1 192.168.2.106 -> 192.168.2.100


eth1 alias 192.168.2.1



$ 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



Есть хост в локальной сети:

br0 alias 192.168.2.2



$ 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 между интерфейсами. Он кстати включен.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
splav
Сообщение  30 Авг 2009, 16:45  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской  Доверенный пользователь
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
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
DALDON
Сообщение  30 Авг 2009, 17:12  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
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 по прежнему не доступен...

Схему может нарисовать чтобы понятнее было? - Пока не стал, так-как схема вроде простая и так понятная.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
seb
Сообщение  30 Авг 2009, 18:24  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

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
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
DALDON
Сообщение  30 Авг 2009, 19:47  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

seb, делаю на хосте
ping 192.168.2.100
на 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 севрер так себя ведёт?

Да и ещё:
ip ro get 192.168.2.100


Я не понял, где надо это команду запустить... И вообще не понял ничего...
man ip
привёл меня в ужас, можно чуть поподробнее? Зачем это и где пускать?

Добавлено спустя 1 минуту 53 секунды:

tcpdump ещё терпимая утилита... trafshow тоже... Но пока от вида ip или tc утилит я прихожу в ужас... Читал там тоннели какие-то городят с ip...

Добавлено спустя 4 минуты 43 секунды:

Попробовал:
ping 192.168.2.100
с 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 адрерса?
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
seb
Сообщение  30 Авг 2009, 20:45  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

а на 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
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
DALDON
Сообщение  30 Авг 2009, 21:23  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
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 - не смогу попробовать.

Спасибо! Это весьма полезный и ценный опыт Вы мне передаёте!
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
splav
Сообщение  30 Авг 2009, 23:15  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

DALDON, мне кажется проблема в том, что на виндовой машине надо прописать маршрут через туннель к вашей подсети. Иначе он законно считает туннель соединением point-to-point и не знает, куда передать пакет для ответа.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
DALDON
Сообщение  30 Авг 2009, 23:33  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
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



Не добавляются, в первом случае пишет: ошибка параметров...
Во втором пишет: Шлюз лежит не в той подсети... Хоть ты стой хоть падай.

Но ковырну этот момент...

Почитаю ещё раз
route /?
может что-либо толковое найду.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
seb
Сообщение  31 Авг 2009, 0:10  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

посмотрите ещё 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
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
DALDON
Сообщение  31 Авг 2009, 0:20  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

-p пока не делал. Ибо пока временно надо. Но этот ключ знаю - буду иметь ввиду. Потом подготовлю cmd сценарии и sh соответственно.

route print - смотрел, подсеть не прописана.

ipconfig - говорит 192.168.2.100.

ipconfig /all - не догадался. Вполне вероятно, что да. Там виртуальный адрес ведь... Не подумал даже. Буду завтра смотреть - вечером. ОТПИШУСЬ!
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
seb
Сообщение  31 Авг 2009, 0:38  Ссылка : Ответить с цитатой
Возраст: 44 Пол: Мужской  Доверенный пользователь
C нами с 05.04.2005
Репутация: 121.1

там в ipconfig /all есть ещё такая строчка:
Настройка протокола IP для Windows

        Имя компьютера  . . . . . . . . . : home
        Основной DNS-суффикс  . . . . . . : progtech.ru
        Тип узла. . . . . . . . . . . . . : неизвестный
        ___IP-маршрутизация включена . . . . : нет___
        WINS-прокси включен . . . . . . . : нет
        Порядок просмотра суффиксов DNS . : progtech.ru
в windows не разбираюсь, не знаю нужно ли ставить там "да" в Вашем случае...

_____________________________
IRC WeNet #programming
jid: seb2000@jabber.ru
В начало
Профиль : Фотоальбом : Личное Сообщение : JabberID
DALDON
Сообщение  31 Авг 2009, 9:04  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

seb, хм... Интересно.. Я тоже не особо силён в этом во всём деле... Попробую. Отпишусь.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
Показать сообщения:   
На страницу «  1, 2, 3, 4, 5  »

Unsorted   ~  Software  ~  Linux and Unix  ~  Маршрутизация в Ubuntu mini HOWTO

Ответить на тему

Перейти:  





Powered by phpBB   © Unsorted Team  support@unsorted.me  promo@unsorted.me  Полезные скрипты