В настоящее время я хочу узнать об использовании туннелей GRE, и у меня есть следующая схема:
Сервер1 (200.1.2.3) ----> Сервер2 (190.1.2.3)
Оба сервера имеют публичные IP-адреса.
Затем я настроил туннель GRE с помощью следующих команд, которые нашел в Интернете.
На Server1:
iptunnel add tunX mode gre remote 190.1.2.3 local 200.1.2.3 ttl 225
ifconfig tunX 10.0.201.1/24
ifconfig tunX up
ifconfig tunX pointopoint 10.0.201.2
ifconfig tunX multicast
На Server2:
iptunnel add tunY mode gre remote 200.1.2.3 local 190.1.2.3 ttl 225
ifconfig tunY 10.0.201.2/24
ifconfig tunY up
ifconfig tunY pointopoint 10.0.201.1
ifconfig tunY multicast
тогда я могу пинговать каждую машину, используя их локальные адреса (10.0.201.1 для Server1 и 10.0.201.2 для Server 2).
Теперь я хочу, чтобы программа, запущенная на сервере Server1, прослушивала порт 5050 (tcp, udp) и могла получить доступ к этому порту извне, подключившись к 190.1.2.3:5050.
Server1 также должен иметь возможность прослушивать порты через общедоступный IP-адрес (200.1.2.3) (не тот, который я хочу туннелировать через GRE)
Я пробовал применять некоторые правила iptables в Server2 для пересылки трафика, но они, похоже, не работают, поэтому я думаю, что мне не хватает чего-то важного в этой настройке, чтобы заставить ее работать.
Клиенты из Интернета должны иметь возможность подключиться к 190.1.2.3:5050 для доступа к службе на Server1, но они никогда не должны знать общедоступный IP-адрес Server1.
Схема быстрой раскраски будет такой:
Спасибо