Como obter um ponto para apontar tun0?

0

Eu quero configurar um túnel ponto a ponto. Meu /etc/network/interface é assim:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

auto eth0
iface eth0 inet manual
netmask 255.255.0.0
up ifconfig eth0 up

auto eth1
iface eth1 inet static
address 192.168.2.61
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 192.168.2.1 217.237.148.70

auto eth2
iface eth2 inet manual
up ifconfig eth2 up

auto tun0
iface tun0 inet static
address 192.168.99.129
pointopoint 192.168.99.129
netmask 255.255.255.252
mtu 8300
hw ether 00:00:00:00:00:00
tunctl_user sys

Eu reinicio a rede:

# sudo /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service.

... e eu recebo:

# ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 00:e0:f4:18:ca:72
          inet6-Adresse: fe80::2e0:f4ff:fe18:ca72/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:1534 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:777 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:138060 (138.0 KB)  TX-Bytes:85779 (85.7 KB)

eth1      Link encap:Ethernet  Hardware Adresse 00:e0:f4:18:ca:73
          inet Adresse:192.168.2.61  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: 2003:57:e712:931c:2e0:f4ff:fe18:ca73/64 Gültigkeitsbereich:Global
          inet6-Adresse: fe80::2e0:f4ff:fe18:ca73/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:3391 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:1123 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:499727 (499.7 KB)  TX-Bytes:190601 (190.6 KB)

eth2      Link encap:Ethernet  Hardware Adresse 00:e0:f4:18:ca:74
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX-Pakete:352 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:352 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1
          RX-Bytes:27811 (27.8 KB)  TX-Bytes:27811 (27.8 KB)

tun0      Link encap:Ethernet  Hardware Adresse 42:12:97:b6:a8:2e
          inet Adresse:192.168.99.129  Bcast:192.168.99.255  Maske:255.255.255.255
          UP BROADCAST MULTICAST  MTU:8300  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

Eu tenho as seguintes perguntas:

  1. tun0 deve ser uma conexão ponto a ponto. O comando pointopoint 192.168.99.129 parece ser ignorado.
  2. O endereço de hardware deve ser 00:00:00:00:00:00 devido ao comando hw ether . Isso também é ignorado.

O que posso fazer?

    
por musbach 11.02.2017 / 15:28

2 respostas

2

Eu tenho comentários e sugestões. Os comentários são:

1) 'eth0' and 'eth2' can perfectly live without ip4 address. 
An ip4 address is not mandatory at all.
2) 'eth2' seems to be dummy.
3) Virtual Ethernet is possible. Ethernet supports point-to-point.

Para mais informações sobre Ethernet virtual, eu recomendo lados como este ou that . lo é virtual No entanto, um ssl / tls não é necessário para um túnel

Minhas sugestões são as seguintes:

1) 'eth0' and 'eth2' are ok. I don’t see any reason for changes. 
You don’t need to add an ip address.
2) The mask of 'tun0' seems not to work. It could be that this is a bug or a feature.
I don’t know a workaround. Could you please crosscheck it?
3) You must setup also a route if you want to use a tunnel.
Please check with 'route -n' if you have set it.
I expect a route to '192.168.99.XYZ'.
4) If you haven’t set up any route, you can do it in 'interface' by adding this
'up iptables -t nat -A POSTROUTING -s 192.168.99.XYZ/255.255.255.252 -j MASQUERADE' and 
'down iptables -t nat -A POSTROUTING -s 192.168.99.XYZ/255.255.255.252 -j MASQUERADE'
at the end of 'tun0'. Replace 'XYZ' with the ip address of server 2. 
Maybe the mask at the ip addresses will work.
5) If you want to set a hardware address, you have to use the '-' instead of the ':'.
However, I doubt that 'hwaddress ether 00-00-00-00-00-00' will work because it is an
invalid address. But, give it a try.
    
por 12.02.2017 / 21:48
0

Se a sua descrição estiver correta, você não precisa de um túnel, você precisa corrigir sua configuração e possivelmente seu roteamento. Vamos resumir isso:

Servidor 1:

  • eth0 conectado a algum segmento de Ethernet desconhecido A, sem um endereço IPv4 válido e uma máscara de rede de 255.255.0.0 que é inútil porque não há endereço IP4 válido. Ele pode receber transmissões no nível MAC e IPv6 para seu endereço de link local, mas nem enviar nem receber transmissões, nem nada mais. O IPv4 funcionará sem um endereço IPv4 válido.

  • eth1 conectou algum segmento Ethernet B com 192.168.2.0/24 neste segmento, um gateway em 192.168.2.1 e a opção para rotear em algum segmento C com 192.168.99.0/24

Servidor 2:

  • eth? conectado ao segmento C com 192.168.99.0/24

O ping entre o servidor 1 e o servidor 2 funciona, portanto os pacotes ICMP devem ser roteados corretamente do segmento B para o segmento C. O Telnet e alguns aplicativos não especificados não funcionam, o que significa que os pacotes TCP não são roteados corretamente do segmento B para o segmento C .

Para estabelecer um encapsulamento entre o servidor 1 e o servidor 2, você precisará de uma conexão entre o servidor 1 e o servidor 2 que funcione de forma confiável para pacotes TCP ou UDP. Então você pode "encapsular" pacotes diretamente através desta conexão. No entanto, desde que você tenha uma conexão em primeiro lugar, um túnel não é realmente necessário, você poderia apenas usar essa conexão. Exceção: Seu roteador bloqueia os pacotes TCP, mas não os pacotes UDP, então você pode usar o UDP para encapsular o TCP.

Portanto, você deve corrigir o que impedir que a conexão entre o servidor 1 e o servidor 2 funcione. Esse problema está no roteador (sobre o qual você não falou nada) e possivelmente na rede entre o segmento B e o segmento C (sobre o qual você também não nos contou nada).

    
por 12.02.2017 / 15:49