我使用 strongswan 设置了隧道 ipsec,并使用 x509 PKI 打开了隧道。隧道建立正确,但我遇到了一些问题。
带有 iked 的网关无法 ping 通路由器 vyatta 的本地 IP,但 vyatta 可以 ping 通带有 iked 的网关的本地 IP。
子网 10.1.1.0/24 不能加入子网 10.3.3.0/24(反之亦然)
下面是我的配置模式:
10.2.2.0/24 10.3.3.0/24
+---------------+ +--------+.100 +-------+ ISP +---------+.1
|Private subnet +---^| FW +------^+ Box +^---------+FW |
+---------------+ 1.--------+ +-------+ +---------+
10.1.1.0/24 Strongswan NAT OpenBSD (iked)
vyatta
我的 iked.conf:
ikev2 "site2" passive esp \
from 10.3.3.1 to 10.2.2.100 \
from 10.3.3.0/24 to 10.1.1.0/24 \
peer any local any \
srcid iked.example.com dstid vyatta.example.com \
#ikesa auth hmac-sha2-256 enc aes-256-ctr group modp2048 \
childsa auth hmac-sha2-512 enc aes-256-ctr group modp2048 \
tag "$name-$id"
我的 ipsec.conf(strongswan):
conn site1
keyexchange=ikev2
dpddelay=5s
dpdtimeout=60s
dpdaction=restart
left=%defaultroute
leftcert=vyatta.crt.pem
leftsubnet=10.1.1.0/24,10.2.2.100
leftfirewall=yes
leftid="vyatta.example.com"
right=10.3.3.1
rightsubnet=10.3.3.0/24
rightid="iked.example.com"
auto=start
但是,当我在 iked 网关上添加这两条路由时,一切正常:
route add -inet 10.2.2.100 -llinfo -link -static -iface vmx1
route add -inet 10.1.1.0/24 10.2.2.100
除了一件事。当我从数据包过滤器中创建重定向 rdr-to 和 nat-to 组合时,它不起作用。数据包被正确地重定向到 10.1.1.0/24 子网上的服务器,并且源 IP 已进行网络地址转换(snat 为 10.3.3.1)。我注意到 openbsd 没有转发,因为它请求 10.2.2.100 的 arp 地址,我不明白为什么。所以我不知道为什么数据包没有封装在隧道中,当我执行“tcpdump enc0”时我什么也看不到。
因此,我有两个问题:
- 为什么我的 iked 网关在没有路由的情况下无法 ping vyatta 网关?我的配置文件 (iked.conf) 中缺少什么吗?
- 为什么 openbsd 发出 arp 请求而不是在 enc0 中重定向数据包?
答案1
这个问题已经是几个月前的问题了,所以你可能早就搞清楚了你的问题。而且这很可能没有回答你的问题。但我注意到你已经注释掉了文件ikesa
中的选项iked.conf
。我刚刚(艰难地)发现注释后面的所有内容都不会被评估。因此,如果你使用pf
来引用你的$name-$id
标签,它将无法正确评估,因为iked
永远不会解释此选项。childsa
如果这对你的设置很重要,那么你的 也是如此。