У меня есть экземпляр 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, когда клиент работает. Вам нужно будет включить раздельное туннелирование, чтобы этого не произошло.