Назад | Перейти на главную страницу

Разрешить GRE (IP-протокол 47) через NAT маршрутизатора Linux для подсети

У меня настройка сети, как показано ниже:

Работающий VPN-сервер - это VPN-сервер Windows 2012 по умолчанию, использующий протокол GRE. Я могу иметь VPN-соединение с этим удаленным vpn-сервером только с одного IP-адреса в интрасети. Но я не могу подключиться к диапазону IP-адресов интрасети 172.16.14.0/24. Проблема связана с маршрутизатором linux, который выполняет NAT. Моя таблица iptable для nat выглядит так для рабочего vpn-соединения (для одного IP), что позволяет использовать протокол gre:

 iptables -I PREROUTING -t nat -p 47 --src 202.xx.yy.abc  -j DNAT --to-destination 172.16.14.15
 iptables -I POSTROUTING -p 47 -t nat --src 172.16.14.15  -j SNAT --to-source 202.xx.yy.zz
 iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE 
 iptables -A INPUT -p 47 -j ACCEPT

Это правило отлично работает для одиночного IP 172.16.14.15. Как я могу заставить это работать для всего диапазона 172.16.14.0/24, чтобы я мог иметь VPN-соединение с удаленным VPN-сервером?

Я нашел решение. Я сделал это:

 sysctl -w net.netfilter.nf_conntrack_helper = 1

Затем добавьте

modprobe ip_nat_pptp

Я использовал Ubuntu 18.04.2 LTS, версия ядра 4.15.0-45-generic. Не было необходимости делать что-либо, связанное с протоколом GRE, внутри таблиц iptables PREROUTING, POSTROUTING. Добавление чуть выше двух строк сработало.

Вы загрузили nf_nat_proto_gre модуль ядра? Если вы это сделаете, первые две строки, скорее всего, больше не понадобятся.

GRE не имеет понятия «порт», как протоколы UDP и TCP. Единственная информация о сопоставлении, которую может использовать любое устройство NAT, - это IP-адрес источника и / или назначения пакетов.

Для достижения того, что вы хотите сделать, вам потребуется либо подготовить общедоступную сеть / 24 на вашем канале WAN, а затем создать отдельные сопоставления GRE NAT между каждым общедоступным IP-адресом и каждым внутренним IP-адресом. В качестве альтернативы вы можете настроить один адрес на вашем интерфейсе WAN, но вместо этого VPN-провайдер предоставит вам несколько общедоступных IPv4-адресов для подключения к своей службе. В одном случае отображение NAT блокируется адресом назначения пакетов GRE, а в другом случае отображение NAT блокируется адресом источника. Любой из этих методов будет работать.

Весьма вероятно, что у вас есть только один адрес WAN, и у поставщика VPN также есть только один адрес, что означает, что вы можете создать только одно сопоставление NAT с одним внутренним хостом для любого трафика GRE.