通过 OpenVPN 客户端隧道将流量路由到子网

通过 OpenVPN 客户端隧道将流量路由到子网

我有一个由 Shorewall 提供支持的伪装路由器:

  • eth0:DHCP 客户端,外部接口(net区域)
  • eth1:静态,内部接口(loc区域)

现在我想添加一个 OpenVPN 客户端,当连接建立时创建一个 TUN 设备:tun1,并且我想将发往子网 30.40.50.0/24 的所有流量路由到 VPN 隧道。所有其他流量应像以前一样通过 eth0 发出。
如果 VPN 连接断开(并且 TUN 设备不存在),则发往该子网的流量也应通过 eth0,作为​​后备。

似乎我的/etc/shorewall/routes被完全忽略了,因为所有流量仍然通过 eth0 发出。
我做错了什么?

简而言之,这是我的 Shorewall 配置:

/etc/shorewall/zones

#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4
tun     ipv4    # tunnels for outgoing traffic

/etc/shorewall/interfaces

#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth0            detect          
loc     eth1            detect          
tun     tun1            -               optional

/etc/shorewall/providers

#NAME   NUMBER  MARK    DUPLICATE       INTERFACE       GATEWAY         OPTIONS         COPY
ISP     1       1       main            eth0            detect          fallback
TUN     2       2       -               tun1            detect

/etc/shorewall/routes

#PROVIDER               DEST                    GATEWAY         DEVICE
#specifying default route causes error, so it's commented out:
#   ERROR: Command "ip -4 route add 0.0.0.0/0 dev eth0 table 1" Failed
#ISP                    0.0.0.0/0

# THIS ROW has no effect
TUN                     30.40.50.0/24

/etc/shorewall/masq

#INTERFACE:DEST         SOURCE          ADDRESS         PROTO   PORT(S) IPSEC   MARK    USER/   SWITCH  ORIGINAL
#                                                                                       GROUP           DEST
# masqueraded LAN subnet is 10.0.0.0/24
eth0                    10.0.0.0/24
tun1                    10.0.0.0/24

命令结果shorewall show routing被粘贴这里

相关内容