День добрый! Есть репо GitHub - Diniboy1123/usque: Open-source reimplementation of the Cloudflare WARP client's MASQUE protocol. в котором реализовано создание tun интерфейса WARP. С помощью iproute2 можно сделать его как default машрут на системе. Но никак не получается запустить комп как роутер, который весь трафик отправляет в WARP. Подскажите как сделать WARP default шлюзем для роутера и всех его клиентов? Также при работе с клиентами, в моменты когда все работает иногда, наблюдаются дичайшие тормоза на клиентах, но потом все соединение просто зависает.
делал так
usque nativetun --sni-address=rkn.userapi.com --interface-name=tun0 sudo ip r a 162.159.xxx.xxx/32 via 192.168.1.1 dev eno1 metric 10 sudo ip r a default dev tun0 metric 100 sudo ip -6 r a default dev tun0 metric 100 далее делал маскардинг для v4 и v6 адресов с br-lan на tun0 по ниче не работало
10000 метрика на роутер default
default это ж 0.0.0.0/0, но ведь сначала применябтся маршруты с наибольшей маской, т е сначала отработают /32 правила, а default когда ничего не подошло.
на warp интерфейс tun0 ставится ipv4 затычка 172.16.0.2/32 и ipv6 2606:4700:110:че-то там:1/128, так что там надо маскардить все на ip роутера
client(192.168/24) —> [ router (192.168/24) - masquerade (br to tun0) - tun0 via eno1 - eno1 (10/32 via ISP) ]
nft add rule ip filter forward tcp flags syn / syn,rst tcp option maxseg size set rt mtu
Может быть несколько default марштуров, например:
default via 192.168.0.1 dev enxX proto static
default via 192.168.1.1 dev vlan1 proto static metric 100
default via 192.168.2.1 dev vlan2 proto static metric 200
default via 192.168.3.1 dev vlan3 proto static metric 300
Можете отправить все настройки сети, чтобы понять, что и как у вас настроено?
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc cake state UP group default qlen 1000
link/ether 66:17:8a:f9:22:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.1.9/24 brd 192.168.1.255 scope global noprefixroute eno1
valid_lft forever preferred_lft forever
inet6 fe80::3701:f958:3ad2:6652/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlo9: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 7a:94:51:db:b0:02 brd ff:ff:ff:ff:ff:ff
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc cake state UNKNOWN group default qlen 500
link/none
inet 172.16.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 2606:4700:110:xxxx:xxxx:xxxx:xxxx:xxxx/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::fd32:b15e:86d0:1ecf/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
ip r
default dev tun0 scope link metric 10000
default via 192.168.1.1 dev eno1 proto static metric 90000
162.159.198.1 via 192.168.1.1 dev eno1 metric 10
192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.9 metric 100
ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
sudo nft create table ip my
sudo nft "create chain ip my forw { type filter hook forward priority filter; policy accept; }"
sudo nft add rule ip my forw tcp flags syn tcp option maxseg size set rt mtu