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

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

Я новичок в сетевых технологиях, поэтому прошу прощения за терминологические ошибки.

У меня есть 2 сервера, подключенные к туннелю GRE.

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

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

На Server1:

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, как показано:

С Server1: 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 на общедоступном шлюзе по умолчанию, и это тоже не работает.

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