Разрешить GRE (протокол IP 47) через маршрутизатор Linux NAT для подсети
У меня есть настройки сети, как показано ниже:
VPN-сервер работает под управлением Windows 2012 по умолчанию VPN-сервера, который использует протокол GRE. Я могу иметь VPN-подключение к этому удаленному серверу vpn, используя только один IP-адрес в своей интрасети. Но я не могу подключиться для диапазона IP-адресов внутренней сети 172.16.14.0/24. Проблема с роутером linux, который делает NAT. Моя таблица iptable for 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-серверу?
2 ответа
Я нашел решение. Я сделал это:
sysctl -w net.netfilter.nf_conntrack_helper = 1
Затем добавьте
modprobe ip_nat_pptp
Я использовал Ubuntu 18.04.2 LTS, версия ядра 4.15.0-45-generic. В таблицах iptables PREROUTING, POSTROUTING не нужно было ничего делать с протоколом GRE. Добавление чуть выше двух строк сработало.
Вы загрузили 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.