The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"роутинг. Теоретический вопрос."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"роутинг. Теоретический вопрос."  
Сообщение от konst email(??) on 26-Дек-07, 03:14 
Я не спец. по tcp/ip. Вот пришло в голову:
Есть сеть 192.168.0.0/24
4 машины в сети .1,.2,.3,.4. У всех mask=255.255.255.0. firewall - нет.

на 192.168.0.1 прописываем:
route add -host 192.168.0.4 gw 192.168.0.2
на 192.168.0.4 прописываем:
route add -host 192.168.0.1 gw 192.168.0.3

смогут ли общаться .1 и .4 между собой?
Как отработает ping с .1-го на .4-ый ? Т.е. если ДА, то .1-й получит ответ от .4-го через .3-й или .2-й?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "роутинг. Теоретический вопрос."  
Сообщение от mixa (??) on 26-Дек-07, 05:55 
>[оверквотинг удален]
>4 машины в сети .1,.2,.3,.4. У всех mask=255.255.255.0. firewall - нет.
>
>на 192.168.0.1 прописываем:
>route add -host 192.168.0.4 gw 192.168.0.2
>на 192.168.0.4 прописываем:
>route add -host 192.168.0.1 gw 192.168.0.3
>
>смогут ли общаться .1 и .4 между собой?
>Как отработает ping с .1-го на .4-ый ? Т.е. если ДА, то
>.1-й получит ответ от .4-го через .3-й или .2-й?

Так сеть то одна! Зачем гетвеи указывать?? И так должно работать. Но если только теоретически...
Тогда наверное так:
C 192.168.0.1 запустив пинг на 192.168.0.4 должны получить прохождение пакетов через 192.168.0.2 (после 192.168.0.2 ответить должен 192.168.0.4), а вот ответ репли от 192.168.0.4 назад на 192.168.0.1 пакет должен прийти по другому маршруту, через 192.168.0.3
вроде так

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "роутинг. Теоретический вопрос."  
Сообщение от sn (??) on 26-Дек-07, 10:36 
>[оверквотинг удален]
>>
>>смогут ли общаться .1 и .4 между собой?
>>Как отработает ping с .1-го на .4-ый ? Т.е. если ДА, то
>>.1-й получит ответ от .4-го через .3-й или .2-й?
>Тогда наверное так:
>C 192.168.0.1 запустив пинг на 192.168.0.4 должны получить прохождение пакетов через 192.168.0.2
>(после 192.168.0.2 ответить должен 192.168.0.4), а вот ответ репли от 192.168.0.4
>назад на 192.168.0.1 пакет должен прийти по другому маршруту, через 192.168.0.3
>
>вроде так

Совсем не так. Согласно 7уровневой модели ISO есть еще физический уровень. Если используется ethernet, то сначала 1 определит по маске что находится в одной сети с 4. Потом посмотрит у себя таблицу arp. Если не найдет MAC адреса 4 то пошлет запрос who-has 4 в сеть. 4 получив этот запрос (или коммутатор, который держит таблицу) ответит про MAC адрес 4. 1 пошлет ethernet пакет с MAC адресом получателя 4, в котором будет icmp пакет с ping запросом. 4 получит его и ответит ethernet пакетом согласно вышеприведенным действиям для 1. Если 1-4 подключены к разным портам правильного коммутатора. то 2 и 3 пакеты с пингом вообще не увидят.

Теория однако :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "роутинг. Теоретический вопрос."  
Сообщение от Vladimir (??) on 26-Дек-07, 13:01 
практика говорит о другом :)

# route add x.x.x.6 x.x.x.2
# netstat -rn | grep ^x.x.x.6
x.x.x.x        x.x.x.2        UGHS        0        0    rl0

# ping x.x.x.6
PING x.x.x.6 (x.x.x.6): 56 data bytes
36 bytes from x.x.x.2: Redirect Host(New addr: x.x.x.6)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
4  5  00 0054 a86b   0 0000  40  01 3433 x.x.x.1  x.x.x.6

64 bytes from x.x.x.6: icmp_seq=0 ttl=64 time=0.912 ms

# netstat -rn | grep ^x.x.x.6
x.x.x.6        00:0c:6e:3e:d4:ea  UHLW        0        2    rl0   1197

система FreeBSD

