Назад | Перейти на главную страницу

Должен ли шлюз подсети быть «настоящим» компьютером?

Всегда ли шлюз - это настоящий компьютер или просто «логическая» сущность, которая может находиться на любом адресе, кроме широковещательного IP?

Маршрут по умолчанию (он же адрес шлюза) должен принадлежать тому, что может пересылать пакеты в остальную часть Интернета и которое желает это делать. Это не обязательно должен быть «основной» IP-адрес того, кому он принадлежит (что бы это ни значило). Это может быть логический адрес, который перемещается между двумя или более устройствами, что часто бывает в установках высокой доступности.

Единственное требование, чтобы маршрутизация работала, - это то, что какое бы устройство в настоящее время ни владеет адресом, ни объявляет его, это устройство может и будет маршрутизировать трафик.

IP-адрес шлюза может быть любым действительным IP-адресом хоста в подсети, то есть не самим сетевым адресом или широковещательным адресом. Этот IP-адрес не обязательно должен принадлежать одному компьютеру или маршрутизатору, это может быть «плавающий» IP-адрес, используемый несколькими шлюзами. Ознакомьтесь со статьями Википедии о HSRP, VRRP, GLBP, или Карп.

Например, если подсеть 172.16.23.0/25, тогда:

  • в сеть адрес 172.16.23.0,
  • в трансляция адрес 172.16.23.127, а
  • диапазон действительных хозяин адреса с 172.16.23.1 по 172.16.23.126 включительно.

Шлюз должен быть любым из этих допустимых адресов хоста, например 172.16.23.65. Тогда настройки вашего компьютера будут такими, например:

  • IP-адрес: 172.16.23.5
  • Маска подсети: 255.255.255.128
  • Шлюз по умолчанию: 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