Ik zal even beginnen, met toe te geven dat Linux nog wel eens een uitdaging is voor mij.
In de loop der jaren wel wat bekender mee, maar nog steeds geen expert hierin.
Ik ben wel bekend met IT en netwerken.
Ik heb sinds een tijdje een NordVPN (OpenVPN) abonnement en gebruikte mijn Edgerouter Pro 8 als Openvpn client en routeerde een aantal clients over die vpn. Dit werkte prima.
Nou is het zo dat OpenVPN vooral CPU gebruikt en de Edgerouter als OpenVPN client niet verder kwam dan rond de 10-20 Mbit/s throughput omdat de CPU het niet trok.
Nu heb ik op een overtollige Intel Nuc (i3) een kale ubuntu 16.04.4 LTS geïnstalleerd en gebruik die als 2e gateway op mijn netwerk puur om die clients over NordVPN te routeren wanneer gewenst.
Hiervoor heb ik op de verder default ubuntu ip-forwarding aangezet en IPtables ingericht.
Ik gebruik NordVPN om in te bellen naar de USA.
De Nuc heeft dus maar één netwerkkaart en gebruikt zelf ook mijn Edgerouter als gateway om de VPN op te zetten, daarna wordt de default route naar de VPN gezet.
Als ik een speedtest-cli doe op de Nuc zelf kom ik op een snelheid van 123.14 Mbit/s download en 19.27 Mbit/s upload. De CPU load gaat op dat moment naar rond de 60% vooral voor OpenVPN. Dit is meer dan voldoende.
Pak ik een client met de default gateway (dus gewoon mijn ISP KPN) dan krijg ik netjes mijn snelheid van 200Mbit/s.
Verander ik diezelde client echter die Nuc als gateway, dan kom ik niet verder als +/- 20Mbit/s down en 14 Mbit/s up. De CPU komt dan niet boven de 20% uit. Ik raak dus >80% van mijn downloadspeed kwijt door de NAT/iptables.
Nu is de vraag waar dat door komt. ik heb met speedtest-cli bevestigd dat ik op de server zelf ook gewoon over de VPN naar buiten ga.
mijn configuratie
ifconfig:
cat /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...
more /etc/iptables/rules.v4
doe ik wat verkeerd, of zie ik iets over het hoofd? Alvast bedankt!
In de loop der jaren wel wat bekender mee, maar nog steeds geen expert hierin.
Ik ben wel bekend met IT en netwerken.
Ik heb sinds een tijdje een NordVPN (OpenVPN) abonnement en gebruikte mijn Edgerouter Pro 8 als Openvpn client en routeerde een aantal clients over die vpn. Dit werkte prima.
Nou is het zo dat OpenVPN vooral CPU gebruikt en de Edgerouter als OpenVPN client niet verder kwam dan rond de 10-20 Mbit/s throughput omdat de CPU het niet trok.
Nu heb ik op een overtollige Intel Nuc (i3) een kale ubuntu 16.04.4 LTS geïnstalleerd en gebruik die als 2e gateway op mijn netwerk puur om die clients over NordVPN te routeren wanneer gewenst.
Hiervoor heb ik op de verder default ubuntu ip-forwarding aangezet en IPtables ingericht.
Ik gebruik NordVPN om in te bellen naar de USA.
De Nuc heeft dus maar één netwerkkaart en gebruikt zelf ook mijn Edgerouter als gateway om de VPN op te zetten, daarna wordt de default route naar de VPN gezet.
Als ik een speedtest-cli doe op de Nuc zelf kom ik op een snelheid van 123.14 Mbit/s download en 19.27 Mbit/s upload. De CPU load gaat op dat moment naar rond de 60% vooral voor OpenVPN. Dit is meer dan voldoende.
Pak ik een client met de default gateway (dus gewoon mijn ISP KPN) dan krijg ik netjes mijn snelheid van 200Mbit/s.
Verander ik diezelde client echter die Nuc als gateway, dan kom ik niet verder als +/- 20Mbit/s down en 14 Mbit/s up. De CPU komt dan niet boven de 20% uit. Ik raak dus >80% van mijn downloadspeed kwijt door de NAT/iptables.
Nu is de vraag waar dat door komt. ik heb met speedtest-cli bevestigd dat ik op de server zelf ook gewoon over de VPN naar buiten ga.
mijn configuratie
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
| eno1 Link encap:Ethernet HWaddr xx.xx.xx.xx inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:855286 errors:0 dropped:1 overruns:0 frame:0 TX packets:658048 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1030080800 (1.0 GB) TX bytes:434659639 (434.6 MB) Interrupt:20 Memory:f7c00000-f7c20000 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:65536 Metric:1 RX packets:22305 errors:0 dropped:0 overruns:0 frame:0 TX packets:22305 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:12378476 (12.3 MB) TX bytes:12378476 (12.3 MB) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:xx.xx.xx.xx P-t-P:xx.xx.xx.xx Mask:255.255.255.0 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:524520 errors:0 dropped:0 overruns:0 frame:0 TX packets:342422 errors:0 dropped:1245 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:633809297 (633.8 MB) TX bytes:112983869 (112.9 MB) |
cat /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...
more /etc/iptables/rules.v4
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 192.168.0.0/24 -o tun0 -j MASQUERADE COMMIT *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -s 192.168.0.0/24 -i eno1 -p icmp -j ACCEPT -A INPUT -s 192.168.0.0/24 -i eno1 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -s 192.168.0.0/24 -i eno1 -j REJECT --reject-with icmp-host-prohibited -A INPUT -j DROP -A FORWARD -i tun0 -o eno1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -d 192.168.0.0/24 -i eno1 -j DROP -A FORWARD -s 192.168.0.0/24 -i eno1 -o tun0 -j ACCEPT -A FORWARD -d 192.168.0.0/24 -i tun0 -o eno1 -j ACCEPT -A FORWARD -j DROP -A OUTPUT -j ACCEPT COMMIT |
doe ik wat verkeerd, of zie ik iets over het hoofd? Alvast bedankt!
"I see said the blind man, as he picked up his hammer and saw"