16.04 iptables NAT comportamento estranho continua trabalhando quando removido

0
root@p10:/proc/net# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

OVH Public Cloud Server, on OpenStack

Olá a todos,

Eu tenho comportamentos estranhos com minha instalação do iptables / NAT / 16.04.

O OpenVPN está configurado para receber conexões e funciona corretamente. Por algumas razões históricas, os pacotes de VPN têm que ser egressados e traduzidos na interface pública WAN ens33 (e usar seu endereço como fonte).

Mas o comportamento da Masquerade não é consistente.

Por exemplo, habilito a Masquerade, mas não funciona imediatamente. Após alguns minutos (variável), começará a funcionar. Então eu removo a Máscara, e ela continua funcionando, por alguns minutos ou mais.

Tudo isso torna difícil para mim diagnosticar e implementar recursos adicionais (as metas de destino são 2 VPNs NATed em 2 endereços IP públicos diferentes)).

Eu realmente não entendo o que está acontecendo. Se alguém tiver uma pista, por favor ajude!

Aqui está o detalhe:

Interfaces

ens3      Link encap:Ethernet  HWaddr 
          inet addr:54.38.X.X  

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.99.0.1  P-t-P:10.99.0.2  Mask:255.255.255.255

Filtros

root@p10:/proc/net# iptables -L -vnx
Chain INPUT (policy DROP 53737 packets, 2988971 bytes)
    pkts      bytes target     prot opt in     out     source               destination
    6120   612989 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:587
(...)

Chain FORWARD (policy ACCEPT 433 packets, 39648 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 10153 packets, 1034888 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Baile de máscaras

root@p10:/proc/net# iptables -t nat -L -vnx
Chain PREROUTING (policy ACCEPT 8367 packets, 465763 bytes)
    pkts      bytes target     prot opt in     out     source               destination

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

Chain OUTPUT (policy ACCEPT 2 packets, 152 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       4      272 MASQUERADE  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Encaminhar

root@p10:/proc/net# sysctl -a | grep "\.forwarding" | grep ipv4
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.ens3.forwarding = 1
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.tun0.forwarding = 1

Cliente

No meu cliente VPN do Windows, as rotas são enviadas, por exemplo, para enviar pacotes para um endereço de teste 194.51.3.65 através da VPN:

Route print
      194.51.3.65  255.255.255.255      10.99.5.118      10.99.5.117    291

C:\Windows\system32>ping  194.51.3.65

Envoi d’une requête 'Ping'  194.51.3.65 avec 32 octets de données :
Réponse de 194.51.3.65 : octets=32 temps=26 ms TTL=48

Statistiques Ping pour 194.51.3.65:
    Paquets : envoyés = 1, reçus = 1, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 26ms, Maximum = 26ms, Moyenne = 26ms
Ctrl+C
^C
C:\Windows\system32>tracert -d 194.51.3.65

Détermination de l’itinéraire vers 194.51.3.65 avec un maximum de 30 sauts.

  1    16 ms    15 ms    25 ms  10.99.0.1
  2    19 ms    20 ms    17 ms  54.38.X.X
  3    18 ms    21 ms    17 ms  158.69.61.222
  4    61 ms    78 ms    15 ms  51.255.245.126
  5    14 ms    16 ms    35 ms  10.97.155.39

Como você pode ver, os pacotes de teste de ping são enviados via VPN e funcionam bem.

Agora, o comportamento estranho que tenho é este:

  • ou removo a Mascarada, mas os pings continuam funcionando

  • ou eu removo a Máscara e os pings param de funcionar, mas quando eu reativo a Máscara, eles não funcionam em nenhum . Às vezes tenho que esperar 10 segundos, às vezes 5 minutos.

Outros comportamentos

Além disso, tenho outras coisas estranhas:

  • Eu posso ver conntracks:

    raiz @ p10: / proc / net # conntrack -L  (...)  conntrack v1.4.3 (conntrack-tools): 3 entradas de fluxo foram mostradas.

  • Mas não consigo ver as sessões NAT:

    raiz @ p10: / proc / net # netstat-nat Não foi possível ler informações sobre conexões do kernel, certifique-se de que o netfilter esteja ativado no kernel ou por módulos. root @ p10: / proc / net #

por Bibelo 12.04.2018 / 20:52

0 respostas