The Linux GRE tunnel as two parameters, local address and remote address. Suppose I have two routers, the left one is outside of a NAT and right one is inside NAT, then I want to create a GRE tunnel between the left and right routers. I am clear to the right side, where local address should be own address and remote address should be the peer public address. But the to the left side, I think the router will not know the peer address before the connection, then how would I set the 'remote' address for it?
Thanks in advance. -woody
Для других протоколов следует поступать так, как ожидалось: использовать для пультов только общедоступные IP-адреса.
Пример:
left
: 192.0.2.10
Система NAT: 198.51. 100.20 / 192.168.0.1
справа
(за NAT): 192.168.0.30
(И, например, вы настраиваете IP-адреса туннеля для слева
10.10.10.1/24 и right
10.10.10.2/24, здесь это не имеет значения)
Вам нужно сообщить левому
маршрутизатору, что удаленный
- 198.51.100.20, а для правый
маршрутизатор, удаленный
- 192.0.2.10.
Теперь предостережение: это действительно зависит от настроек системы NAT в случае, если он работает под управлением Linux .
Если эта система NAT также является Linux,
правильного
протокола gre (47) в случае, если он не имеет общего правила (но см. ниже), modprobe nf_conntrack_proto_gre
, иначе NAT не будет выполняться, и туннель не будет работать. Как ни странно, судя по тестам, nf_nat_proto_gre
кажется не нужным (и его недостаточно). DNAT
SNAT / MASQUERADE
, то только правый
должен инициировать трафик в левый
. Если left
отправляет трафик на right
(фактически в систему NAT) после бездействия, это не сработает, и запись conntrack может блокировать до 30 секунд (после окончания попыток) вправо
для установления трафика на влево
. После «установки» таймер «ОК» увеличивается до 180 с. Поэтому вам действительно стоит подумать о добавлении правила DNAT
от слева
до справа
, чтобы завершить противоположное правило SNAT / MASQUERADE
. На В такой системе NAT Linux вы можете проверить, что происходит, используя conntrack -L -p gre
, в ней должна быть запись после активности туннеля GRE, или правильный модуль отсутствует.