таблицы маршрутизации Linux, туннели и iptables

таблицы маршрутизации Linux, туннели и iptables

Я пытаюсь понять, как все эти компоненты работают вместе.

Моя главная цель — направить трафик (порт 80,443) из моей локальной сети хоста (Windows 7) на удаленный хост в удаленной сети. То есть я хочу перейти на 10.50.1.2:80 и попасть на удаленный хост (порт 4111).

В качестве первого шага я попытался добавить маршрут к своему локальному хосту Windows следующим образом:

route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”. 

Это не сработало. Может кто-нибудь объяснить почему?

затем попытался направить адрес на локальный сервер Linux

route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”

чем я использовал iptables и DNAT в предварительной маршрутизации, чтобы направить пакеты на удаленный публичный IP

iptables -t nat -A PREROUTING -d 10.50.1.2 -dport 80 -j DNAT --to-destination publicIP:80

Трафик прибыл на 192.168.10.78 (проверено tcpdump), но не прибыл на удаленный хост. Может кто-нибудь объяснить, почему?? Я даже пытался использовать маскарад в постмаршрутизации.

затем я начал поиск и наткнулся на туннелирование.

может ли кто-нибудь объяснить, почему первая и вторая попытки не работают и как туннелирование может помочь?

решение1

Ваша первая попытка: route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”

Это устанавливает маршрут для сети 10.50.0/24, доступ к которой осуществляется через remote public ip. Частные IP-адреса обычно не маршрутизируются в Интернете, и вы, вероятно, понимаете, почему это не работает.

Ваша вторая попытка: route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”

Устанавливает маршрут для сети 10.50.1.0/24 через хост 192.168.10.78, если этот хост не настроен на маршрутизацию трафика для этой сети, он никуда не пойдет, и даже тогда вы не сможете связаться с удаленной машиной. Вы сказали, что настроили NAT/DNAT, что позволило бы этой машине сделать это, но я не уверен, какой будет правильная конфигурация. Если вас интересует только веб-трафик, может быть, стоит рассмотреть возможность использования прокси-сервера?

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

Связанный контент