Когда я пингую внешний неизвестный IP-адрес, я вижу отправленный пакет ICMP с MAC-адресом шлюза по умолчанию в качестве пункта назначения, как и ожидалось. Однако IP-адрес шлюза нигде не используется - это просто тот единственный пакет, который, естественно, имеет внешний неизвестный IP-адрес в качестве пункта назначения.
Так почему мне (или DHCP) нужно настраивать IP-адрес шлюза по умолчанию на клиенте? Неужели нужно только запустить этот единственный запрос ARP, чтобы найти MAC-адрес шлюза?
Я знаю, что такое шлюз по умолчанию. Что меня удивляет, так это то, что шлюз по умолчанию всегда идентифицируется по IP-адресу, хотя на самом деле все, что вам действительно нужно, это его MAC-адрес. Насколько я знаю, вы можете построить работающий шлюз, который даже не иметь IP-адрес.
Когда создается запись в таблице маршрутизации, IP-адрес шлюза используется для решения, на каком сетевом интерфейсе должны быть отправлены пакеты. И после этого IP-адрес шлюза используется для ND или ARP, чтобы узнать MAC-адрес пункта назначения.
Есть и другие способы указать, для какого сетевого интерфейса используется запись в таблице маршрутизации. Так что использования IP-адреса для этого можно было бы избежать, если бы вы действительно этого хотели. В этом случае IP-адрес шлюза будет использоваться только для ND или ARP.
Это может показаться излишним, но помните, что каждый раз, когда вводится уровень косвенного обращения, это означает, что есть что-то, что можно изменить (более или менее динамически) для дополнительной гибкости. Сопоставление IP-адреса с MAC-адресом может измениться, например, если у вас есть резервные шлюзы.
Хотя обход шага ND / ARP возможен, большая часть программного обеспечения не поддерживает его напрямую. Причина, по которой он не поддерживается напрямую, заключается в том, что стандартный способ работы оказывается более полезным.
Если вы действительно хотите обойти этап ND / ARP, вы могли бы сделать это вручную, создав запись в кеше ND / ARP и используя ее. Это позволит вам использовать шлюз, зная только его MAC, а не IP-адрес, но это очень необычный сценарий.
MAC-адрес определяется для интерфейса. Если интерфейсная карта на маршрутизаторе шлюза по умолчанию заменяется или сам маршрутизатор изменяется, MAC-адрес изменяется.
Альтернативой может быть использование фиксированного MAC-адреса на шлюзе, то есть настройка того же MAC-адреса на интерфейсе нового оборудования. Однако, это не всегда возможно.
Поэтому использование только MAC-адреса для шлюза по умолчанию нецелесообразно, и поэтому используется IP-адрес.
Это также согласуется с разделением сетевого уровня OSI, где уровень 3 OSI всегда обрабатывает маршрутизацию, а уровень 3 имеет свои собственные механизмы адресации.