Маскарад не работает иногда

У меня проблема с сетевым трафиком, который не маскируется в особых обстоятельствах.

Сеть представляет собой группу гостей VMware, использующих сеть 10.1.0.0/18 .

Проблематичным хостом является 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

После очистки кеша, я могу снова его проверить, и кеш выглядит разумно:

 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-шлюза (без него тоже):

  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 PtP: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 r для шлюза VPN:

 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 

Почему маскарад иногда терпит неудачу? Как я могу это предотвратить?

  • Использовать ssh с определенным сетевым интерфейсом
  • Нужна помощь в маршрутизации
  • Перенос трафика WAN через VPN
  • Маршрутизировать только трафик ssh через VPN
  • Почему я не могу подключиться к LAN-интерфейсу сервера OpenVPN через туннель?
  • Есть ли способ разрешить все IP-адреса PIA VPN со сценарием?
  • Не удалось создать VPN на службе Amazon EC2
  • Как указать «действительный до» даты в OpenVpn для пользователя?
  • One Solution collect form web for “Маскарад не работает иногда”

    Как обсуждалось в комментариях, кажется, что проблема заключалась в том, что шлюз VPN ошибочно отправил ICMP-переадресацию на сервер приложений, поскольку установил параметры sysctl net.ipv4.conf.all.send_redirects и / или net.ipv4.conf.eth0.send_redirects для 0, похоже, решила проблему.

    Я не знаю, почему VPN-шлюз скажет серверу приложений идти через внешний шлюз, который сервер приложений не может достичь, не проходя через VPN-сервер.

    Linux и Unix - лучшая ОС в мире.