1

Я в локальной сети 192.168.180.1. Однако я хочу настроить веб-сервер (Windows/Linux) с IP 169.254.1.0 в моей локальной сети

Я могу установить статический IP-адрес для сервера в 169.254.1.0, но я не думаю, что возможно маршрутизировать к нему от устройства, которое находится на 192.168.180.1. Поэтому установка шлюза по умолчанию 192.168.180.1 для 169.254.1.0 не имеет смысла.

Могу ли я что-нибудь сделать или это невозможно сделать? Любая помощь будет по достоинству оценена.

Благодарю.

3 ответа3

3

169.254.xx /16 - это то, что IETF называет локальной сетью IPv4 Link-Local ("APIPA" - это собственный жаргон Microsoft). Если IP-стеки ваших устройств соответствуют рекомендациям IETF ZeroConf, то они должны рассматривать эту подсеть как локальную подсеть, даже если у них нет IP-адреса в этой подсети. Так что то, что вы рассматриваете, должно просто работать, никаких специальных настроек не требуется.

Вопреки некоторым комментариям, 169.254.1.0 НЕ является сетевым адресом для этой подсети, потому что это подсеть /16 (маска подсети 255.255.0.0), а не /24 (255.255.255.0).

В идеале, если вам нужен статический IP-адрес в этой подсети, он должен иметь ноль или 255 в третьем октете (169.254.0.x или 169.254.255.x), поскольку с 169.254.1.0 по 168.254.254.255 зарезервированы для автоматического назначение, а не ручное назначение.

См. RFC 3927 для получения дополнительной информации.

1

Единственный способ, который приходит мне в голову - это добавить статический маршрут в ваш роутер.

Например, вы можете определить, что IP 169.254.1.0 с netmask /32 (255.255.255.255) внутри интерфейса LAN должен использовать шлюз 192.168.180.100 (при условии, что это сервер, на котором находится веб-сервер).

Как утверждает Спифф, это может не сработать, если ваш маршрутизатор соблюдает раздел 2.6.2 RFC, поскольку это будет адрес CIDR, который не следует пересылать. Однако я только что проверил это дома, используя маршрутизатор TP-Link TD-W8970, и он действительно работает, пакеты перенаправляются с IP-адресом назначения (169.254.1.0), не затронутым в заголовке.

1

Возможно. Вы можете использовать шлюз вне подсети; в то время как довольно необычно, я видел несколько сетей, делающих это.

  • Обратите внимание, что стандартные настройки "маска сети" и "шлюз" просто расширяются до автоматически генерируемых маршрутов, большинство из которых также можно установить вручную. (Например, можно добавить маршрут связи, чтобы вручную сообщить ОС, что устройство со странным IP-адресом находится в той же локальной сети, что и вы.)

  • Также обратите внимание, что сетевой карте может быть назначено несколько адресов, и они могут быть из разных подсетей, если это необходимо. (Даже Windows позволяет вам делать это, хотя, к сожалению, для этого требуется отключение DHCP.)


Теперь, как правило, у вас есть несколько аналогичных опций, в зависимости от того, кому нужно связаться с вашим сервером Вы можете настроить свой маршрутизатор или сами клиентские компьютеры (но только если они находятся на том же маршрутизаторе, что и сервер).

К сожалению, определенный диапазон адресов 169.254.0.0/16 обозначен как не маршрутизируемый. Маршрутизаторы были написаны, чтобы отказаться от пересылки пакетов с такими IP-адресами, независимо от того, какая у вас конфигурация.

Это несколько ограничивает возможности. То есть веб-сервер должен быть подключен к той же локальной сети, что и вы (то есть за тем же маршрутизатором).


Таким образом, остается только один вариант: добавить адрес 169.254.x.x/16 на свой ПК в дополнение к обычному 192.168.180.x/24 который у вас есть.

В этом случае настройка шлюза на веб-сервере на самом деле не требуется, так как связи в той же подсети не используют его в любом случае. (Хотя, конечно, это означает, что сам веб-сервер не может подключиться очень далеко.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .