我想将来自客户端(192.168.1.0/24)所有stream量从openwrt网关(0.0.0.0/0)转出到服务器openvpn隧道。
服务器有一个openvpn隧道。 它也设置了选项:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE net.ipv4.ip_forward=1 tun0 is the default gateway
Openwrt是Internet的默认网关。 所以如果我手动更改客户端的默认网关到服务器IP 192.168.1.2 – 它的工作原理。
+------------+ | INTERNET | +------|-----+ | | | +--------|-------+ | OpenWRT | | | | 192.168.1.1/24 | +---|----|-------+ | | | | +-------------+ | | | Server | | | | | +---------------+ | |--------192.168.1.2 | | Client | | | | | | ----+ +-------|tun0 | | 192.168.1.101 | | | +---------------+ +-------------+
标记除服务器之外的所有数据包:
iptables -t mangle -I PREROUTING -i br-lan '!' -s 192.168.1.2 -d 0.0.0.0/0 -j MARK --set-mark 1
然后通过新的路由表路由它们,路由表具有默认路由192.168.1.2但没有运气。 交通堵塞路由器。
ip route add default via 192.168.1.2 table vpn ip rule add fwmark 1 lookup vpn
其实,在我写这个的时候,我认识到我可以在dnsmasq路由器上使用dhcp-option = 3,192.168.1.2来发送所有客户端的首选网关。 它工作:)也许这是最好的溶剂。 但是,是否有可能路由所有的交通与iptables和路由openwrt方?