为什么这个单一地址的路由会失败?

为什么这个单一地址的路由会失败?

概括:我想将从特定 IP 发起的流量路由到 VPN

现有的答案:有几个问题和答案(12) 可以解决这个确切的问题,但对我来说不起作用。

细节

该设置在 Debian 8 上。我有一个 OpenVPN 连接10.8.8.134(与远程对等10.8.8.133),我想通过它来路由来自的流量192.168.10.10

192.168.10.10是 上手动创建的 IP eth0,它也通过 DHCP 接收地址 ( 192.168.0.107) 和默认路由 ( 192.168.1.1)。

我将 OpenVPN 设置为

  • 拒绝来自服务器的路由(--route-noexec
  • 删除 OpenVPN 添加的“假默认路由”(两个范围覆盖所有 IPV4)
  • 通过(分配的 OpenVPN 地址)添加路由到10.8.8.1/255.255.255.255(OpenVPN 服务器 gw)10.8.8.133

为了强制流量192.168.10.10通过 VPN,我尝试

  • ip route add 192.168.10.10 dev tun0
  • 或者ip route add 192.168.10.10 via 10.8.8.133

生成的路由表

root@debian-testing:~# ip route
default via 192.168.1.1 dev eth0
10.8.8.1 via 10.8.8.133 dev tun0
10.8.8.133 dev tun0  proto kernel  scope link  src 10.8.8.134
169.254.0.0/16 dev eth0  scope link  metric 1000
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.107
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.10

额外的路由相当于route 192.168.10.10 255.255.255.255在 OpenVPN 配置文件中使用。

在两种情况下运行

traceroute -s 192.168.10.10 www.google.com

将数据包发送到真正的默认网关:

root@debian-testing:~# traceroute -s 192.168.10.10 www.google.com
traceroute to www.google.com (173.194.112.20), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *

tcpdump从(和 wireshark中可以看到)

在此处输入图片描述

为什么这个路由不起作用?

相关内容