Страница 1 из 1

Отдельный тред.

Добавлено: 14 июн 2003, 17:07
TechNoir
Еще раз:
Допустим у тебя в сети две машины, каждая с одним интерфейсом.
У одной машины IP=192.168.1.1, а у другой IP=2xx.1xx.192.49.

С первой машины делаю ping 2xx.1xx.192.49.
Проходит широковещательный запрос: "У кого сетевой интерфейс с IP=2xx.1xx.192.49?". По идее откликается нужный интерфейс.
Все получается?
Или тут каким-то макаром маска подсети примешивается?

Или быть может комп с интерфейсом 192.168.1.1 берет свою маску 255.255.255.0, логически умножает на 192.168.1.1, получает 192.168.1, логически умножает на 2xx.1xx.192.49, получает 2xx.1xx.192. Теперь видит что это разные подсети и сразу же сообщает что заданный узел недоступен.

Так?

Если это действительно так, то я предполагаю что так поступает обычный хост.
То бишь до широковещательного запроса тут дело уже не доходит.

Пока все верно?

Предполагаю дальше что маршрутизатор действует по каким-то своим правилам. Ведь он может с сетевого интерфейса 192.168.1.1 доставить пакет 2xx.1xx.192.49 в сеть. А обычный хост не может. Ну по таким правилам он работает.

Маршрутизатор на особых правах спрашивает: "Кто тут 2xx.1xx.192.49?". Ему отвечают, потому что такие правила.

Схема может работать только потому что в сети маршрутизатор.

Все верно?

Re: Отдельный тред.

Добавлено: 14 июн 2003, 17:58
Llama
Boris FR писал(а):Еще раз:
С первой машины делаю ping 2xx.1xx.192.49.
Проходит широковещательный запрос: "У кого сетевой интерфейс с IP=2xx.1xx.192.49?". По идее откликается нужный интерфейс.
Все получается?
Или тут каким-то макаром маска подсети примешивается?
Вроде не так.
Сначало комп проскматривает свою локальную таблицу маршрутизации (она есть даже в галимых виндах 9x :) ) Там он ищет путь к заданному узлу (в интернете все работает немного подругому, но у тебя именно так - поиск пути - это определение, с какого сетевого интерфейса отправить пакет) - если узла не нашлось, то он смотрит аналогично для сети. Если сети тоже нет в таблице, пакет отправляется через тот интерфейс, к кторому подкючен компютер, указаный как шлюз по умолчанию (default gateway). Шлюз, получив этот пакет, смотрит, есть ли этот узел или сеть в его таблице маршрутизации. Если нет - то пакет отправляется вышестоящему шлюзу. При прохождении каждого шлюза, уменьшется TTL. Когда TTl кончается, покет отбрасывается, а отправителю посылается пакет icmp типа 3 - destination unreachable - и объяснением причины (network unreachable, host unreachable)

Boris FR писал(а): Если это действительно так, то я предполагаю что так поступает обычный хост.
То бишь до широковещательного запроса тут дело уже не доходит.

Пока все верно?
В ip-сетях ip-broadcast для определения адреса/пути/еще чего-то там не используется!
Если ip сделана поверх ethernet, то при необходимости отправить ip-пакет куда-то компьютер делает маршрутизацию - т.е. определяется, через какой интерфейс это сделать, затем просматривает apr-кэш на предмет соответсвия ip<->mac Если в кэше этого нет, то посылается широковещательный запрос на уровне ethernet. (не ip). Сервера, аналогичного wins, с которого можно звять пару ip-mac в природе не существует.
Boris FR писал(а): Предполагаю дальше что маршрутизатор действует по каким-то своим правилам. Ведь он может с сетевого интерфейса 192.168.1.1 доставить пакет 2xx.1xx.192.49 в сеть. А обычный хост не может. Ну по таким правилам он работает.
Обычный хост ВСЕ может. У него есть таблица маршрутизации. Все, что надо - это разрешить ядру ОС передавать пакеты между интерфейсами - см. в линуксе cat /proc/sys/net/ipv4/ip_forward - если у тебя там 0 - то твой комп это обычный хост, если 1 - то он может делать маршрутизацию.

Boris FR писал(а): Маршрутизатор на особых правах спрашивает: "Кто тут 2xx.1xx.192.49?". Ему отвечают, потому что такие правила.

Схема может работать только потому что в сети маршрутизатор.

Все верно?
Как я уже сказал, маршрутизатор от хоста отличается тем, что сколько в хост сетевых карточек не воткни - он между ними передавать пакеты не будет. А маршрутизатор будет. Естественно, есть специальные протоколы, по которым маршрутизаторы обмениваются между собой информацией о маршрутах, но это уже детали. Маршруты можно прописать и руками :)