Openvpn
在同一主機上的兩個 openvpn 隧道網路之間轉發數據包
我有兩個 p2p 隧道到主機 tun1 和 tun2 上的兩個不同伺服器:(主機是 Ubuntu 伺服器 18.04)
(伺服器 1:IP1)<–>(主機:IP0)<–>(伺服器 2:IP2)
對於 tun1 到伺服器 1,我有:
proto udp mode p2p remote IP1 rport 4856 local IP0 lport 4856 dev-type tun tun-ipv6 resolv-retry infinite dev tun1 comp-lzo persist-key persist-tun cipher aes-256-cbc ifconfig 192.168.76.2 192.168.76.3 secret /etc/openvpn/key.key
對於 tun2 到伺服器 2,我有:
proto udp mode p2p remote IP2 rport 4857 local IP0 lport 4857 dev-type tun tun-ipv6 resolv-retry infinite dev tun2 comp-lzo persist-key persist-tun cipher aes-256-cbc ifconfig 192.168.77.2 192.168.77.3 secret /etc/openvpn/key.key
我想將 tun1 上接收到的數據包轉發到 tun2,所以我添加了一個靜態路由:
ip route add IP4/32 via 192.168.77.3
還啟用了 IP 轉發。
sysctl -w net.ipv4.ip_forward=1
不存在 iptables 規則。所有鏈都有 ACCEPT 行為。
所有隧道介面都連接到其相應的伺服器並啟動。當我使用 dst=IP4 從伺服器 1 向隧道發送數據包時,在主機中接收到數據包,但它們沒有轉發到 tun2,我無法在伺服器 2 中使用
tcpdump
. 任何的想法?
我必須明確啟用
tun1
(傳入流量)轉發:
sysctl -w net.ipv4.conf.tun1.forwarding=1
sysctl -w net.ipv4.ip_forward=1
還不夠(其實不需要)。