Ik wil Linux gebruiken als router, dit doe ik nu met een Raspberry Pi met een extra ethernet interface (USB-->ethernet). DHCP server en VLAN's etc. zijn ook geconfigureerd, dus een volwaardige router.
Deze router maakt verbinding met twee VPN's, beide via OpenVPN. Maar de VPN verbindingen zijn mega traag en ik kom er niet achter waarom, heeft iemand een idee?
De configuratie:
Eth0: intern, VLAN 10 t/m 80 (eth0.10, t/m eth0.80)
Eth1: extern (rechtstreeks aan ISP)
Tun0: VPN 1 naar ander lokaal netwerk
Tun1: VPN 2 naar betaalde VPN-dienst voor internet
Op de PI draait de laatste versie van Buster Lite (gebaseerd op Debian).
Beide VPN's gebruiken een andere poort en andere encryptie settings.
Client's maken gebruik van een aparte routing tabel (via policy based routing), zodat ik internet over 'n VPN kan routen. De PI zelf gebruikt gewoon eth1 als default gateway en dus de main routing tabel.
Als ik een van de twee VPN's uit zet, dan blijft de overgebleven VPN traag.
De load van de PI is prima, komt zelfs met de speedtest niet boven de 0,70. Bij 4.00 zijn alle 4 de core's pas 100% in gebruik.
Als ik een speedtest doe vanuit een client en dit routeer over eth1 dan haal ik 60/10, dat is ook exact mijn internet snelheid.
Als ik een speedtest doe over tun0 of tun1, dan schommelt download tussen de 15 en 45mbit, upload tussen de 0,5 en 5mbit.
Het vreemde is, als ik deze set-up gebruik achter een bestaande router, dus zodat eth1 van de PI niet rechtstreeks een extern IP krijgt, werkt alles snel, haal ik op beide VPN's 58/9mbit (dus bijna mijn internet snelheid). Wat gaat er mis?
Mijn settings:
Main routinetabel:
Ifconfig:
Routing tabel voor de clients:
Iptables NAT:
Iptables:
Deze router maakt verbinding met twee VPN's, beide via OpenVPN. Maar de VPN verbindingen zijn mega traag en ik kom er niet achter waarom, heeft iemand een idee?
De configuratie:
Eth0: intern, VLAN 10 t/m 80 (eth0.10, t/m eth0.80)
Eth1: extern (rechtstreeks aan ISP)
Tun0: VPN 1 naar ander lokaal netwerk
Tun1: VPN 2 naar betaalde VPN-dienst voor internet
Op de PI draait de laatste versie van Buster Lite (gebaseerd op Debian).
Beide VPN's gebruiken een andere poort en andere encryptie settings.
Client's maken gebruik van een aparte routing tabel (via policy based routing), zodat ik internet over 'n VPN kan routen. De PI zelf gebruikt gewoon eth1 als default gateway en dus de main routing tabel.
Als ik een van de twee VPN's uit zet, dan blijft de overgebleven VPN traag.
De load van de PI is prima, komt zelfs met de speedtest niet boven de 0,70. Bij 4.00 zijn alle 4 de core's pas 100% in gebruik.
Als ik een speedtest doe vanuit een client en dit routeer over eth1 dan haal ik 60/10, dat is ook exact mijn internet snelheid.
Als ik een speedtest doe over tun0 of tun1, dan schommelt download tussen de 15 en 45mbit, upload tussen de 0,5 en 5mbit.
Het vreemde is, als ik deze set-up gebruik achter een bestaande router, dus zodat eth1 van de PI niet rechtstreeks een extern IP krijgt, werkt alles snel, haal ik op beide VPN's 58/9mbit (dus bijna mijn internet snelheid). Wat gaat er mis?
Mijn settings:
Main routinetabel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 217.121.136.1 0.0.0.0 UG 203 0 0 eth1 10.0.10.0 0.0.0.0 255.255.255.0 U 205 0 0 eth0.20 10.0.30.0 0.0.0.0 255.255.255.0 U 208 0 0 eth0.80 10.0.200.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0 10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 10.45.112.0 0.0.0.0 255.255.255.0 U 0 0 0 tun1 192.168.5.0 0.0.0.0 255.255.255.0 U 204 0 0 eth0.10 192.168.10.0 0.0.0.0 255.255.255.0 U 206 0 0 eth0.40 192.168.20.0 0.0.0.0 255.255.255.0 U 207 0 0 eth0.60 217.121.136.0 0.0.0.0 255.255.254.0 U 203 0 0 eth1 |
Ifconfig:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.200.254 netmask 255.255.255.0 broadcast 10.0.200.255 ether b8:27:eb:cb:72:82 txqueuelen 1000 (Ethernet) RX packets 187 bytes 17278 (16.8 KiB) RX errors 0 dropped 2 overruns 0 frame 0 TX packets 115 bytes 12961 (12.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 217.121.137.XXX netmask 255.255.254.0 broadcast 255.255.255.255 ether d0:37:45:d1:da:57 txqueuelen 1000 (Ethernet) RX packets 27 bytes 9846 (9.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 45 bytes 7224 (7.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0.10: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.5.254 netmask 255.255.255.0 broadcast 192.168.5.255 ether b8:27:eb:cb:72:82 txqueuelen 1000 (Ethernet) RX packets 179 bytes 13998 (13.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 47 bytes 6865 (6.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0.20: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.10.254 netmask 255.255.255.0 broadcast 10.0.10.255 ether b8:27:eb:cb:72:82 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 14 bytes 1146 (1.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0.40: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.254 netmask 255.255.255.0 broadcast 192.168.10.255 ether b8:27:eb:cb:72:82 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 14 bytes 1164 (1.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0.60: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.20.254 netmask 255.255.255.0 broadcast 192.168.20.255 ether b8:27:eb:cb:72:82 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 14 bytes 1164 (1.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0.80: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.30.254 netmask 255.255.255.0 broadcast 10.0.30.255 ether b8:27:eb:cb:72:82 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 13 bytes 1104 (1.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1000 (Local Loopback) RX packets 97 bytes 7917 (7.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 97 bytes 7917 (7.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.8.0.3 netmask 255.255.255.0 destination 10.8.0.3 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX packets 2 bytes 398 (398.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 160 (160.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 tun1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.45.112.132 netmask 255.255.255.0 destination 10.45.112.132 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
Routing tabel voor de clients:
code:
1
2
3
4
5
6
7
| default dev tun1 scope link 10.0.10.0/24 via 10.0.10.254 dev eth0.20 10.0.30.0/24 via 10.0.30.254 dev eth0.80 10.8.0.0/24 via 10.8.0.1 dev tun0 192.168.5.0/24 via 192.168.5.254 dev eth0.10 192.168.10.0/24 via 192.168.10.254 dev eth0.40 192.168.20.0/24 via 192.168.20.254 dev eth0.60 |
Iptables NAT:
code:
1
2
3
| 11 759 MASQUERADE all -- * eth1 0.0.0.0/0 0.0.0.0/0 43 2704 MASQUERADE all -- * tun1 0.0.0.0/0 0.0.0.0/0 79 5669 MASQUERADE all -- * tun0 0.0.0.0/0 0.0.0.0/0 |
Iptables:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| -P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT -A INPUT -i eth0.10 -j ACCEPT -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i eth0.10 -o tun1 -j ACCEPT -A FORWARD -i eth0.20 -o tun1 -j ACCEPT -A FORWARD -i eth0.40 -o tun1 -j ACCEPT -A FORWARD -i eth0.60 -o tun1 -j ACCEPT -A FORWARD -i eth0.80 -o tun1 -j ACCEPT |
[Voor 46% gewijzigd door Streutjes op 15-03-2021 14:27]