Альтернативный шлюз в Debian работает медленно
Я искал способ использования стороннего VPN-соединения для определенного трафика в моей локальной сети. Я создал небольшую виртуальную машину Debian (192.168.1.54), которая подключается к моей сторонней VPN с другими устройствами в моей сети, способными маршрут через эту виртуальную машину для использования VPN.
На других устройствах в моей сети, когда я настраиваю шлюз по умолчанию в качестве маршрутизатора (.1) или виртуальной машины Debian (.54), задержка/скорость довольно хорошие. Однако на второй виртуальной машине Debian (.64) я создал вторичную таблицу маршрутизации, которая, похоже, работает не так, как мне хотелось бы.
Я настроил таблицу маршрутизации для конкретного пользователя с UID = 1001, что означает, что я могу запускать процессы, используя этот UID, для маршрутизации трафика через виртуальную машину VPN. Однако трафик через эту вторичную таблицу маршрутизации очень медленный.
Я уверен, что меня подводит мой достаточно простой уровень таблиц маршрутизации, но я выполнил следующие команды:
1. echo 200 vpntable >> /etc/iproute2/rt_tables
2. ip route add 0.0.0.0/0 via 192.168.1.54 table vpntable
3. ip rule add uidrange 1001-1001 lookup vpntable
Вывод нескольких соответствующих команд выглядит следующим образом:
$ uname -a
Linux ServerDebVM 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux
$ ip rule
0: from all lookup local
32765: from all uidrange 1001-1001 lookup vpntable
32766: from all lookup main
32767: from all lookup default
$ ip route list
default via 192.168.1.1 dev ens18 proto dhcp metric 100
172.18.0.0/16 dev br-a153dd5b3f53 proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev ens18 proto kernel scope link src 192.168.1.64 metric 100
$ ip route list table vpntable
default via 192.168.1.54 dev ens18
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
$ ip -d address show ens18
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether a2:fb:31:95:6d:56 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
altname enp0s18
inet 192.168.1.64/24 brd 192.168.1.255 scope global dynamic noprefixroute ens18
valid_lft 84600sec preferred_lft 84600sec
inet6 fe80::a0fb:31ff:fe95:6d56/64 scope link noprefixroute
valid_lft forever preferred_lft forever
В качестве дополнительной информации: раньше я использовал DD-WRT на маршрутизаторе, но сейчас это для меня не вариант. Также я мог бы установить сторонний VPN-клиент на каждом компьютере в моей сети, но я ограничен всего пятью устройствами.
Спасибо