Порт 80 перепутан среди клиентов, использующих DNAT
Я пытаюсь настроить сеть следующим образом:
... но я столкнулся с проблемой.
Вот в чем суть:
Если я пытаюсь получить доступ (например) к mywebsite1.com с внешнего сайта, он работает как чудо, и он показывает мой замечательный веб-сайт, но всякий раз, когда я пытаюсь запустить (например) обновление apt-get изнутри Virtual Server 2, он выдает ошибку типа " Failed подключиться к порту 80 xxx-whwhat-website.com: в соединении отказано ".
Проблема решается, если я удаляю правило предварительной маршрутизации на брандмауэре главного сервера, но, разумеется, я больше не могу подключиться к mywebsite1.com из внешнего источника. Та же история, если я изменю шлюз виртуального сервера по умолчанию на 192.168.1.1.
Я наивно пытался добавить статический маршрут на главном сервере (что-то вроде ip route add 192.168.1.1 через 192.168.1.32), но, конечно, это не сработало. Должен ли я попытаться пометить пакеты тем или иным способом, чтобы распознать исходный клиент?
1 ответ
Так как я исключил исходную цель назначения в своем правиле DNAT, она достигла всех исходных целей назначения. Итак, мне нужно было добавить -d 192.168.1.30
к этому.
-A PREROUTING -p tcp -m tcp -i vmbr0 -d 192.168.1.30 --dport 80 -j DNAT --to-destination 192.168.1.32:80
Теперь это работает.