가면무도회가 가끔 작동하지 않는 경우가 있음

가면무도회가 가끔 작동하지 않는 경우가 있음

매우 특정한 상황에서 개인 네트워크 트래픽이 위장되지 않는지에 대한 질문이 있습니다.

10.1.0.0/18네트워크는 네트워크를 사용하는 VMware 게스트 집합입니다 .

문제의 호스트는 10.1.4.20 255.255.192.0사용하도록 구성된 유일한 게이트웨이입니다 10.1.63.254. 게이트웨이 서버는 $vpnGatewayAddress모든 아웃바운드 트래픽을 가장하고 전달해야 $outerGatewayAddress하지만 어떤 이유로 인해 때때로 다음과 같이 경로 캐시에 10.1.4.20도달하게 됩니다 .$outerGatewayAddress

ip -s route show cache 199.16.156.40
199.16.156.40 from 10.1.4.20 via $outerGatewayAddress dev eth0
    cache  used 149 age 17sec ipid 0x9e49
199.16.156.40 via $outerGatewayAddress dev eth0  src 10.1.4.20
    cache  used 119 age 11sec ipid 0x9e49

이 문제는 api.twitter.com에서만 발생합니다.

캐시를 비운 후 다시 ping하면 캐시가 정상적으로 보입니다.

ip route flush cache 199.16.156.40

ping api.twitter.com
PING api.twitter.com (199.16.156.40) 56(84) bytes of data.
64 bytes from 199.16.156.40: icmp_req=1 ttl=247 time=93.4 ms

ip -s route show cache 199.16.156.40
199.16.156.40 from 10.1.4.20 via 10.1.63.254 dev eth0
    cache  age 3sec
199.16.156.40 via 10.1.63.254 dev eth0  src 10.1.4.20
    cache  used 2 age 2sec

애플리케이션 서버에 대한 네트워크 정보(lo 제외):

ip a

eth0      Link encap:Ethernet  HWaddr 00:50:56:a4:48:20
          inet addr:10.1.4.20  Bcast:10.1.63.255  Mask:255.255.192.0
          inet6 addr: fe80::250:56ff:fea4:4820/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1523222895 errors:0 dropped:407 overruns:0 frame:0
          TX packets:1444207934 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1524116772058 (1.5 TB)  TX bytes:565691877505 (565.6 GB)

VPN 게이트웨이의 네트워크 정보(lo도 없음):

 eth0      Link encap:Ethernet  HWaddr 00:50:56:a4:56:e9
           inet addr:$vpnGatewayAddress  Bcast:$broadcastAddress  Mask:255.255.255.192
           inet6 addr: fe80::250:56ff:fea4:56e9/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:7030472688 errors:0 dropped:1802 overruns:0 frame:0
           TX packets:6959026084 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:7777330931859 (7.7 TB)  TX bytes:7482143729162 (7.4 TB)

 eth0:0    Link encap:Ethernet  HWaddr 00:50:56:a4:56:e9
           inet addr:10.1.63.254  Bcast:10.1.63.255  Mask:255.255.192.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 eth0:1    Link encap:Ethernet  HWaddr 00:50:56:a4:56:e9
           inet addr:10.1.127.254  Bcast:10.1.127.255  Mask:255.255.192.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
           inet addr:10.8.1.1  P-t-P:10.8.1.2  Mask:255.255.255.255
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
           RX packets:477047415 errors:0 dropped:0 overruns:0 frame:0
           TX packets:833650386 errors:0 dropped:101834 overruns:0 carrier:0
           collisions:0 txqueuelen:100
           RX bytes:89948688258 (89.9 GB)  TX bytes:1050533566879 (1.0 TB)

eth0은 외부 세계로 연결되고, tun0은 애플리케이션 서버가 위치한 가상 머신의 openvpn 네트워크로 연결됩니다.

ip rVPN 게이트웨이의 경우:

default via $outerGatewayAddress dev eth0  metric 100
10.1.0.0/18 dev eth0  proto kernel  scope link  src 10.1.63.254
10.1.64.0/18 dev eth0  proto kernel  scope link  src 10.1.127.254
10.8.1.0/24 via 10.8.1.2 dev tun0
10.8.1.2 dev tun0  proto kernel  scope link  src 10.8.1.1
10.9.0.0/28 via 10.8.1.2 dev tun0
$addressEndingWithAZero/26 dev eth0  proto kernel  scope link  src $vpnGatewayAddress

ip r애플리케이션 서버에서:

default via 10.1.63.254 dev eth0  metric 100
10.1.0.0/18 dev eth0  proto kernel  scope link  src 10.1.4.20

방화벽 규칙:

Chain PREROUTING (policy ACCEPT 380M packets, 400G bytes) 
pkts bytes target prot opt in out source destination 

Chain INPUT (policy ACCEPT 127M packets, 9401M bytes) 
pkts bytes target prot opt in out source destination 

Chain OUTPUT (policy ACCEPT 1876K packets, 137M bytes) 
pkts bytes target prot opt in out source destination 

Chain POSTROUTING (policy ACCEPT 223M packets, 389G bytes) 
pkts bytes target prot opt in out source destination 

32M 1921M MASQUERADE all -- * eth0 10.1.0.0/17 0.0.0.0/0

리디렉션 구성:

sysctl net.ipv4.conf.all.send_redirects
net.ipv4.conf.all.send_redirects = 1
sysctl net.ipv4.conf.eth0.send_redirects
net.ipv4.conf.eth0.send_redirects = 1
sysctl net.ipv4.conf.tun0.send_redirects
net.ipv4.conf.tun0.send_redirects = 1

왜 가장 무도회 파티는 때때로 실패합니까? 이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까?

답변1

의견에서 설명한 대로 문제는 sysctl net.ipv4.conf.all.send_redirects및/또는 net.ipv4.conf.eth0.send_redirects0을 설정하면 문제가 해결된 것으로 보이므로 VPN 게이트웨이가 ICMP 리디렉션을 응용 프로그램 서버로 잘못 보내는 것 같습니다.

VPN 게이트웨이가 애플리케이션 서버에 외부 게이트웨이를 통과하라고 지시하는 이유를 모르겠습니다. 애플리케이션 서버는 VPN 서버를 통하지 않고는 해당 외부 게이트웨이에 도달할 수 없습니다.

관련 정보