теперь теория. согласно модели ОСИ данные идут с верхнего уровня до нижнего, физического.
пока они дойдут до физики, пройдут еще много уровней, где с ними может произойти моного интересного.
в частности есть уровень ip, на котором определятся маршрут для исходящего пакета. приоритет имеет маршрут с большей маской сети. если рассматривать задачу в сети езернет (врядли автор вопроса подразумевал иную физику), то после конфигурации интерфейса в таблицу роутинга попадет вся подключенная к езеру сеть с маской /24. первый пакет на конкретный ип удет по маршруту на всю сеть, далее, на уровне ниже - арп, отрезолвит мак и внесет в таблицу роутинга спецефичный маршрут с маской /32 для этого хоста с маком. в дальнейшем пакеты уже будут уходить по этой новой записи.

теперь мы добавляем маршрут к .6 через .2 (мой случай), которым заменяем маршрут с маком. выход пакета имеет примерно такую логику - уровень ip заглядывает в таблицу роутинга, и видит что .6 доступен через .2, передает пакет на уровень arp, но с информацией о том, что пакет надо отправить по маку .2, что arp и делает, попутно, если надо, определяя мак .2. но .2 вроде не глупа и видит что отправитель .1 и получатель .6 в одной сети и могут обойтись без .2, поэтому в на .1 отправляется icmp redirect, что можно видеть после моей команды ping. после обработки данного сообщения на .1 в таблицу роутинга помещается нормальный прямой маршрут на .6 с маком вместо хопа через .2

само-собой, на .2 должен быть включен ip routing, т.е. грубо говоря, возможность принимать пакеты для других хостов и передавать их дальше согласно routing table

теперь ответы на вопросы
> смогут ли общаться .1 и .4 между собой?

да, смогут

> Как отработает ping с .1-го на .4-ый ?

это я и описал, только ип другие, так что пакеты будут идти с .1-го на .4-ый через .2-ой до обработки icmp redirect, после будут ходить напрямую. есть возможность запретить icmp redirect, тогда пакеты всегда будут ходить через .2-го

> Т.е. если ДА, то .1-й получит ответ от .4-го через .3-й или .2-й?

согласно таблице роутинга на .4-ом пакет будет отправлен через .3-ий, с оговоркой на icmp redirect

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "роутинг. Теоретический вопрос."  
Сообщение от konst email(ok) on 26-Дек-07, 15:38 
>
>согласно таблице роутинга на .4-ом пакет будет отправлен через .3-ий, с оговоркой
>на icmp redirect

а если, icmp redirect запрещен на .2, но разрешен на .3 ?
Тогда с .1 на .4 через .2, а обратно напрямую .4->.1?
Т.е. путь пакетов: .1->.2->.4 => .1->.2->.4 => .1 ?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "роутинг. Теоретический вопрос."  
Сообщение от Vladimir (??) on 26-Дек-07, 19:13 
да
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "роутинг. Теоретический вопрос."  
Сообщение от Аноним on 26-Дек-07, 13:02 

>[оверквотинг удален]
>одной сети с 4. Потом посмотрит у себя таблицу arp. Если
>не найдет MAC адреса 4 то пошлет запрос who-has 4 в
>сеть. 4 получив этот запрос (или коммутатор, который держит таблицу) ответит
>про MAC адрес 4. 1 пошлет ethernet пакет с MAC адресом
>получателя 4, в котором будет icmp пакет с ping запросом. 4
>получит его и ответит ethernet пакетом согласно вышеприведенным действиям для 1.
>Если 1-4 подключены к разным портам правильного коммутатора. то 2 и
>3 пакеты с пингом вообще не увидят.
>
>Теория однако :)

Да хрен. Таблица маршрутизации типа пох ?
Тазик 1. Не будет связываться с 4. Потому как в системе (уровень приложения) есть правило, которое говорит. "хочешь общаться с 4 - шли запросы к 3 - пусть тот передает."

Почитайте доку. общение по уровням идет в последовательности
Вопрос от 1 к 4: 7,6,5,4,3,2,1
4 принимает вопрос: 1,2,3,4,5,6,7
4 отсылает ответ: 7,6,5,4,3,2,1
1 принимает ответ: 1,2,3,4,5,6,7

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "роутинг. Теоретический вопрос."  
Сообщение от sn (??) on 26-Дек-07, 14:52 
Батькизвиняйте, ступил.

Действительно:

# route add -host 192.168.2.4 gw 192.168.2.1 dev eth0
# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.2.4     192.168.2.1     255.255.255.255 UGH       0 0          0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

# ping 192.168.2.4
PING 192.168.2.4 (192.168.2.4) from 192.168.2.187 : 56(84) bytes of data.
64 bytes from 192.168.2.4: icmp_seq=0 ttl=128 time=2.363 msec
64 bytes from 192.168.2.4: icmp_seq=1 ttl=128 time=468 usec
64 bytes from 192.168.2.4: icmp_seq=2 ttl=128 time=330 usec
Вот это смутило

