Шлюз по умолчанию в другой подсети

В процессе очередной сессии общения с @hellt_ru по поводу одного из его проектов встал вопрос правомерности существования шлюза по умолчанию в другой подсети. Резкое и категоричное “НЕТ, ГРЕШНО” плавненько сменилось на “oh, snap”.

Изучение RFC (в частности 1122) выявило следующие забавные факты:

  • Хост обязан передавать пакеты напрямую если адрес назначения находится в той же подсети.
  • Хост обязан передавать пакеты шлюзу по умолчанию, если адрес назначения находится в иной подсети.
  • Но нигде не сказано, что шлюз по умолчанию должен находится в той же подсети. Достаточно, чтобы эта сеть была connected :)

Так и получается:

R1#ping 10.1.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max = 40/45/56 ms

R1 рассылает на широковещательный адрес запрос о том, есть ли в connected сети 192.168.0.140. R2 отвечает ему – “да, это я, вот мой mac”. Больше этих ребят ничего не интересует:

All hail ARP!

Добавлено:

Read more