вторник, 22 сентября 2009 г.

Зачем нужен "ip route Null0"?

Как известно, статические маршруты на интрефейс Null0 необходимы для избежание routing-loops, когда пакеты непрерывно форвардятся между 2-мя рутерами до тех пор, пока у них не закончится TTL.

Возникнуть такая ситуация может когда один из рутеров (А) использует выделенный блок (В) не полностью, а второй рутер (Б) форвардит этот блок целиком на первый (А). Петля возникает тогда, когда на первом рутере (А) второй (Б) указан как default gateway. В результате пакеты, приходящие на рутер (Б) адресованные на не задействованные адреса из блока (В) форвардятся на рутер (А) (где эти адреса не доступны через подключенные интерфейсы) и уходят с рутера (А) через default gateway (Б).

Для того, что-бы избежать такого рода петлю не поднимая на рутере (А) дополнительных интерфейсов и используются статические маршруты на Null0 интерфейс. К примеру для рутера (А) выделен блок адресов (В) 192.168.0.0/16, а на интерфейсах используются только две подсети 192.168.0.0/24 (В1) и 192.168.1.0/24 (В2). В таком случае необходимо прописать статический маршрут на весь блок (В) через Null0 интерфейс: ip route 192.168.0.0 255.255.0.0 Null0
В результате пакеты, адресованые для сетей (В1) и (В2) будут уходить через соответствующие интерфейсы (как more specific routes), пакеты для остальных адресов из блока (В) будут уходить на Null0 (discard interface), а остальные пакеты - на рутер (Б) (как default gateway).

Комментариев нет: