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

Как получить доступ к хосту в локальной сети с помощью альтернативного IP-адреса?

У меня есть сервер в локальной сети (192.168.1.0/24) со статическим IP-адресом 192.168.1.100, теперь я хочу, чтобы все службы на этом сервере были доступны с использованием 192.168.100.100 для хостов в той же локальной сети (192.168.1.0/24) , например. при попытке доступа к 192.168.100.100:1234 запрос обрабатывается 192.168.1.100:1234. Как я могу этого добиться?

Я пробовал модифицировать ARP arp -s 192.168.100.100 m:ac:of:se:rv:er на роутере но не повезло.

Я также попробовал применить iptables к роутеру: iptables -t nat -A PREROUTING -d 192.168.100.100 -j DNAT --to-destination 192.168.1.100. Проверка связи с сервером приводит к тайм-ауту.

Предыстория: раньше я размещал файлы и мультимедийные службы на 192.168.100.100 в локальной сети 192.168.100.0/24, теперь я временно переношу хосты в другую локальную сеть 192.168.1.0/24. Клиент использует 192.168.100.100 для доступа к серверу, и изменение всех приложений на клиентах потребует слишком много работы. Очевидно, что лучше использовать имя хоста, а не IP-адрес, но в моей ситуации клиенты используют DNS localhost, игнорируя DNS маршрутизатора. Я мало что знаю об IP.

Это причина, по которой вам нужно использовать DNS с самого начала.

Единственное решение, которое я вижу, это то, что вы добавляете маршрутизатор между 192.168.1.0/24 и 192.168.100.0/24 сети. Потом указываешь на хостах на 192.168.1.0/24 сеть, в которую им нужно отправлять пакеты 192.168.100.100/24 через роутер, и наоборот.

Вопрос в том, находятся ли хосты, которым нужен доступ к 192.168.100.100, на 192.168.1.0/24 или где-то еще. Если последнее, то правила, которое вы добавили на маршрутизатор (при условии, что он получает трафик, предназначенный для 192.168.100.100), должно быть достаточно (конечно, вам также необходимо включить пересылку, но я предполагаю, что для маршрутизатора это очевидно).

Если это хосты из сети 192.168.1.0/24, пытающиеся перейти на 192.168.100.100, то это немного сложнее. Они отправят запрос с адресом источника 192.168.1.x в пункт назначения 192.168.100.100 на маршрутизатор, который выполнит DNAT и отправит пакеты на 192.168.1.100 обратно в тот же сегмент сети. Проблема в том, что ответ будет иметь исходный IP-адрес 192.168.1.100 и целевой IP-адрес 192.168.1.x и не будет проходить обратно через маршрутизатор, чтобы восстановить эффекты DNAT. Пакет, полученный исходным хостом, НЕ будет соответствовать какому-либо известному соединению и будет отброшен. Чтобы обойти это, вам дополнительно необходимо иметь SNAT для пакетов, которые маршрутизируются обратно в этот сегмент сети:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 --ctstate DNAT -j SNAT --to-source 192.168.1.r

где 192.168.1.r - IP-адрес МАРШРУТИЗАТОРА в подсети 192.168.1.0/24.