3

Я хотел бы настроить NAT для размещения службы в Интернете, используя мой маршрутизатор Technicolor TG 582. Я упоминаю конкретную модель маршрутизатора просто для того, чтобы иметь ссылку, но вопрос в целом идет так, как мне может понадобиться использовать это программирование с различными маршрутизаторами.

Я хотел бы, чтобы DHCP-сервер назначал адреса службам, но в то же время использовал NAT для указания служб.

Мне сказали коллеги, что если вы позволите DHCP назначить IP-адрес устройству, то определенное правило NAT в конечном итоге потерпит неудачу, так как DHCP-сервер на маршрутизаторе со временем изменит назначенный локальный IP-адрес, аннулируя ссылку на порт NAT. -что на локальный IP, а не на MAC (физический) адрес устройства.

Основываясь на этой информации, моя практика заключается в использовании статического IP-адреса для любых служб за маршрутизатором, к которым необходимо получить доступ извне. Однако, по-видимому, маршрутизатор иногда "идентифицирует" устройство по MAC-адресу, а иногда - по локальному IP-адресу. Моя собственная логика говорит мне, что маршрутизатор должен "маршрутизировать" или NAT конкретный запрос порта снаружи на MAC-адрес, на котором у меня есть служба, а не на IP.

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

3 ответа3

4

Чтобы ответить на заданный вопрос:

NAT является сетевым эффектом уровня 3 - это происходит, когда пакеты маршрутизируются, тогда как MAC-адреса являются аспектом сети уровня 2 - они имеют смысл только в локальной сети. Поэтому, чтобы ответить на ваш вопрос, вы не можете использовать NAT для MAC-адреса - понятие NAT не может работать между уровнями.

Чтобы ответить на реальный вопрос (как я могу использовать DHCP и убедиться, что NAT все еще работает):

Вам просто нужно зарезервировать свой IP-адрес в DHCP, чтобы он не менялся со временем. Это связано с MAC-адресом вашей машины. Так и сообщает DHCP-серверу, что если запрос на IP-адрес исходит от определенного MAC-адреса, ему должен быть назначен определенный IP-адрес.

1

DHCP-сервер на маршрутизаторе со временем изменит назначенный локальный IP-адрес.

Нет, это просто поведение по умолчанию. Вы можете назначить определенный IP для компьютера с резервированием MAC.

Как это сделать, зависит от DHCP-сервера:

Многие устройства SoHo имеют веб-интерфейс для этого. Этот интерфейс меняется.

В Windows вы можете открыть консоль управления DHCP-сервером и настроить резервирование.

В установках Linux это зависит от используемого программного обеспечения, но большую часть времени вы можете редактировать /etc/dhcpd.conf и добавить что-то вроде этого:

 host name_of_your_PC
 {
     hardware ethernet 00:11:22:33:44:55;
     fixed-address 1.2.3.4;
 }

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

Статические IP-адреса для серверов - это хорошо.
(Как и статические IP-адреса для сетевых принтеров, сканеров и подобных устройств).

Однако вы можете установить их двумя способами:
1. Жесткий. Настройте статический IP на устройстве. 2. Использование DHCP и настройка резервирования.

Последнее чище, так как у вас есть только одно место для управления конфигурациями. Единственный недостаток - когда (если) ваш DHCP-сервер отключается. Оба варианта являются допустимыми.

Однако, по-видимому, маршрутизатор иногда "идентифицирует" устройство по MAC-адресу, а иногда - по локальному IP-адресу.

Это помогает, если у вас есть некоторый фон DHCP. Вкратце это работает так:

  • Новое устройство вызывает свою сетевую карту и передает «Привет, я AA:BB:CC:DD:EE:FF. Я хотел бы получить информацию, необходимую для работы в этой сети». (Требуется DHCP)
  • Сервер DHCP замечает трансляцию и отвечает:
    «AA:BB:CC:DD:EE:FF, вы можете этот IP. Он действителен в течение этого периода.». Он также может предлагать настройки для DNS, для шлюза по умолчанию и имени хоста. Последние не являются обязательными. (DHCP подтверждение)

Сервер также может отклонить запрос DHCP.

Скажем, новое устройство получило IP 1.2.3.4 и ему сказали, что ему разрешено использовать его в течение 4 часов. После половины этого времени (2 часа) он попросит продлить. "Привет, DHCP-сервер. Я уже получил этот IP от вас. Я хочу продолжать использовать это немного дольше. Это нормально еще 4 часа?».

(Подумайте об аренде книги в библиотеке и звоните, чтобы продлить аренду).

Обычно это продолжается вечно, и устройство всегда будет использовать один и тот же IP-адрес. Ваш NAT будет продолжать указывать в нужное место, и все будет хорошо.

Теперь, если вы выключите компьютер на один день, он больше не сможет его обновить. Придется просить совершенно новый договор аренды. Давайте набросаем, что:

PC1 gets IP 1.2.3.4 for 4 hours.  
PC1 gets power off for the weekend.  
PC2 get boots and gets a IP 1.2.3.4
PC1 boots and asks for an IP. 
    It will get an IP, but not the same one as before.

Это работает как задумано. (В противном случае старые устройства просто будут медленно заполнять таблицу используемых IP-адресов.)

Моя собственная логика говорит мне, что маршрутизатор должен "маршрутизировать" или NAT конкретный запрос порта снаружи на MAC-адрес, на котором у меня есть служба, а не на IP.

Нет. NAT работает на уровне IP. NAT не знает MAC-адресов.

Если DHCP-сервер перезапускается или, например, клиентское устройство переходит в автономный режим, а затем снова включается, будет ли DHCP-сервер пытаться сохранить предыдущий локальный IP-адрес, назначенный устройству, или он просто выберет следующий доступный IP-адрес?

Это зависит от DHCP-сервера. Некоторые просто раздают первый бесплатный IP в своем списке. Некоторые запомнят, какой IP-адрес использовался ранее, и, если он все еще бесплатный, передадут тот же IP-адрес тому же устройству. Здесь нет единого общего ответа.

0

NAT - это явление уровня TCP/IP (транспортный уровень OSI), поэтому для его целей недостаточно MAC. помните, что TCP/IP работает в сетях, отличных от Ethernet, которые могут вообще не использовать MAC-адреса. Поскольку он реализован над уровнем межсетевого взаимодействия, необходимо учитывать возможность маршрутизации перенаправленного трафика NAT на системы, которые не находятся в той же локальной сети, что и шлюз NAT (например, вы используете VLANS и у вас есть маршрутизатор для маршрутизации между ними, или несколько подсеть). вам нужен IP-адрес для маршрутизации между сетями.

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

DHCP-серверы обычно присваивают один и тот же IP-адрес одному и тому же MAC-адресу, но время от времени происходит сбой. Несколько недель назад у меня была коробка с новым адресом без всякой причины. DHCP-сервер хранит сопоставление IP-адреса с MAC-адресом, поэтому он будет оставаться там после перезапуска. обратите внимание, что если у клиента уже есть IP-адрес и DHCP-сервер перезагружается, клиент даже не заметит, пока он не будет перезагружен, и снова запросит адрес.

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