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

Экземпляр AWS NAT в качестве клиента OpenVPN не может маршрутизировать экземпляры за ним

У меня есть экземпляр Amazon AMI 2015.09 в качестве NAT-сервера для моих внутренних серверов.

Я настроил клиент OpenVPN на этом же устройстве, сервер NAT может общаться со всем через VPN, все ресурсы доступны, как и ожидалось. Но все внутренние серверы за этим NAT больше не могут получить доступ в Интернет. Как только я отключу клиент OpenVPN на сервере NAT, экземпляры, стоящие за ним, снова смогут подключиться к сети.

Что я мог бы рассмотреть конкретно с экземпляром NAT на AWS? Я не знаю, что я могу предоставить, если знаю, что VPN-соединение между клиентом и сервером работает, поэтому я предполагаю, что это могут быть правила маршрутизации / iptables в поле NAT, которые не перенаправляются, как ожидалось.

сервер NAT видит трафик (tcpdump -n not port 22) из экземпляров, стоящих за ним, но я не совсем уверен, как он обрабатывает этот трафик.

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

РЕДАКТИРОВАТЬ: Поскольку это функциональный сервер NAT, проверки src / dst отключены в экземпляре ec2.

РЕДАКТИРОВАТЬ2:

Вывод с выключенным клиентом OpenVPN:

[root@ip-10-0-0-39 ~]# ip route  list table all
default via 10.0.0.1 dev eth0 
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.39 
169.254.169.254 dev eth0 
broadcast 10.0.0.0 dev eth0  table local  proto kernel  scope link  src 10.0.0.39 
local 10.0.0.39 dev eth0  table local  proto kernel  scope host  src 10.0.0.39 
broadcast 10.0.0.255 dev eth0  table local  proto kernel  scope link  src 10.0.0.39 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
unreachable ::/96 dev lo  metric 1024  error -101
unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101
unreachable 2002:a00::/24 dev lo  metric 1024  error -101
unreachable 2002:7f00::/24 dev lo  metric 1024  error -101
unreachable 2002:a9fe::/32 dev lo  metric 1024  error -101
unreachable 2002:ac10::/28 dev lo  metric 1024  error -101
unreachable 2002:c0a8::/32 dev lo  metric 1024  error -101
unreachable 2002:e000::/19 dev lo  metric 1024  error -101
unreachable 3ffe:ffff::/32 dev lo  metric 1024  error -101
fe80::/64 dev eth0  proto kernel  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101
local ::1 dev lo  table local  proto none  metric 0 
local fe80::1074:88ff:fe94:45c7 dev lo  table local  proto none  metric 0 
ff00::/8 dev eth0  table local  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101

Вывод с включенным OpenVPN клиентом:

[root@ip-10-0-0-39 ~]# ip route  list table all
default via 10.0.0.1 dev eth0 
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.39 
10.0.0.0/23 via 10.172.0.1 dev tun0 
10.0.8.0/24 via 10.172.0.1 dev tun0 
10.0.100.0/22 via 10.172.0.1 dev tun0 
10.10.10.0/24 via 10.172.0.1 dev tun0 
10.100.100.0/24 via 10.172.0.1 dev tun0 
10.101.101.0/24 via 10.172.0.1 dev tun0 
10.172.0.0/16 via 10.172.0.1 dev tun0 
10.172.0.1 dev tun0  proto kernel  scope link  src 10.172.23.253 
10.200.0.0/16 via 10.172.0.1 dev tun0 
169.254.169.254 dev eth0 
172.23.0.0/16 via 10.172.0.1 dev tun0 
172.24.0.0/16 via 10.172.0.1 dev tun0 
broadcast 10.0.0.0 dev eth0  table local  proto kernel  scope link  src 10.0.0.39 
local 10.0.0.39 dev eth0  table local  proto kernel  scope host  src 10.0.0.39 
broadcast 10.0.0.255 dev eth0  table local  proto kernel  scope link  src 10.0.0.39 
local 10.172.23.253 dev tun0  table local  proto kernel  scope host  src 10.172.23.253 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
unreachable ::/96 dev lo  metric 1024  error -101
unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101
unreachable 2002:a00::/24 dev lo  metric 1024  error -101
unreachable 2002:7f00::/24 dev lo  metric 1024  error -101
unreachable 2002:a9fe::/32 dev lo  metric 1024  error -101
unreachable 2002:ac10::/28 dev lo  metric 1024  error -101
unreachable 2002:c0a8::/32 dev lo  metric 1024  error -101
unreachable 2002:e000::/19 dev lo  metric 1024  error -101
unreachable 3ffe:ffff::/32 dev lo  metric 1024  error -101
fe80::/64 dev eth0  proto kernel  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101
local ::1 dev lo  table local  proto none  metric 0 
local fe80::1074:88ff:fe94:45c7 dev lo  table local  proto none  metric 0 
ff00::/8 dev eth0  table local  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101

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

Клиенты NAT за ним находятся в пространстве 10.0.1.0/24, которое приходится на пространство 10.0.0.0/23 для маршрутизации через tun0. Что еще я мог упустить?

вывод ifconfig:

[root@ip-10-0-0-39 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 12:74:88:94:45:C7  
          inet addr:10.0.0.39  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::1074:88ff:fe94:45c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3214673 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2918238 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:948912082 (904.9 MiB)  TX bytes:770701301 (734.9 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Похоже, ваш сервер OpenVPN не настроен для раздельного туннелирования. Таким образом, шлюз сервера по умолчанию меняется на точку через туннель VPN, когда клиент работает. Вам нужно будет включить раздельное туннелирование, чтобы этого не произошло.