Насколько я понимаю, таблица переадресации IP состоит в том, что у них есть список различных сетей (идентифицируемых по диапазонам IP-адресов), и они подключаются к маршрутизатору следующего перехода. Однако меня удивляет, почему две записи в этом списке имеют перекрывающиеся IP-адреса. Например, таблица пересылки в маршрутизаторе может выглядеть так:
192.24.0.0/18 D
192.24.12.0/22 B
В таблице выше адреса из 192.24.12.0
к 192.24.15.255
перекрываются, т.е. совпадают с обеими записями таблицы.
Я знаю, что есть способы решить эту проблему, но мой вопрос в том, почему перекрывающиеся адреса вообще появляются в таблице IP-адресов? Почему маршрутизатор должен поддерживать две разные возможности маршрутизации для одного и того же адреса?
Это довольно распространено (на самом деле повсеместно), и именно так и разработан IPV4 (и 6).
«Маршрут по умолчанию» - это не что иное, как последний путь, равный 0.0.0.0/0.
Наличие более конкретных подсетей обеспечивает более гибкую маршрутизацию и, что важно, уменьшает количество необходимых записей в таблице маршрутизации - хотя в небольших системах это не имеет большого значения, более крупные маршрутизаторы часто получают выгоду от такой оптимизации.
Точно так же он позволяет откатиться без развертывания динамической маршрутизации. Один пример - если есть быстрая, но нестабильная ссылка, по которой интерфейс переключается вверх и вниз (например, PPP-ссылка) к интересующему сайту, и более медленная, более общая ссылка, использование подсетей может позволить переключение при отказе и обратный ход почти незаметно.
Другой пример - форсирование более конкретного маршрута - например, реклама 0.0.0.0/1 и 128.0.0.0/1 через VPN будет иметь чистый эффект маршрута по умолчанию независимо от показателей, установленных для маршрута по умолчанию.
Короче говоря, потому что так разработан протокол, и это дает гибкость в маршрутизации простым способом (как для реализации, так и от программирования системы для маршрутизации пакетов)