我有一个 Amazon AMI 2015.09 实例作为我的后端服务器的 NAT 服务器。
我已经在同一台机器上配置了 OpenVPN 客户端,NAT 服务器能够通过 VPN 与所有设备通信,所有资源都按预期可用。但是此 NAT 后面的所有后端服务器都无法再访问互联网。一旦我关闭 NAT 服务器上的 OpenVPN 客户端,它后面的实例就可以再次上线。
我可以专门查看 AWS 上的 NAT 实例吗?当我知道客户端和服务器之间的 VPN 连接正常运行时,我不知道我可以提供什么,因此我假设可能是 NAT 盒上的路由/iptables 规则未按预期转发。
NAT 服务器确实可以看到tcpdump -n not port 22
来自其后面的实例的流量(),但我不太确定它是如何处理这些流量的。
关于为什么会发生这种情况以及如何解决它的任何建议都很好。
编辑:由于这是一个功能性 NAT 服务器,因此 ec2 实例中的 src/dst 检查被禁用。
编辑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)
答案1
听起来您的 OpenVPN 服务器未设置拆分隧道。因此,当客户端运行时,服务器的默认网关会更改为通过 VPN 隧道指向。您需要启用拆分隧道,这样就不会发生这种情况。