我想将 ocserv 流量路由到 wireguard 拆分隧道
这是净流量
[ (ocserv client) ] =====> [ server A (ocserv + wg server) ] <===== [ server B (wg client) ]
由于防火墙阻止了 wg 协议(在服务器 A 和 B 之间),因此已从服务器 B 到服务器 A 建立了 wg 隧道(反向隧道)。
目标是 ocserv 客户端应该能够通过 wireguard 拆分隧道(已在服务器 A 和 B 之间建立)访问服务器 B 上的 Internet(流量源自服务器 B)
客户
- 到 ocserv 的完整路由(服务器 A)
服务器A
- ocserv 网络
192.168.200.0/24
- ocserv 网关
192.168.200.1
- 工作组服务器
192.168.250.1/24
工作组服务器address
Address = 192.168.250.1/24
iptable
# source NAT
# 192.168.250.1 is wg server ip
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o wg_server -j SNAT --to-source 192.168.250.1
ip route(基于策略的路由)
# wg_out is just an name for routing table
ip rule show table wg_out
32752: from 192.168.200.0/24 lookup wg_out
### default route for wg_out
ip route show table wg_out
default via 192.168.250.2 dev wg_server
### 192.168.250.2
### is the wg client ip (other side of the tunnel)
tcpdump 检查
如果 ocserv 客户端ping -c1 1.1.1.2
tcpdump -i any icmp and dst host 1.1.1.2
### 192.168.200.95
### ocserv client IP
17:53:01.693154 fun0 In IP 192.168.200.95 > 1.1.1.2: ICMP echo request, id 311, seq 4, length 64
### 192.168.250.1
### wg server IP
17:53:01.693173 wg_server Out IP 192.168.250.1 > 1.1.1.2: ICMP echo request, id 311, seq 4, length 64
服务器B
- 工作组客户端
192.168.250.2/24
iptables
### allow ocserv network
-A POSTROUTING -s 192.168.200.0/24 -j SNAT --to-source server-B-public-IP
路由
允许 ocserv 网络通过 wg 客户端接入
192.168.200.0/24 dev wg_client scope link
工作组客户端AllowedIPs
AllowedIPs = 192.168.250.0/24,192.168.200.0/24
应该添加/更改什么,以便 ocserv 客户端可以访问服务器 B 上的 Internet?
通过此设置,ocserv 客户端可以访问
- 工作组服务器
192.168.250.1
- 工作组客户端
192.168.250.2
但无法访问互联网。