Я хочу маршрутизировать общедоступные IP-адреса с сервера A и использовать их на сервере B. Я создал GRE туннель и все работает. Затем я настраиваю маршрут на сервере A следующим образом:
(общедоступный IP-адрес, а не фактический IP-адрес) 192.168.11.111 через 10.0.33.50 dev tun2
На сервере BI привязал IP-адрес к dev eth0 и добавил маршрут:
(публичный IP не фактический IP) 192.168.11. 111 dev eth0 scope link
У меня проблема: когда я тестирую с помощью netcat, у меня нет подключения. IP MASquerading не решит мою проблему, поскольку он не использует IP с сервера A. Любая помощь будет принята с благодарностью.
Вы получаете асимметричную маршрутизацию с вашей настройкой. Пакеты с вашего конца маршрутизируются через туннель в 8.8.8.8
с исходным IP-адресом в сети 10.0.33.0/24
. Я думаю, что внешние брандмауэры Google отбрасывают пакеты с адресами частной сети, поэтому 8.8.8.8
никогда не получит пакет.
Если вы хотите направить пакеты обратно через туннель, вы должны использовать NAT на другой конец туннеля, который изменяет исходный IP-адрес на IP-адрес другого конца.
Также может случиться так, что клиентский конец туннеля использует свой IP-адрес, обращенный к Интернету, для пакетов, отправляемых в туннель. В этом случае результат - асимметричная маршрутизация. Пакеты от клиента отправляются через туннель на 8.8.8.8
, но 8.8.8.8
отправляет пакеты непосредственно на собственный IP-адрес клиента, что также может вызвать проблемы.
Ненавижу говорить вам, но у вас серьезные проблемы с настройкой.
(общедоступный IP) 192.168.11.111 через 10.0.33.50 dev tun2
Ваш так называемый общедоступный IP-адрес - частный, а не маршрутизируется через Интернет. Это часть адресного пространства RFC 1918. На ОБЕИХ концах. Это означает, что для работы требуется обратный NAT на обоих концах и реальные общедоступные IP-адреса.
проблема была с сервером Б. Я протестировал его на другом сервере и он работал. Не знаю, почему именно этот сервер не работает с серыми туннелями. спасибо за ваше время и комментарии.