如何将 ocserv 流量路由到 wireguard 拆分隧道

如何将 ocserv 流量路由到 wireguard 拆分隧道

我想将 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

但无法访问互联网。

相关内容