IPSec em vários endereços IP do OpenVZ, usando 127.0.0.2 no venet0

1

Eu tenho uma caixa OpenVZ com o IPSec ativado.

root@wa000:~# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                                 [OK]
Linux Openswan U2.6.38/K2.6.32-042stab094.7 (netkey)
Checking for IPsec support in kernel                            [OK]
 SAref kernel support                                           [N/A]
 NETKEY:  Testing XFRM related proc values                      [OK]
    [OK]
    [OK]
Checking that pluto is running                                  [OK]
 Pluto listening for IKE on udp 500                             [OK]
 Pluto listening for NAT-T on udp 4500                          [OK]
Two or more interfaces found, checking IP forwarding            [FAILED]
Checking NAT and MASQUERADEing                                  [OK]
Checking for 'ip' command                                       [OK]
Checking /bin/sh is not /bin/dash                               [WARNING]
Checking for 'iptables' command                                 [OK]
Opportunistic Encryption Support                                [DISABLED]

Eu instalei o openswan e o xl2tpd para a VPN L2TP. Quando eu reiniciar o ipsec:

# service ipsec restart
ipsec_setup: Stopping Openswan IPsec...
ipsec_setup: Starting Openswan IPsec U2.6.38/K2.6.32-042stab094.7...
ipsec_setup: multiple ip addresses, using  127.0.0.2 on venet0

Detectou 127.0.0.2 , que acredito ser um ip local para servir. Eu quero que ele sirva no meu endereço IP público. Mas não tenho idéia de como deixar o ipsec atuar no ip certo. Eu fiz o googling, mas nada parece ser realmente útil.

Aqui está a saída ifconfig -a . Eu substituí os IPs reais por x.x.x.x, y.y.y.y e z.z.z.z.

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:18:51:69:44:e6  
          BROADCAST MULTICAST  MTU:1500  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)

gre0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:1476  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)

gretap0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          BROADCAST MULTICAST  MTU:1476  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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

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:16436  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:18229 (18.2 KB)  TX bytes:18229 (18.2 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:126133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102937 errors:0 dropped:724 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11322355 (11.3 MB)  TX bytes:40737353 (40.7 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:x.x.x.x  P-t-P:x.x.x.x  Bcast:x.x.x.x  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:y.y.y.y  P-t-P:y.y.y.y  Bcast:y.y.y.y  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:2  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:z.z.z.z  P-t-P:z.z.z.z  Bcast:z.z.z.z  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
    
por Elgs Qian Chen 14.06.2015 / 23:25

2 respostas

3

  1. Você não especificou, mas a partir do seu ifconfig -a trecho podemos assumir que você está executando o ipsec dentro do OpenVZ VE, não o nó de hardware (HN). Só para ter certeza - você conferiu a recomendação deles para esse tipo de configuração?
  2. Os modelos do OpenVZ para VEs são realmente alucinantes às vezes. Eu perguntei aos devs por que alguém iria querer usar IPs de alcance 127/8 em interfaces não-loopback, mas sua resposta foi "bem, nós não sabemos, alguém adicionou e é legado agora". Merda absoluta. Você pode remover com segurança este 127.0.0.2 "kludge" da interface em questão, ele não faz nada: %código%. O problema é que, no entanto, em cada reinicialização de VE, essa porcaria idiota seria adicionada novamente. Se você estiver controlando o nó de hardware, poderá definir o modelo para algo que não acionaria o "kludge" deles, que contém a configuração de rede. Se você não está controlando, bem, a solução é colocar esse "ip ad del" em algo como ip ad del 127.0.0.2/32 dev venet0 e, em seguida, reiniciar o ipsec.
por 26.06.2015 / 18:53
1

De link

When Openswan starts up, it looks like it picks the first IP Address on the br0 interface to announce what it’s picking. In case it picks wrong one of these days, how do I tell it definitively which IP Address on which interface? Or is this just an opening announcement and I don’t need to worry about it?

     

Ele se liga a todos os endereços configurados na inicialização. Se um endereço for adicionado   mais tarde, atualmente, pluto precisa ser instruído a revinculá-las com "ipsec whack --listen"

     

ipsec_setup: multiple ip addresses, using 10.0.0.10 on br0

     

A mensagem é um pouco confusa. Ele irá "usar" o endereço IP que recebeu um pacote   quando responder, e usa o endereço IP "mais próximo" ao iniciar quando   usando "% defaultroute". Se vai usar o ip ou nome do host resolvido ip se especificado   no conn.

É possível que suas interfaces OpenVZ não sejam ligadas automaticamente, pois elas não existem na inicialização.

Além disso, você pode forçá-lo a ouvir apenas um IP editando o arquivo /etc/ipsec.conf , adicionando a especificação XX.XX.XX.XX ou interface venet0: X correta usando as diretivas listen=XX.XX.XX.XX ou interface=venet0:X em a seção config setup .

link

    
por 24.06.2015 / 19:13

Tags