В процессе очередной сессии общения с @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!
Добавлено: