LINUX.ORG.RU
ФорумAdmin

Указывается ли адрес маршрутизатора в IP пакете?

 , , , ,


0

1

Заранее извиняюсь за глупый вопрос, но не смог нагуглить.

В каком поле указывается адрес маршрутизатора локальной в IP-пакете перед отправкой пакета ему для переотправки далее (удалённому хосту за пределами сети)? Получается, что в IP+Ethernet пакете должны быть данные:
1. MAC адрес клиента.
2. MAC адрес маршрутизатора.
3. IP адрес маршрутизатора.
4. IP адрес клиента.
5. IP адрес удаленного хоста.

Но про существование третьего пункта я ничего не нашел. Сдаётся, что клиент просто срёт на MAC-адрес маршрутизатора IP пакетов с IP удаленного хоста, а маршрутизатор должен сам понять, что это не ему лично отправили (не соответствует его IP на его интерфейсе) и перенаправить далее.

Но такой метод получается весьма костыльным. Мало того, невозможно дать маршрутизатору, скажем, IP 192.168.1.2 и 192.168.1.1, и, в зависимости от того, на какой IP пошлёт клиент, маршрутизировать пакет через разные сети (или по разным цепочкам iptables). Для этого нужно иметь два разных (возможно симулированных) mac (или две разные ip подсети, чтобы по IP клиенту делать вывод, к какому из виртуальных маршрутизаторов он обращается).

Прокомментируйте пожалуйста.

P.S. Спасибо за ответы. Не пинайте сильно.

1. MAC адрес клиента.

2. MAC адрес маршрутизатора.

3. IP адрес маршрутизатора.

4. IP адрес клиента.

5. IP адрес удаленного хоста.

visual ★★★ ()

В IP-пакете указываются только IP адреса источника и получателя. MAC-и к нему отношения не имеют, это другой уровень.

at ★★ ()
Ответ на: комментарий от at

Т.е. всё, что я описал во второй части своего сообщения верно?

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от ktulhu666

Да. Я бы поставил две сетевухи, хотя костыль еще тот.

at ★★ ()
Ответ на: комментарий от at

Ну я об этом и писал :) Ещё можно две подсети или через модуль ведра сделать симуляцию второй сетевухи с другим mac (реальная будет переключена в неразборчивый режим).

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от ktulhu666

Ещё можно две подсети

Тогда эти подсети будут общаться между собой через сервер, что не всегда нужно.

через модуль ведра сделать симуляцию второй сетевухи

ИМХО более сложное решение всегда менее надежное

at ★★ ()

Запомни простое правило - IP-адрес это свойство ХОСТА, и формально IP-адрес никак не привязан к интерфейсу, ВООБЩЕ. Привязка IP к интерфейсу в современных ОС используется только для упрощения конфигурации.

Маршрутизатор это очень специфическая сущность, и оперирует он маршрутами. Маршрут привязан к интерфейсу, а не к IP-адресу.

Поэтому любая попытка привязаться к IP-адресу кроме IP-адреса источника и получателя, по определению является черзжопной и кривой, а её (идеи) автор должен быть послан в ближайший колхоз для уборки картошки :-)

no-dashi ★★★★★ ()

чтобы по IP клиенту делать вывод, к какому из виртуальных маршрутизаторов он обращается

«виртуальный маршрутизатор» это устройство, а каждое устройство должно иметь свой уникальный адрес на каждом уровне на котором оно работает :-) Так что выкинь эту бредовую идею и займись делом :-)

no-dashi ★★★★★ ()

традиционно ты начал не с постановки задачи, а с описания своего понимания как эту задачу надо решать.молодец, чо

zolden ★★★★★ ()

У ip-пакета есть опции (в теории), в одной из опций может быть указана цепочка маршрутизаторов, по которым он должен идти (source routing). Но это нигде сейчас не используется, потому что плохо. Это так, мне поумничать захотелось.

У вас задача то практическая или просто интерестно?

mky ★★★★★ ()
Ответ на: комментарий от zolden

У меня большая часть вопросов теоретическая. Поэтому я описываю механизм (и вариации) работы и прошу исправить ошибки. Это связано с тем, что часто у меня возникают сомнения по поводу понимания действия какого-либо механизма взаимодействия.

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от mky

просто интересно (без «т»)

на практике у меня все маршрутизаторы дома - отдельные физически устройства.

ktulhu666 ☆☆☆ ()

Сдаётся, что клиент просто срёт на MAC-адрес маршрутизатора IP пакетов с IP удаленного хоста, а маршрутизатор должен сам понять, что это не ему лично отправили (не соответствует его IP на его интерфейсе) и перенаправить далее.

именно

redixin ★★★★ ()

(или две разные ip подсети, чтобы по IP клиенту делать вывод, к какому из виртуальных маршрутизаторов он обращается)

такой вариант более-менее ок

Прокомментируйте пожалуйста.

обычно таких извратов не делают, поэтому не нужно

redixin ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.