Eu tenho uma interface wireguard wg_vpn, mas eu não quero que ela seja global, então eu adiciono a linha "Table = off" ao wg_vpn.conf para evitar que wg-quick modifique a tabela de rotas.
Eu também tenho uma interface openvpn/wireguard tun0/wg0, e os clientes podem acessar meu servidor através dela. Eu criei estas regras do iptables:
iptables -t nat -A POSTROUTING -o wg_vpn -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wg0 -o wg_vpn -j ACCEPT
ip6tables -t nat -A POSTROUTING -o wg_vpn -j MASQUERADE
ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i wg0 -o wg_vpn -j ACCEPT
Mas eles não funcionam, a menos que eu torne wg_vpn global por:
ip route add default dev wg_vpn
ip -6 route add default dev wg_vpn
Então eles trabalham.
Mas eu só quero encaminhar tun0/wg0 para wg_vpn sem modificar a tabela de rotas global, então posso saber como conseguir isso?
Desde já, obrigado!
Use o roteamento de política com o
ip rule
.Em vez de
Table=off
, especifiqueTable=123
para fazer com que wg-quick coloque as rotas em uma tabela separada (qualquer número de 16 bits, exceto 253–255, que são as tabelas globais)....ou adicione manualmente suas rotas a uma nova tabela:
Crie regras de roteamento de política para selecionar esta tabela para pacotes recebidos de tun0: