![ip route add -net 10.11.208.92/30 通过 10.3.0.1](https://linux22.com/image/673642/ip%20route%20add%20-net%2010.11.208.92%2F30%20%E9%80%9A%E8%BF%87%2010.3.0.1.png)
好吧,这应该很容易,但它让我抓狂。
设想:
站点 A(旧金山) 站点 B(哥伦比亚)
两个站点通过 IPSec(openswan,debian 8)成功连接:
站点 A---------------站点 B
10.2.0.1 <==inet==> 10.3.0.1
我可以从 SiteA 成功 PING 10.3.0.1....此外,10.3.0.0 子网中的 10 个电话分机连接到 SiteA。太好了,没问题。
但请注意 10.3.0.1未列出作为 SiteA 内核路由表下任何位置的路由,但如果我从 10.2.0.1 执行 ping 操作,它就可以工作。
问题:
好的。我刚刚在 SiteB 中添加了一个 SIP 路由器 10.11.208.93。SiteA 需要是 10.11.208.94,并且必须能够通过 10.3.0.1 到达 10.11.208.93。我已在 SiteB 的 10.3.0.1 上成功添加了此网桥。
当我尝试通过 SiteA 中的 10.3.0.1 创建到 SIP 路由器的静态路由时,路由命令显示主机不可访问。但我可以从 SiteA ping 10.3.0.1。
ip route add -net 10.11.208.92/30 通过 10.3.0.1
SIOADDR:主机不可访问
问题是:strongswan(ipsec)到底在哪里/如何配置linux路由表以通过隧道到达10.3.0.1???它没有显示在路由表上。
如果我可以 ping 10.3.0.1,为什么不能使用它作为到达其后面子网的路由,因为已经有了一个可以运行的隧道?
答案1
strongSwan 默认在路由表 220 中安装路由。您可以使用 查看这些路由ip route list table 220
。
但是添加路由不会让您的流量通过隧道传输。IPsec 是基于策略的(您可以使用 查看这些策略ip xfrm policy
),因此如果您有一个允许流量(例如 10.2.0.0/16 和 10.3.0.0/16)之间的 IPsec 策略,则实际上只有匹配的流量才会通过隧道传输。而从 10.11.208.94 发送到 10.11.208.93 的数据包则不是这种情况。因此,您必须明确添加覆盖这些 IP 的隧道。