Является ли шлюз всегда реальным компьютером или просто «логическим» объектом, который может находиться по любому адресу, кроме широковещательного IP-адреса?
Является ли шлюз всегда реальным компьютером или просто «логическим» объектом, который может находиться по любому адресу, кроме широковещательного IP-адреса?
Ответы:
Маршрут по умолчанию (он же адрес шлюза) должен принадлежать чему-то, что способно пересылать пакеты в остальную часть Интернета и которое готово это сделать. Это не обязательно должен быть «основной» IP-адрес того, кому он принадлежит (что бы это ни значило). Это может быть логический адрес, который перемещается между двумя или более устройствами, и в настройках высокой доступности это часто бывает.
Единственное требование для того, чтобы маршрутизация работала, состоит в том, что какое бы устройство в настоящее время не владело и не рекламировало адрес, это устройство может и будет маршрутизировать трафик.
IP-адресом шлюза может быть любой действительный IP-адрес хоста в подсети, т.е. не сам сетевой адрес или широковещательный адрес. Этот IP-адрес не обязательно должен принадлежать одному компьютеру или маршрутизатору, это может быть «плавающий» IP-адрес, используемый несколькими шлюзами. Проверьте статьи Википедии о HSRP , VRRP , GLBP или CARP .
Например, когда подсеть 172.16.23.0/25, тогда:
Шлюз должен быть любым из этих действительных адресов хоста, например, 172.16.23.65. Настройки вашего компьютера будут, например:
Теперь, добавив один из протоколов избыточности первого перехода, фактические шлюзы (маршрутизаторы) могут иметь IP-адреса 172.16.23.1 и 172.16.23.2, но использовать виртуальный IP-адрес 172.16.23.65, чтобы представить себя в качестве шлюза по умолчанию для подсети. ,
«Логическая сущность» в вашем использовании немного сбивает с толку. Но я постараюсь ответить на него как можно лучше.
По моему опыту, шлюз в конфигурации IP обычно является физическим устройством. Хотя это не обязательно должен быть компьютер в традиционном смысле (это также может быть и сетевое устройство), это должно быть устройство.
Как вы, возможно, знаете, цель, которую выполняет шлюз по умолчанию, состоит в том, чтобы выступать в качестве объекта переадресации для всех запросов, которые а.) Компьютер еще не имеет в своей таблице маршрутизации или имеет запись, инструктирующую систему перенаправить запрос в IP-адрес, который является шлюзом и / или b.) И находится за пределами широковещательного домена Шлюз по умолчанию никогда не используется в ситуациях, когда два хоста находятся в одном широковещательном домене (т. Е. Топология сети, созданная коммутатором), поскольку система может использовать широковещательный адрес подсети, чтобы найти MAC-адрес системы, владеющей конкретным IP-адресом.
Вкратце, чтобы ответить на ваш вопрос, технически вы можете установить шлюз по умолчанию в качестве любого IP-адреса в подключенной сети. Windows или большинство других операционных систем в этом отношении не остановят вас, потому что они часто не выполняют проверку данных TCP / IP. Если вы его настраиваете, скорее всего, вы достаточно технически подкованы, чтобы понять разницу. Однако, если это IP-адрес устройства, которое не может пересылать, то это приведет к ошибкам в приложениях, зависящих от маршрутизации (например, веб-браузер), поскольку устройство не будет подготовлено с таблицей маршрутизации или службой маршрутизации. переслать запрос.
Однако кто-то гораздо более опытный, чем я, сможет легко исправить меня, если я ошибаюсь.
TL; DR - физическое устройство, скорее всего.
Записи таблицы маршрутизации разрешают подсеть либо на шлюз, либо на сетевой адаптер.
Типичная таблица маршрутизации для устройства в частной сети может, если вы пропустите ненужные вещи, выглядеть
0.0.0.0/0 via 192.168.0.1
192.168.0.0/24 dev eth0
Наиболее конкретный маршрут выигрывает для каждого пункта назначения, поэтому маршрут подсети имеет приоритет над маршрутом по умолчанию для адресов в подсети.
Адрес шлюза, в свою очередь, разрешается с помощью таблицы маршрутизации, которая определяет сетевой интерфейс, которому он присвоен, а также адресацию на нижнем уровне.
Таким образом, для пакета 1.1.1.1
в пункт назначения ищется в таблице маршрутизации, возвращая маршрут по умолчанию, который имеет шлюз. Шлюз снова ищется, возвращая интерфейс Ethernet.
В Ethernet есть MAC-адреса, поэтому для адреса шлюза выполняется поиск ARP, а MAC-адрес шлюза используется для исходящего пакета (который все еще использует правильный адрес назначения в своем IP-заголовке).
Другие низкоуровневые транспорты работают по-другому, например, каналы PPP имеют «адрес одноранговой сети», поэтому маршрут их устройства использует сетевую маску / 32, и они пропускают разрешение ARP и просто отправляют пакеты как «широковещательные» по каналу PPP.
Некоторые стеки IP требуют ручного создания маршрута устройства, что делает это немного более очевидным:
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
route add default via 192.168.0.1