Une partie openvpn du sous-réseau est inévitable


1

J'ai un problème avec mon réseau "domestique" ... Je me suis tiré les cheveux pour la journée entière, et je ne parviens toujours pas à trouver la solution. Ce qui est pire, je ne peux pas vraiment identifier la source du problème; (

J'ai 3 sous-réseaux configurés sur 3 serveurs différents, à des emplacements différents:

10.123.45.0/24 - emplacement A

$ ip route list
default via _PUBLIC_IP_ dev enp7s1  metric 2 
10.0.0.0/24 via 10.123.50.5 dev tun0 
10.123.45.0/24 dev br0  proto kernel  scope link  src 10.123.45.1 
10.123.50.0/24 via 10.123.50.5 dev tun0 
10.123.50.5 dev tun0  proto kernel  scope link  src 10.123.50.6 
_PUBLIC_NETWORK_ dev enp7s1  proto kernel  scope link  src _PUBLICK_GW_  metric 2 
127.0.0.0/8 dev lo  scope host 

$ sudo ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
    inet 10.123.50.6  netmask 255.255.255.255  destination 10.123.50.5
    unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
    RX packets 58491  bytes 33386378 (31.8 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 68994  bytes 33653956 (32.0 MiB)
    TX errors 0  dropped 28 overruns 0  carrier 0  collisions 0

10.123.50.0/24 - VPS - Serveur OpenVPN

$ ip route list
default via _PUBLIC_IP_ dev eth0 
10.0.0.0/24 via 10.123.50.2 dev tun0 
10.123.45.0/24 via 10.123.50.2 dev tun0 
10.123.50.0/24 via 10.123.50.2 dev tun0 
10.123.50.2 dev tun0  proto kernel  scope link  src 10.123.50.1 
_PUBLIC_NETWORK_ dev eth0  proto kernel  scope link  src _PUBLIC_GW_

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.123.50.1  P-t-P:10.123.50.2  Mask:255.255.255.255                                           
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1                                               
      RX packets:307740 errors:0 dropped:0 overruns:0 frame:0                                                  
      TX packets:309435 errors:0 dropped:0 overruns:0 carrier:0                                                
      collisions:0 txqueuelen:100                                                                              
      RX bytes:20958272 (19.9 MiB)  TX bytes:66356464 (63.2 MiB)

10.0.0.0/24 - emplacement B

$ ip route list
default via _PUBLIC_IP_ dev eth0 
10.0.0.0/24 dev br0  proto kernel  scope link  src 10.0.0.1 
10.123.45.0/24 via 10.123.50.9 dev tun0 
10.123.50.0/24 via 10.123.50.9 dev tun0 
10.123.50.9 dev tun0  proto kernel  scope link  src 10.123.50.10 
169.254.0.0/16 dev eth0  scope link  metric 1000 
_PUBLIC_NETWORK_ dev eth0  proto kernel  scope link  src _PUBLIC_GW_

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.123.50.10  P-t-P:10.123.50.9  Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:37791 errors:0 dropped:0 overruns:0 frame:0
      TX packets:37122 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:7688111 (7.3 MiB)  TX bytes:2624779 (2.5 MiB)

Pour une raison quelconque, je ne peux pas atteindre les hôtes avec une adresse IP> 10.0.0.10 à partir du serveur VPS - OpenVPN et à partir de l'emplacement A

$ ping 10.0.0.12
PING 10.0.0.12 (10.0.0.12) 56(84) bytes of data.
--- 10.0.0.12 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

La commande ping depuis l'emplacement A fonctionne pour tous les hôtes avec une adresse IP <= 10.0.0.10. Tous les hôtes de 10.0.0.x fonctionnent lorsque le serveur ping situé à l'emplacement B effectue un ping

$ ping 10.0.0.10
PING 10.0.0.10 (10.0.0.10) 56(84) bytes of data.
64 bytes from 10.0.0.10: icmp_seq=1 ttl=62 time=59.2 ms
64 bytes from 10.0.0.10: icmp_seq=2 ttl=62 time=56.9 ms
64 bytes from 10.0.0.10: icmp_seq=3 ttl=62 time=57.3 ms
--- 10.0.0.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 56.998/57.861/59.230/0.998 ms

Et cela fonctionne pour tous les hôtes quand je cingler de l'emplacement B et VPS à A

$ ping 10.123.45.132
PING 10.123.45.132 (10.123.45.132) 56(84) bytes of data.
64 bytes from 10.123.45.132: icmp_seq=1 ttl=63 time=461 ms
64 bytes from 10.123.45.132: icmp_seq=2 ttl=63 time=252 ms
64 bytes from 10.123.45.132: icmp_seq=3 ttl=63 time=416 ms
...

C'est ce qui se passe du point de vue de tcpdump sur le serveur à l'emplacement B:

$ tcpdump -i br0 src 10.0.0.11 or dst 10.0.0.11 -vv

Quand je cingle depuis l'emplacement B du réseau 10.0.0.0/24, dans ce cas, cinglant 10.0.0.11 à partir de 10.0.0.1

nostromo > 10.0.0.11: ICMP echo request, id 19025, seq 1, length 64
21:52:56.910174 IP (tos 0x0, ttl 64, id 16522, offset 0, flags [none], proto ICMP (1), length 84)
10.0.0.11 > nostromo: ICMP echo reply, id 19025, seq 1, length 64
21:52:57.908878 IP (tos 0x0, ttl 64, id 2419, offset 0, flags [DF],  proto ICMP (1), length 84)
nostromo > 10.0.0.11: ICMP echo request, id 19025, seq 2, length 64
21:52:57.909110 IP (tos 0x0, ttl 64, id 16523, offset 0, flags [none],  proto ICMP (1), length 84)
10.0.0.11 > nostromo: ICMP echo reply, id 19025, seq 2, length 64
21:52:58.907874 IP (tos 0x0, ttl 64, id 2543, offset 0, flags [DF],  proto ICMP (1), length 84)
nostromo > 10.0.0.11: ICMP echo request, id 19025, seq 3, length 64

C'était OK, j'ai eu la réponse

Quand je cingle depuis un emplacement 10.123.45.0/25 sur tcpdump, j’obtiens:

10.123.45.2 > 10.0.0.11: ICMP echo request, id 8621, seq 17, length 64
21:52:14.645318 IP (tos 0x0, ttl 62, id 2554, offset 0, flags [DF], proto ICMP (1), length 84)
10.123.45.2 > 10.0.0.11: ICMP echo request, id 8621, seq 18, length 64
21:52:15.643949 IP (tos 0x0, ttl 62, id 3048, offset 0, flags [DF],  proto ICMP (1), length 84)
10.123.45.2 > 10.0.0.11: ICMP echo request, id 8621, seq 19, length 64

Il n'y a pas de réponse, mais pourquoi ???

Configuration de pont:

emplacement A:

bridge_br0="enp5s0"
config_br0="10.123.45.1/24"
brctl_br0="setfd 0 sethello 10 stp off"

emplacement B:

auto br0
iface br0 inet static
bridge_ports eth1
bridge_stp off       
bridge_waitport 0    
bridge_fd 0          
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255

Je compte sur votre sagesse, aidez s'il vous plaît.


Quel est le sous-réseau des interfaces virtuelles participant à OpenVPN?
MariusMatutiae

Je suis désolé, je ne comprends pas la question.
Krystian Marek

Fondamentalement, 10.123.50.0/24 est le sous-réseau VPN, 10.0.0.0/24 et 10.123.45.0/24 sont routés de sorte que les hôtes de 10.0.0.0/24 puissent voir les hôtes de 10.123.45.0/24 et vice-versa. Ils voient également tous les hôtes le 10.123.50.0/24. Comme je l'ai mentionné, le problème est que les hôtes du réseau 10.0.0.0/24 avec IP> 10.0.0.10 ne sont pas disponibles sur les réseaux restants.
Krystian Marek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.