У меня есть сеть, которая настроена на «мобильность». Он содержит несколько разных серверов. Все отлично работает снаружи. Я пытаюсь настроить внутренние соединения.
У меня есть маршрутизатор DD-WRT, который мы можем называть main
и другой маршрутизатор, который мы можем назвать generic
. Идея заключается в том, что main
содержит множество портов и статических IP-адресов для моих серверов на собственном независимом DHCP-сервере. Generic
- это любой маршрутизатор, через который я хочу, чтобы main
доступ к Интернету осуществлялся. (Main
подключен к Wi-Fi generic
и использует свой внешний IP)
В моем текущем случае Generic
- это обычный маршрутизатор / модем «все в одном» от моего интернет-провайдера. Все порты generic
перенаправляются на main
. Это работает. С внешней стороны все соединяется правильно.
Однако, поскольку generic
находится между main
и Internet, маршрутизация шпильки не работает.
Для решения этой проблемы у меня есть несколько настроек DNSMasq на main
которые myDomain.com
с 10.0.0.101
. Это выглядит так ...
address=/mydomain.com/10.0.0.101
И 10.0.0.101
и 10.0.0.102
являются серверами Debian. 10.0.0.101
- это "административный" сервер в моих сетях. Он обрабатывает электронную почту и некоторые другие административные вещи.
Я пытаюсь использовать Таблицы IP на 10.0.0.101
для имитации эффекта нахождения вне сети. (Любой порт на myDomain.com должен делать то же самое, независимо от того, нахожусь я внутри или вне локальной сети.)
Порты, которые должны перейти на 10.0.0.102
:80
, 8080
, 3000
, 22
, 9090
, 9091
, 9092
и 9093
. Я не очень знаком с IP Tables, но нашел этот урок .
Я вошел в систему как root и побежал ...
echo "1" > /proc/sys/net/ipv4/ip_forward
Затем я запустил следующую замену (MY_LOCAL_PORT)
каждого из портов, перечисленных выше ...
iptables -t nat -A PREROUTING -p tcp -s 0/0 -d 10.0.0.101 --dport (MY_LOCAL_PORT) -j DNAT --to 10.0.0.102:(MY_LOCAL_PORT)
Я тогда побежал ...
iptables -t nat -A POSTROUTING -o eth0 -d 10.0.0.102 -j SNAT --to-source 10.0.0.101
Это не работает. traceroute
для mydomain.com:22
дает 10.0.0.101
. Я не могу просмотреть веб-сервер на myDomain.com
хотя я могу просмотреть его, введя 10.0.0.102
в адресную строку моего браузера.
В чем проблема? Как мне достичь этого результата? И в качестве бонуса ... это можно сделать на main
а не 10.0.0.101
?