Sper ca ma puteti ajuta cu problema mea. Construiesc o rețea pentru uz personal și am găsit unele probleme, nu am experiență în rețele. Voi explica folosind imaginea atașată:
Diagrama infrastructurii rețelei
Problemă:
Nu pot ajunge la dispozitive dintr-o rețea locală folosind Wireguard și un router VPN bazat pe Raspberry, care include servicii din rețeaua locală (camere, server web personal, baze de date).
Poartă:
Ajungeți la dispozitive și la serviciile acestora de la serverul și clienții la distanță. Am căutat și am schimbat configurații, dar niciuna nu funcționează. Uneori de la 10.6.0.1, pot ajunge la IP 172.16.0.1 și atât.
Descrierea infrastructurii:
Serverul Wireguard (a) este situat peste o instanță Oracle, așa cum se arată în imagine și are următoarele caracteristici:
IP public 158.43.56.3 (exemplu IP)
IP intern 10.0.0.183 prin interfața ens3
IP-ul serverului Wireguard 10.6.0.1 prin interfața wg0
Port Wireguard 51820
Wireward instalat prin pivpn
În rețeaua locală, modemul furnizează rețeaua 192.168.100.XX (wifi sau ethernet)
În rețeaua care furnizează modemul există un Raspberry Pi 4 (b) cu Ubuntu 20.04 care funcționează ca router cu fir cu următoarele caracteristici:
- IP local 192.168.100.182 prin interfața eth0
- IP Wireguard ca Peer 10.6.0.5 peste interfața wg0
- IP subrețea locală 172.16.0.1 prin interfața eth1 (adaptor usb-ethernet)
- Server DHCP pe interfața eth1
Un comutator este conectat la interfața eth1
Diferite dispozitive (Server, Camere IP, DVR) se conectează la comutator și DHCP le oferă IP cu formatul 172.16.0.XX cu intervale între 172.16.0.10 și 172.16.0.200 (b.a, b.b, b.c de exemplu)
Dispozitive din alte rețele conectate la VPN (de exemplu 10.6.0.3)
Configurația mea actuală este următoarea (După cum puteți vedea, am încercat):
Server Wireguard:
[Interfață]
PrivateKey = yL743NyU0M1z7guWxA9kekW7DAOXzO8EDfkAaG+jSGQ=
Adresa = 10.6.0.1/24
MTU = 1420
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT;
PostUp = iptables -A FORWARD -o wg0 -j ACCEPT;
PostUp = iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostUp = sysctl -q -w net.ipv4.ip_forward=1
#PostUp = route del -net 172.16.0.0/24 dev wg0
#iptables -t nat -A PREROUTING -d 172.16.0.0/24 -j DNAT --to-destination 10.6.0.1
#PostUp = iptables -t nat -A PREROUTING -d 172.16.0.0/24 -j DNAT --to-destination 10.6.0.1
#PostUp = iptables -t filter -A FORWARD -s 10.6.0.0/24 -d 172.16.0.0/24 -j ACCEPT
#PostUp = iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -d 172.16.0.0/24 -j MASQUERADE
PostDown = sysctl -q -w net.ipv4.ip_forward=0
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT;
PostDown = iptables -D FORWARD -o wg0 -j ACCEPT;
PostDown = iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
##PostUp = iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ens3 -j TCPMSS --clamp-mss-to-pmtu
##PostUp = iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
##PostUp = iptables -A FORWARD -i ens3 -j ACCEPT
##PostUp = sysctl -q -w net.ipv4.ip_forward=1
##PostDown = sysctl -q -w net.ipv4.ip_forward=0
##PostDown = iptables -D FORWARD -i ens3 -j ACCEPT
##PostDown = iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
##PostDown = iptables -t mangle -D POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ens3 -j TCPMSS --clamp-mss-to-pmtu
### începe dispozitivul huawei ###
[Peer]
PublicKey = WaP0UPdQWKE0uy3F750cOEeLmLkikdtw0XAw/eGcrFI=
PresharedKey = fMqhe7jxsC9ukEhymPOXCogWMWo82TzIx6Veg+8lslc=
AllowedIPs = 10.6.0.2/24
### terminați dispozitivul huawei ###
### începe mac ###
[Peer]
PublicKey = ZCAV6xDLswBuqYWs38JYwvx2fwvmR1uEFRIAD760pxI=
PresharedKey = JdtJFaWUG2ECAfLX05WCyz/rrcs6VWFkVgnvEqnqhHo=
AllowedIPs = 10.6.0.3/32
AllowedIPs = 172.16.0.10/32
PersistentKeepalive = 15
### termina mac ###
### începe rasprouter ###
[Peer]
PublicKey = r56sl4HNKHFkz8/r+aGqOHClMuXUt9lGE34gpktP5Q4=
PresharedKey = ukAcmfZUaMuVq53ruIYWmADwDYq0W+0KNjgAQ/ojqH4=
AllowedIPs = 10.6.0.5/32
AllowedIPs = 172.16.0.10/32
PersistentKeepalive = 15
### sfârșitul mașinii de tăiat ###
Router cu fir Raspberry
[Interfață]
PrivateKey = SJXlysVGPfvodzG98EbwrZNvuPqo4sATLKaTB3Kqe20=
Adresa = 10.6.0.5/24
DNS = 1.1.1.1
###PostUp = sysctl -w net.ipv4.ip_forward=1
###PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
###PostUp = iptables -A FORWARD -o wg0 -j ACCEPT
###PostUp = iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
###PostUp = iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
###PostDown = sysctl -w net.ipv4.ip_forward=0
###PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
###PostDown = iptables -D FORWARD -o wg0 -j ACCEPT
###PostDown = iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
###PostDown = iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE; iptables -A FORWARD -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE; iptables -D FORWARD -o wg0 -j ACCEPT
[Peer]
PublicKey = mCK/FAHGtXFBNLS5WpHhSPEBvZRwY09HohD1YkNCNSI=
PresharedKey = ukAcmfZUaMuVq53ruIYWmADwDYq0W+0KNjgAQ/ojqH4=
Punct final = 158.43.56.3:51820
#AllowedIPs = 0.0.0.0/0, ::/1
AllowedIPs = 172.16.0.10/32
AllowedIPs = 10.6.0.0/24
PersistentKeepalive = 25
Client suplimentar (Mac în imagine) pe un alt LAN, departe
[Interfață]
PrivateKey = YH+51/x6MoErmogdOs0UUzIF6W6Oz56t7BhhW9dFvXM=
Adresa = 10.6.0.3/24
DNS = 1.1.1.1
[Peer]
PublicKey = mCK/FAHGtXFBNLS5WpHhSPEBvZRwY09HohD1YkNCNSI=
PresharedKey = JdtJFaWUG2ECAfLX05WCyz/rrcs6VWFkVgnvEqnqhHo=
Punct final = 158.43.56.3:51820
### AllowedIPs = 0.0.0.0/0, ::0/0
AllowedIPs = 172.16.0.10/32
AllowedIPs = 10.6.0.0/24
PersistentKeepalive = 25
În continuare, împărtășesc starea infrastructurii
De pe server Starea serverului Pastebin
De la Raspberry Wired Router Stare Pastebin Zmeura
Teste
De la a la b funcționează
ubuntu@instance-20210915-wireguard:~$ ping 10.6.0.5
PING 10.6.0.5 (10.6.0.5) 56(84) octeți de date.
64 de octeți din 10.6.0.5: icmp_seq=1 ttl=64 time=75,1 ms
64 de octeți din 10.6.0.5: icmp_seq=2 ttl=64 time=74,8 ms
^C
--- 10.6.0.5 statistici ping ---
2 pachete transmise, 2 primite, 0% pierdere de pachete, timp 1001 ms
rtt min/avg/max/mdev = 74,772/74,920/75,069/0,148 ms
De la a la b.a nu merge
ubuntu@instance-20210915-wireguard:~$ ping 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(84) octeți de date.
^C
--- 172.16.0.1 statistici ping ---
4 pachete transmise, 0 primite, 100% pierdere de pachete, timp 3075 ms
De la a la c funcționează
ubuntu@instance-20210915-wireguard:~$ ping 10.6.0.3
PING 10.6.0.3 (10.6.0.3) 56(84) octeți de date.
64 de octeți din 10.6.0.3: icmp_seq=1 ttl=64 timp=78,5 ms
64 de octeți din 10.6.0.3: icmp_seq=2 ttl=64 time=119 ms
64 de octeți din 10.6.0.3: icmp_seq=3 ttl=64 time=77,9 ms
^C
--- 10.6.0.3 statistici ping ---
3 pachete transmise, 3 primite, 0% pierdere de pachete, timp 2003 ms
rtt min/avg/max/mdev = 77,888/91,816/119,047/19,256 ms
De la b la a funcționează
ubuntu@ubuntu:~$ ping 10.6.0.1
PING 10.6.0.1 (10.6.0.1) 56(84) octeți de date.
64 de octeți din 10.6.0.1: icmp_seq=1 ttl=64 time=74,3 ms
64 de octeți din 10.6.0.1: icmp_seq=2 ttl=64 time=74,5 ms
^C
--- 10.6.0.1 statistici ping ---
2 pachete transmise, 2 primite, 0% pierdere de pachete, timp 1002 ms
rtt min/avg/max/mdev = 74,334/74,396/74,459/0,062 ms
De la c la a funcționează
user@MacBook-Pro-user Descărcări % ping 10.6.0.1
PING 10.6.0.1 (10.6.0.1): 56 de octeți de date
64 de octeți din 10.6.0.1: icmp_seq=0 ttl=64 time=80.921 ms
64 de octeți din 10.6.0.1: icmp_seq=1 ttl=64 time=78.086 ms
64 de octeți din 10.6.0.1: icmp_seq=2 ttl=64 time=91.625 ms
^C
--- 10.6.0.1 statistici ping ---
3 pachete transmise, 3 pachete primite, 0,0% pierdere de pachete
dus-întors min/avg/max/stddev = 78,086/83,544/91,625/5,830 ms
De la b la c nu merge
ubuntu@ubuntu:~$ ping 10.6.0.3
PING 10.6.0.3 (10.6.0.3) 56(84) octeți de date.
Din 10.6.0.1 icmp_seq=1 Gazdă de destinație interzisă
Din 10.6.0.1 icmp_seq=2 Gazdă de destinație interzisă
^C
--- 10.6.0.3 statistici ping ---
2 pachete transmise, 0 primite, +2 erori, 100% pierdere de pachete, timp 1002 ms
De la c la b nu merge
user@MacBook-Pro-user Descărcări % ping 10.6.0.5
PING 10.6.0.5 (10.6.0.5): 56 de octeți de date
92 de octeți de la 10.6.0.1: Dest inaccesibil, cod greșit: 10
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 25f3 0 0000 3f 01 41a3 10.6.0.3 10.6.0.5
Solicitare timeout pentru icmp_seq 0
92 de octeți de la 10.6.0.1: Dest inaccesibil, cod greșit: 10
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 a5cc 0 0000 3f 01 c1c9 10.6.0.3 10.6.0.5
Solicitați timeout pentru icmp_seq 1
^C
--- 10.6.0.5 statistici ping ---
3 pachete transmise, 0 pachete primite, 100,0% pierdere de pachete
De la b la b.a functioneaza!!
ubuntu@ubuntu:~$ ping 172.16.0.10
PING 172.16.0.10 (172.16.0.10) 56(84) octeți de date.
64 de octeți din 172.16.0.10: icmp_seq=1 ttl=64 time=74,6 ms
64 de octeți din 172.16.0.10: icmp_seq=2 ttl=64 time=74,5 ms
^C
--- 172.16.0.10 statistici ping ---
2 pachete transmise, 2 primite, 0% pierdere de pachete, timp 1002 ms
rtt min/avg/max/mdev = 74,455/74,541/74,627/0,086 ms
Ei bine, scopul este să poți ajunge cel puțin de la IP 10.6.0.1 la 172.16.0.XX.
Folosind OpenVPN pot defini infrastructura fără probleme, dar lățimea de bandă este groaznică.
Sunt atât de prost să lucrez cu infrastructurile de rețea, îmi pare rău.
Ce urmeaza?
Utilizați Nginx pentru a consuma servicii și pentru a implementa Apache Airflow pentru a procesa informațiile pe care le generez în LAN-ul meu.
Mulțumesc anticipat
Edit: am mai postat-o pe site greșit