# tcpdump -e -nn -i eth0 host 192.168.2.1 or host 192.168.2.4
tcpdump: listening on eth0
14:31:52.597594 0:90:27:e0:3f:a6 0:7:ec:28:e0:9 0800 98: 192.168.2.187 > 192.168.2.4: icmp: echo request (DF)
14:31:52.597911 0:80:48:cd:46:90 ff:ff:ff:ff:ff:ff 0806 60: arp who-has 192.168.2.187 tell 192.168.2.4
14:31:52.597982 0:90:27:e0:3f:a6 0:80:48:cd:46:90 0806 42: arp reply 192.168.2.187 is-at 0:90:27:e0:3f:a6
14:31:52.600371 0:80:48:cd:46:90 0:90:27:e0:3f:a6 0800 98: 192.168.2.4 > 192.168.2.187: icmp: echo reply (DF)
14:31:53.588566 0:90:27:e0:3f:a6 0:7:ec:28:e0:9 0800 98: 192.168.2.187 > 192.168.2.4: icmp: echo request (DF)
14:31:53.588871 0:80:48:cd:46:90 0:90:27:e0:3f:a6 0800 98: 192.168.2.4 > 192.168.2.187: icmp: echo reply (DF)
14:31:54.588607 0:90:27:e0:3f:a6 0:7:ec:28:e0:9 0800 98: 192.168.2.187 > 192.168.2.4: icmp: echo request (DF)
14:31:54.588906 0:80:48:cd:46:90 0:90:27:e0:3f:a6 0800 98: 192.168.2.4 > 192.168.2.187: icmp: echo reply (DF)

# arp -n -i eth0
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.2.4              ether   00:80:48:CD:46:90   C                     eth0
192.168.2.1              ether   00:07:EC:28:E0:09   C                     eth0

А вот через несуществующий адрес:

# route add -host 192.168.2.4 gw 192.168.2.186 dev eth0
# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.2.4     192.168.2.186   255.255.255.255 UGH       0 0          0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

# ping 192.168.2.4
PING 192.168.2.4 (192.168.2.4) from 192.168.2.187 : 56(84) bytes of data.
From 192.168.2.187: Destination Host Unreachable
From 192.168.2.187: Destination Host Unreachable

Убило наповал.

# tcpdump -e -nn -i eth0 host 192.168.2.186 or host 192.168.2.4
tcpdump: listening on eth0
14:41:09.194197 0:90:27:e0:3f:a6 ff:ff:ff:ff:ff:ff 0806 42: arp who-has 192.168.2.186 tell 192.168.2.187
14:41:10.190133 0:90:27:e0:3f:a6 ff:ff:ff:ff:ff:ff 0806 42: arp who-has 192.168.2.186 tell 192.168.2.187

# arp -n -i eth0
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.2.4              ether   00:80:48:CD:46:90   C                     eth0
192.168.2.186                    (incomplete)                              eth0

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "ретический вопрос."  
Сообщение от Andrey Mitrofanov on 26-Дек-07, 18:27 
>Я не спец. по tcp/ip. Вот пришло в голову:

Умищу-то, умищу -- куда девать?! %)
>на 192.168.0.1 прописываем:
>route add -host 192.168.0.4 gw 192.168.0.2
>на 192.168.0.4 прописываем:
>route add -host 192.168.0.1 gw 192.168.0.3
>смогут ли общаться .1 и .4 между собой?

Трудно чесать правой пяткой за левым ухом? Главное незачем.
Man in the middle атаки (единственное, "пришедшее в голову" на тему "зачем") /должны/ делаться проще, мне почему-то кажется.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Роутинг. Теоретический вопрос."  
Сообщение от konst email(??) on 27-Дек-07, 00:13 
>>Я не спец. по tcp/ip. Вот пришло в голову:
>
>Умищу-то, умищу -- куда девать?! %)

Прошу прощения. У меня отключен CapsLock и я поленился блондинисто выделять второе слово сабжа. Следующий раз, не буду стесняться :)
>>на 192.168.0.1 прописываем:
>>route add -host 192.168.0.4 gw 192.168.0.2
>>на 192.168.0.4 прописываем:
>>route add -host 192.168.0.1 gw 192.168.0.3
>>смогут ли общаться .1 и .4 между собой?
>
>Трудно чесать правой пяткой за левым ухом? Главное незачем.
>Man in the middle атаки (единственное, "пришедшее в голову" на тему "зачем")
>/должны/ делаться проще, мне почему-то кажется.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру