ARP, routers, order of resolving
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
ARP, routers, order of resolving
Как в точности все ресолвится?
1. Хост посылаетARP broadcast на своем сегменте для 192.168.0.8.
2. Если никто не найден, он лезет посмотреть у себя - кто gateway для етого аддресса.
3. Посылает broadcast для етого аддресса - gateway, правильно?
Ну и после етого как обычно.
или чтото не так?
1. Хост посылаетARP broadcast на своем сегменте для 192.168.0.8.
2. Если никто не найден, он лезет посмотреть у себя - кто gateway для етого аддресса.
3. Посылает broadcast для етого аддресса - gateway, правильно?
Ну и после етого как обычно.
или чтото не так?
Верить нельзя никому - даже себе. Мне - можно!
-
- Ник закрыт.
- Posts: 994
- Joined: 26 Aug 2003 16:14
- Location: Riga > Ottawa > Hartford
Re: ARP, routers, order of resolving
A. Fig Lee wrote:Как в точности все ресолвится?
1. Хост посылаетARP broadcast на своем сегменте для 192.168.0.8.
2. Если никто не найден, он лезет посмотреть у себя - кто gateway для етого аддресса.
3. Посылает broadcast для етого аддресса - gateway, правильно?
Ну и после етого как обычно.
или чтото не так?
Нее, если никто не найден, никто уже никуда не лезет.
Потому как:
Сначала принимается routing decision
Потом просходит ARP resolution
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: ARP, routers, order of resolving
A. Fig Lee wrote:Как в точности все ресолвится?
1. Хост посылаетARP broadcast на своем сегменте для 192.168.0.8.
2. Если никто не найден, он лезет посмотреть у себя - кто gateway для етого аддресса.
3. Посылает broadcast для етого аддресса - gateway, правильно?
Ну и после етого как обычно.
или чтото не так?
Может я ошибаюсь, но мне казалось, что source host сам определяет по subnet mask есть ли destination IP address в его окружении или надо слать пакеты на gateway. Если получается, что нет, то тогда хост шлет ARP broadcast уже на IP адрес gateway, чтобы потом отослать пакеты туда....
Сабина
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: ARP, routers, order of resolving
Sabina wrote:A. Fig Lee wrote:Как в точности все ресолвится?
1. Хост посылаетARP broadcast на своем сегменте для 192.168.0.8.
2. Если никто не найден, он лезет посмотреть у себя - кто gateway для етого аддресса.
3. Посылает broadcast для етого аддресса - gateway, правильно?
Ну и после етого как обычно.
или чтото не так?
Может я ошибаюсь, но мне казалось, что source host сам определяет по subnet mask есть ли destination IP address в его окружении или надо слать пакеты на gateway. Если получается, что нет, то тогда хост шлет ARP broadcast уже на IP адрес gateway, чтобы потом отослать пакеты туда....
Сабина
Да, похоже идея Ваша с КУКАНом правильная.
Теоретически правда, по сабнетмаск не определишь на каком сегменте находится, но смысл такой - что если сабнет своя - броадкаст с етим ИП, иначе броадкаст с ИП гейтвея.
Спасибо, братцы.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
Re: ARP, routers, order of resolving
Sabina wrote:Может я ошибаюсь, но мне казалось, что source host сам определяет по subnet mask есть ли destination IP address в его окружении или надо слать пакеты на gateway. Если получается, что нет, то тогда хост шлет ARP broadcast уже на IP адрес gateway, чтобы потом отослать пакеты туда....
Сабина
Сабина, вы меня просто поражаете своей эрудицией
Вы правы
Первым делом определяется роутинг. По таблице маршрутизации находится запись с наибольшим количеством совпавших битов в маске. Default routing совпадет всегда если не найдено ничего более подходящего. После этого читаются флаги найденой записи для того что бы определить что это, роутер или локальная сеть где находится destination.
Далее, что бы отправить пакет на адресату определенному на предыдущем шаге надо узнать его MAC (Media Access Controller) адрес. Для этого посылается broadcast ARP (Address Resolution Protocol) request "Who knows MAC for <destiantion ID> reply to <my MAC>". Адресат услышав свой адрес в таком запросе дает ответ, который кешируется передающей машиной, после чего передатчик направляет пакет в сетевую карту которая на аппаратном уровне реализует передачу.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
Re: ARP, routers, order of resolving
A. Fig Lee wrote:Да, похоже идея Ваша с КУКАНом правильная.
Теоретически правда, по сабнетмаск не определишь на каком сегменте находится, но смысл такой - что если сабнет своя - броадкаст с етим ИП, иначе броадкаст с ИП гейтвея.
Спасибо, братцы. :gen1:
Теплее но не совсем верно
Gateway/host in local segment определяется флагом в записи в таблице роутинга
Когда подымается интерфейс он прописывает в таблице роутинга запись что он обрабатывает пакеты с маской которая дана этому интерфейсу
А когда ты добавляешь роутинг ручками AKA static routing то команда route add ... добавит запись в таблицу роутинга и пометит ее флагом GATEWAY.
Благодаря этому можно делать интересные фокусы, например
===========================================
> netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 67.xxx.xxx.xxx UGS 0 9442 sis0
67.xxx.xxx.xxx/25 link#1 UC 0 0 sis0
67.xxx.xxx.xxx 00:05:00:e3:67:8c UHLW 1 0 sis0 1034
67.xxx.xxx.xxx 127.0.0.1 UGHS 0 0 lo0
^^^^^^^^^^^ ^^^^^^^
=================================================
В последней строчке если ты пингуешь или коннектишся на свой собственный IP то все зароутится на localhost! Причем localhost будет выступать в качестве роутера для собственной машины (falg G) :)
P.S.
Пример дан для FreeBSD
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: ARP, routers, order of resolving
Strannik223 wrote:А когда ты добавляешь роутинг ручками AKA static routing то команда route add ... добавит запись в таблицу роутинга и пометит ее флагом GATEWAY.
AFAIU, для Линуха - ето не так. Ему если не скажешь в
route add
что ето гатеваы - до лампочки значения - значит не будет гейтвеем.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
Re: ARP, routers, order of resolving
A. Fig Lee wrote:Strannik223 wrote:А когда ты добавляешь роутинг ручками AKA static routing то команда route add ... добавит запись в таблицу роутинга и пометит ее флагом GATEWAY.
AFAIU, для Линуха - ето не так. Ему если не скажешь в
route add
что ето гатеваы - до лампочки значения - значит не будет гейтвеем.
:pain1:
Да, на фре то же надо сказать какой тип добавляешь
Но это уже ньюансы
Загвоздка в том что найдя запись в таблице роутинга без информации о флагах непонятно как интерпретировать данные: то ли это номер интерфейса на котором кричать надо то ли MAC то ли gateway IP. То есть просто по IP&mask невозможно определить что дальше делать.
-
- Уже с Приветом
- Posts: 119
- Joined: 17 Apr 2001 09:01
- Location: moscow.ru
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
constm wrote:а в нашей локалке защита с привязкой к MAC-адресу. (т.е. я не могу сменить Ethernet карточку). думаю, в данном случае ARP broadcast организован как-то по-другому. (по идее, если жесткая привязка, то broadcast заменяется просмотром AR таблицы.)
Да, есть возможность "жестко" прописать на сервере ARP таблицу но это детская защита. Достаточно убедиться что хост под который хочеться подделаться выключен и можно смело назначать себе его MAC
Я не уверен практикуется ли такое но думаю что возможно прописывать MAC-и на свичах, тогда уже не обойдешь
-
- Уже с Приветом
- Posts: 13316
- Joined: 13 Jun 1999 09:01
- Location: Yekaterinburg -> Montreal
constm wrote:а в нашей локалке защита с привязкой к MAC-адресу. (т.е. я не могу сменить Ethernet карточку). думаю, в данном случае ARP broadcast организован как-то по-другому. (по идее, если жесткая привязка, то broadcast заменяется просмотром AR таблицы.)
broadcast - особенность протокола арп от которой никуда не деться.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
А вот еще проблемка.
Ситуация такая:
Red Hat 9
Слева подсетка посредине гейтвей.
Как правильно сконфигурить средний компьютер в раутер мод?
Имелось на гейтвей:
все proxy_arp=0
ip_forwarding=1
Чтото еще надо?
Пинги с 192.168.0.20 до 192.168.0.25 не проходили.
До 192.168.0.10 с любого компьютера подсетки шли.
Посмотрел tcpdump - странное дело - .25 спрашивает MAC .20-go
на .10-м интерфейсе, а .10 молчит как рыба - ни внутрь сетки не передает запрос,
ни свой не говорит инстед. Интересно что на внутренней сетке для запросов наружу он всем подставляет MAC .11-го, то есть вроде правильно - етот интерфейс в раутер моде.
Ну вобщем я поставил
proxy_arp=1 для .10-го
Пинги с .20-го до .25-го пошли
Онако, никакой другой компьютер с подсетки пинговать .25 не смог.
арп на внутрисеточных компьютерах чистилось регулярно, и гейтвеем на них
.10
Только когда я добавил proxy_arp=1
для all - все остальные заработали.
1)Почему так - что такое алл?
2).10 я так понимаю в бридге моде?
А как сделать раутинг мод, без бриджа?
[/code]
Ситуация такая:
Red Hat 9
Code: Select all
192.168.0.20------192.168.0.11+192.168.0.10-----192.168.0.25+INTERNET
|
192.168.0.30--|
|
192.168.0.40--|
Слева подсетка посредине гейтвей.
Как правильно сконфигурить средний компьютер в раутер мод?
Имелось на гейтвей:
все proxy_arp=0
ip_forwarding=1
Чтото еще надо?
Пинги с 192.168.0.20 до 192.168.0.25 не проходили.
До 192.168.0.10 с любого компьютера подсетки шли.
Посмотрел tcpdump - странное дело - .25 спрашивает MAC .20-go
на .10-м интерфейсе, а .10 молчит как рыба - ни внутрь сетки не передает запрос,
ни свой не говорит инстед. Интересно что на внутренней сетке для запросов наружу он всем подставляет MAC .11-го, то есть вроде правильно - етот интерфейс в раутер моде.
Ну вобщем я поставил
proxy_arp=1 для .10-го
Пинги с .20-го до .25-го пошли
Онако, никакой другой компьютер с подсетки пинговать .25 не смог.
арп на внутрисеточных компьютерах чистилось регулярно, и гейтвеем на них
.10
Только когда я добавил proxy_arp=1
для all - все остальные заработали.
1)Почему так - что такое алл?
2).10 я так понимаю в бридге моде?
А как сделать раутинг мод, без бриджа?
[/code]
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
A. Fig Lee wrote:А вот еще проблемка.
Ситуация такая:
Red Hat 9Code: Select all
192.168.0.20------192.168.0.11+192.168.0.10-----192.168.0.25+INTERNET
|
192.168.0.30--|
|
192.168.0.40--|
Слева подсетка посредине гейтвей.
Как правильно сконфигурить средний компьютер в раутер мод?
Имелось на гейтвей:
все proxy_arp=0
ip_forwarding=1
Чтото еще надо?
Пинги с 192.168.0.20 до 192.168.0.25 не проходили.
До 192.168.0.10 с любого компьютера подсетки шли.
Посмотрел tcpdump - странное дело - .25 спрашивает MAC .20-go
на .10-м интерфейсе, а .10 молчит как рыба - ни внутрь сетки не передает запрос,
ни свой не говорит инстед. Интересно что на внутренней сетке для запросов наружу он всем подставляет MAC .11-го, то есть вроде правильно - етот интерфейс в раутер моде.
Ну вобщем я поставил
proxy_arp=1 для .10-го
Пинги с .20-го до .25-го пошли
Онако, никакой другой компьютер с подсетки пинговать .25 не смог.
арп на внутрисеточных компьютерах чистилось регулярно, и гейтвеем на них
.10
Только когда я добавил proxy_arp=1
для all - все остальные заработали.
1)Почему так - что такое алл?
2).10 я так понимаю в бридге моде?
А как сделать раутинг мод, без бриджа?
[/code]
Мне неохота лезть, ковырятся и смотреть маски, но на первый взгляд Ваши сетки неправильно разбиты на подсети.
В качестве хака можно посоветовать для компьютеров левой сети (20,30,40) прописать для каждого свою запись в таблице роутинга на среднем компьютере.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
f_evgeny wrote:A. Fig Lee wrote:А вот еще проблемка.
Ситуация такая:
Red Hat 9Code: Select all
192.168.0.20------192.168.0.11+192.168.0.10-----192.168.0.25+INTERNET
|
192.168.0.30--|
|
192.168.0.40--|
Слева подсетка посредине гейтвей.
Как правильно сконфигурить средний компьютер в раутер мод?
Имелось на гейтвей:
все proxy_arp=0
ip_forwarding=1
Чтото еще надо?
Пинги с 192.168.0.20 до 192.168.0.25 не проходили.
До 192.168.0.10 с любого компьютера подсетки шли.
Посмотрел tcpdump - странное дело - .25 спрашивает MAC .20-go
на .10-м интерфейсе, а .10 молчит как рыба - ни внутрь сетки не передает запрос,
ни свой не говорит инстед. Интересно что на внутренней сетке для запросов наружу он всем подставляет MAC .11-го, то есть вроде правильно - етот интерфейс в раутер моде.
Ну вобщем я поставил
proxy_arp=1 для .10-го
Пинги с .20-го до .25-го пошли
Онако, никакой другой компьютер с подсетки пинговать .25 не смог.
арп на внутрисеточных компьютерах чистилось регулярно, и гейтвеем на них
.10
Только когда я добавил proxy_arp=1
для all - все остальные заработали.
1)Почему так - что такое алл?
2).10 я так понимаю в бридге моде?
А как сделать раутинг мод, без бриджа?
[/code]
Мне неохота лезть, ковырятся и смотреть маски, но на первый взгляд Ваши сетки неправильно разбиты на подсети.
В качестве хака можно посоветовать для компьютеров левой сети (20,30,40) прописать для каждого свою запись в таблице роутинга на среднем компьютере.
Зачем прописывать? Со среднего компьютера пингуется ВСЕ!
С любого интерфейса. Не думаю, что тут с масками проблема.
192.168.0.25 - не наш компьютер, компьютер провайдера.
Маски на всех компьютерах 255.255.255.0
Роутинг тейбл на среднем :
192.168.0.25 255.255.255.255 UH eth0
192.168.0.0 255.255.255.0 U eth1
default 192.168.0.25 UG eth0
Last edited by A. Fig Lee on 30 Jan 2004 16:35, edited 1 time in total.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Кажись, дошло.
Так как .25-ка ничего не знает, что там раутер посредине - он думает что находится на том же сегменте, поетому посылает АРП для .20-го.
Получается надо делать бридге етого интерфейса (.10) или подправить .25-ку указать что там .10-ка - ето гейтвей для етой сабнет. Так как доступа к .25 нет - надо делать бридге .10ки.
А что такое
/proc/sys/net/ipv4/all/proxy_arp ?
На чем оно отражается?
Почему когда апдейтишь только для
.10(етх0) - срабатывает только один компьютер?
Или ето была случайность и он вообще не должен был срабатывать?
Так как .25-ка ничего не знает, что там раутер посредине - он думает что находится на том же сегменте, поетому посылает АРП для .20-го.
Получается надо делать бридге етого интерфейса (.10) или подправить .25-ку указать что там .10-ка - ето гейтвей для етой сабнет. Так как доступа к .25 нет - надо делать бридге .10ки.
А что такое
/proc/sys/net/ipv4/all/proxy_arp ?
На чем оно отражается?
Почему когда апдейтишь только для
.10(етх0) - срабатывает только один компьютер?
Или ето была случайность и он вообще не должен был срабатывать?
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
A. Fig Lee wrote:Кажись, дошло.
Так как .25-ка ничего не знает, что там раутер посредине - он думает что находится на том же сегменте, поетому посылает АРП для .20-го.
Получается надо делать бридге етого интерфейса (.10) или подправить .25-ку указать что там .10-ка - ето гейтвей для етой сабнет. Так как доступа к .25 нет - надо делать бридге .10ки.
А еще можно забацать маскарадинг для левой сетки.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
f_evgeny wrote:A. Fig Lee wrote:Кажись, дошло.
Так как .25-ка ничего не знает, что там раутер посредине - он думает что находится на том же сегменте, поетому посылает АРП для .20-го.
Получается надо делать бридге етого интерфейса (.10) или подправить .25-ку указать что там .10-ка - ето гейтвей для етой сабнет. Так как доступа к .25 нет - надо делать бридге .10ки.
А еще можно забацать маскарадинг для левой сетки.
ась?
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
A. Fig Lee wrote:
Зачем прописывать? Со среднего компьютера пингуется ВСЕ!
С любого интерфейса. Не думаю, что тут с масками проблема.
192.168.0.25 - не наш компьютер, компьютер провайдера.
Маски на всех компьютерах 255.255.255.0
Роутинг тейбл на среднем :
192.168.0.25 255.255.255.255 UH eth0
192.168.0.0 255.255.255.0 U eth1
default 192.168.0.25 UG eth0[/quote]
Как уже было сказано сеть разбита неправильно
У вас получается одна IP сеть а физически их несколько
По-хорошему надо бы каждой физической сети сделать свою IP сеть А сейчас машины находящиеся на краях сети пытаются найти машины на другом крае в своей физической подсети так как вы ввели их в заблуждение неправильной маской
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
A. Fig Lee wrote:f_evgeny wrote:А еще можно забацать маскарадинг для левой сетки.
ась?
По БСД-шному - NAT.
В левой сети gateway будет 192.168.0.11
Средний компьютер будет транслировать пакеты таким образом, что справа они будут иметь исходящий IP 192.168.0.10 а обратные пакеты передавать обратно на хосты, которые надо.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
f_evgeny wrote:A. Fig Lee wrote:f_evgeny wrote:А еще можно забацать маскарадинг для левой сетки.
ась?
По БСД-шному - NAT.
В левой сети gateway будет 192.168.0.11
Средний компьютер будет транслировать пакеты таким образом, что справа они будут иметь исходящий IP 192.168.0.10 а обратные пакеты передавать обратно на хосты, которые надо.
Не годится!
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
A. Fig Lee wrote:f_evgeny wrote:A. Fig Lee wrote:f_evgeny wrote:А еще можно забацать маскарадинг для левой сетки.
ась?
По БСД-шному - NAT.
В левой сети gateway будет 192.168.0.11
Средний компьютер будет транслировать пакеты таким образом, что справа они будут иметь исходящий IP 192.168.0.10 а обратные пакеты передавать обратно на хосты, которые надо.
Не годится!
?
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
f_evgeny wrote:A. Fig Lee wrote:f_evgeny wrote:A. Fig Lee wrote:f_evgeny wrote:А еще можно забацать маскарадинг для левой сетки.
ась?
По БСД-шному - NAT.
В левой сети gateway будет 192.168.0.11
Средний компьютер будет транслировать пакеты таким образом, что справа они будут иметь исходящий IP 192.168.0.10 а обратные пакеты передавать обратно на хосты, которые надо.
Не годится!
?
Ну скажем, когда ньюс сервер допускает по ИП - как быть если ИП у всех одинаковый?
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
A. Fig Lee wrote:А что такое
/proc/sys/net/ipv4/all/proxy_arp ?
На чем оно отражается?
Почему когда апдейтишь только для
.10(етх0) - срабатывает только один компьютер?
Или ето была случайность и он вообще не должен был срабатывать?
Может пригодиться или наведет на нужную мысль:
Тред с http://www.ussg.iu.edu/hypermail/linux/kernel/0004.2/0573.html
Q: We did the following for using proxy-arp in a machine
1. Set /proc/sys/net/ipv4/conf/*/proxy_arp to 1 ( using echo )
2. published arp entry for w.x.y.z ( using the command
arp -H ether -i eth0 -Ds w.x.y.z eth0 pub
The system responds for arp request for this address. But also responds
for other unpublished addresses
We tried with RedHat6.0 system on a pentium with two NE2000 compatible
cards.
A:That's because of step 1. Setting "/proc/sys/net/ipv4/conf/<if>/proxy_arp"
to 1 causes the system to answer any ARP requests which:
1. are received on the corresponding interface, and
2. are for an IP address to which the system has a route via a
different interface.
Basically, you want to use either step 1 or 2, but probably not both.
Ну и тут еще http://tldp.org/HOWTO/Proxy-ARP-Subnet/index.html
отсюда http://tldp.org/HOWTO/Proxy-ARP-Subnet/why.html
....In my case, getting a new subnet (network) number was not an option, so I wanted a solution that allowed all the machines on network 0* to appear as if they were on network 1**. This is where Proxy ARP comes in.
* - сеть внутри сабнета
** - сеть снаружи
Сабина
Last edited by Sabina on 30 Jan 2004 23:13, edited 1 time in total.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония