Использование открытых интерфейсов на сервере, подключенном через туннель GRE

Я довольно плохо знаком с сетью, поэтому, пожалуйста, простите любые терминологические ошибки.

У меня есть 2 сервера, связанные с туннелем GRE.

Сервер1 (10.0.0.1) ----> Сервер2 (10.0.0.2)

Я хочу иметь возможность привязывать к общедоступным IP-адресам на Server2 с помощью Server1. Для этого я настроил виртуальные интерфейсы с общедоступными IP-адресами Server2 на Server1, а затем использовал правила маршрутизации на Server1 для маршрутизации пакетов через туннель GRE.

На сервере1:

ip rule add from [Server2's first public IP] table gre
ip rule add from [Server2's second public IP] table gre
ip route add default via 10.0.0.2 dev gre1 table gre

Это прекрасно работает, и я вижу пакеты, поступающие через GRE на Server2. Я вижу пакет, выходящий из туннеля на устройстве gre1 Server2, как показано:

С сервера1: ping -I [Server2's public ip] google.com

tcpdump из туннельного устройства GRE Server2 сервера:

12:07:17.029160 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) [Server2's public ip] > 74.125.225.38: ICMP echo request, id 6378, seq 50, length 64

Это именно тот пакет, который я хочу. Тем не менее, я не вижу его вообще на eth0:0 (с которым связан публичный IP-адрес Server2).

Я попытался использовать правила маршрутизации для получения пакетов, поступающих с общедоступного IP-адреса Server2 (который будет выходить из dev gre1), для прохождения через dev eth0 на общедоступном шлюзе по умолчанию, и это тоже не работает.

Я в растерянности, спасибо всем, кто может помочь.

0 ответов

Другие вопросы по тегам