Цитата SergOst:
В каком случае пакет пойдет по нулевому адресу? Может такого случая и нет. »
|
"нулевой адрес" 0.0.0.0 - означает любую сеть. Т.е. если сеть вам не известна (нет её в таблие маршрутизации), то эта сеть попадёт под этот "нулевой адрес", клюз к которой известен - шлюз
по умолчанию. Если несколько шлюзов
по умолчанию - то пакет пойдёт по тому, у которого метрика меньше.
Цитата SergOst:
Если приходит пакет-запрос или локального пользователя »
|
локальных можете не рассматривать, т.к. в полноценной сети все маршруты к локальным компьютерам знают свитчи и в таблице маршрутизации есть запись вида:
Код:

Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
192.168.0.0 255.255.255.0 192.168.0.50 192.168.0.50 20
"читается" так: пакеты в сеть 192.168.0.0/24 "пускать" через интерфес 192.168.0.50 на шлюз 192.168.0.50, где 192.168.0.50 - ваш собственный IP. Т.е. пакет уходит из интерфеса, доходит до свитча, где указано к какому порту подключен компьютер-получатель. Откуда свитч это узнал? всё просто - есть протоколы маршрутизации RIP, OSPF, BGP - они строют таблицы маршрутизации.
Т.к. у вас три частных сети - таких записей будет три - разными IP соответсвенно.
Цитата SergOst:
Локальные пользователи через сервер в Интернет не ходят. И все работает без всяких нулевых адресов. »
|
дайте команду
route print (для Windows) с любого компьютера и увидите, что "нулевая сеть" есть у всех без исключения.
В том числе и на всех маршрутизаторах, кем бы они не были: сервера или железки.
Цитата SergOst:
Если приходит пакет-запрос от интернет-пользователя, то он должен получить ответ через тот же шлюз, а не гадать (при убранном шлюзе), куда уйти. »
|
вот при убранном шлюзе
по умолчанию, он и будет гадать. т.к. ему некуда идти. я специально выделяю слово "по умолчанию". Т.к. шлюз и шлюз по умолчанию - разные вещи.
Шлюз - это куда посылать все "известные" пакеты, а по шлюзу по умолчанию - все неизвестные.
Ответ клиент из интернета может получить откуда угодно. Маршрут приходящего пакета от пользователя и маршрут пакета возвращённого к пользователю - могут не совпадать. Это описанно в работе протоколов маршрутизации.
Т.е. у пакета в любом направлении всегда есть несколько маршрутов.
К примеру: сделаем tracert (для Windows) сайта
www.ru.
Код:

C:\Documents and Settings\alex>tracert www.ru
Трассировка маршрута к www.ru [194.87.0.50]
с максимальным числом прыжков 30:
1 1 ms <1 мс <1 мс 10.183.0.1
2 <1 мс <1 мс <1 мс 213.85.211.97
3 1 ms 1 ms 1 ms 213.85.208.133
4 1 ms 1 ms 1 ms 213.85.208.129
5 1 ms 1 ms 1 ms 213.85.208.250
6 2 ms 2 ms 2 ms RT504-001.retn.net [193.232.244.187]
7 2 ms 2 ms 2 ms GW-Demos.retn.net [87.245.253.10]
8 3 ms 3 ms 3 ms iki-c1-vl10.demos.net [194.87.0.111]
9 3 ms 2 ms 2 ms www.ru [194.87.0.50]
Трассировка завершена.
видно от меня до
www.ru 9 маршрутизаторов.
Представим, что один из них вышел из строя. Но я же должен как-то получить доступ к сайту.
На всех маршрутизаторах, с которыми "общается" вышедший из строя маршрутизатор, через некоторое время "забудется" маршрут к нему. И пакеты на него не пойдут, пойдут на другие маршрутизаторы и т.д. и в итоге трасерт снова дойдёт.
SergOst, было бы хорошо, если бы вы нарисовали свою топологию сети и показали нам.
Цитата SergOst:
В каком случае пакет пойдет по нулевому адресу? Может такого случая и нет. »
|
добалю: если IP назначения никогда не был в таблице маршрутизации, то этот IP попадает в диапазон 0.0.0.0/0 - т.е. любой IP.