因此,我已设法使用 来在两个主机之间通过 ESP 实现 IPSec 传输racoon
:“本地”主机1.1.1.1
和远程主机2.2.2.2
。它仅适用于 ICMP(其他流量忽略 SA),但这是另一个问题。为了尝试让所有流量都穿越安全传输,我决定设置一个 GRE 隧道,将我的setkey
配置从
spdadd 2.2.2.2 1.1.1.1 ipsec esp/transport//require 中的任何 -P; spdadd 1.1.1.1 2.2.2.2 任何 -P out ipsec esp/transport//require;
到
spdadd 2.2.2.2 1.1.1.1 gre -P 在 ipsec esp/transport//require 中; spdadd 1.1.1.1 2.2.2.2 gre -P out ipsec esp/transport//require;
以及flush; spdflush
标题。
本质上,在此工作正常之后,我所做的就是在两端设置 GRE 隧道,据我所知,这些隧道配置正确,但据我所记得,最终没有被 IPSec 处理。(隧道/端点地址正确,路由到位)。无论如何,我破坏了gre1
这一端并进行了down
ed gre0
,这似乎是不可破坏的。
现在,所有到 的流量2.2.2.2
都被重定向到lo
(根据 tcpdump),而该地址与此地址无关。route
它没有 ,也没有任何iptables
转发或类似的东西, 中也没有任何东西/etc/hosts
。无论 是否racoon
正在运行,这种情况都会持续存在——即使它返回到与 ICMP 一起工作的完全相同的配置(即上面的第一个配置)。
我希望无需重启即可返回“正确”状态,但更重要的是,根据我到目前为止所说的,我感兴趣的是这种行为是如何实现的。如果有帮助,我很乐意提供更多详细信息。
编辑 根据 Lairsdragon 的要求,额外输出:
ip address
1:lo:mtu 65536 qdisc 无队列状态未知组默认 链路/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 范围主机 lo valid_lft 永远 preferred_lft 永远 inet6 ::1/128 范围主机 valid_lft 永远 preferred_lft 永远 2:dummy0:mtu 1500 qdisc noop 状态 DOWN 组默认 链接/以太 0e:09:76:da:e2:22 brd ff:ff:ff:ff:ff:ff 3:eth0:mtu 1500 qdisc pfifo_fast 状态 UP 组默认 qlen 1000 链路/以太 f2:3c:91:50:42:a1 brd ff:ff:ff:ff:ff:ff inet 1.1.1.1/24 brd 1.1.1.255 范围全局 eth0 valid_lft 永远 preferred_lft 永远 inet6 ---/64 范围全局 mngtmpaddr 动态 valid_lft 2591995秒 preferred_lft 604795秒 inet6 ---/64 范围链接 valid_lft 永远 preferred_lft 永远 4:teql0:mtu 1500 qdisc noop 状态 DOWN 组默认 qlen 100 链接/无效 5:tunl0@NONE:mtu 1480 qdisc noop 状态 DOWN 组默认 链接/ipip 0.0.0.0 brd 0.0.0.0 6:gre0@NONE:mtu 1476 qdisc noqueue 状态 DOWN 组默认 链接/gre 1.1.1.1 brd 2.2.2.2 inet 2.2.2.2/8 范围全局 gre0 valid_lft 永远 preferred_lft 永远 inet 10.0.0.1/32 范围全局 gre0 valid_lft 永远 preferred_lft 永远 7:gretap0@NONE:mtu 1462 qdisc noop 状态 DOWN 组默认 qlen 1000 链接/以太 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 8:ip_vti0@NONE:mtu 1428 qdisc noop 状态 DOWN 组默认 链接/ipip 0.0.0.0 brd 0.0.0.0 9:ip6_vti0:mtu 1500 qdisc noop 状态 DOWN 组默认 链路/隧道6 :: brd :: 10:sit0:mtu 1480 qdisc noop 状态 DOWN 组默认 链接/sit 0.0.0.0 brd 0.0.0.0 11:ip6tnl0:mtu 1452 qdisc noop 状态 DOWN 组默认 链路/隧道6 :: brd :: 12:ip6gre0:mtu 1448 qdisc noop 状态 DOWN 组默认 链接/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
ip route show 2.2.2.2
本地 2.2.2.2 开发本地源 2.2.2.2 缓存
ip xfrm policy
源 1.1.1.1/32 目标 2.2.2.2/32 协议 tcp 目录优先级 2147483648 tmpl 源 0.0.0.0 目标 0.0.0.0 proto esp reqid 0 模式传输 源 1.1.1.1/32 目标 2.2.2.2/32 原始 udp 目录优先级 2147483648 tmpl 源 0.0.0.0 目标 0.0.0.0 proto esp reqid 0 模式传输 源 1.1.1.1/32 目标 2.2.2.2/32 原始 icmp 目录优先级 2147483648 tmpl 源 0.0.0.0 目标 0.0.0.0 proto esp reqid 0 模式传输 源地址 2.2.2.2/32 目标地址 1.1.1.1/32 目录转发优先级 2147483648 tmpl 源 0.0.0.0 目标 0.0.0.0 proto esp reqid 0 模式传输 源地址 2.2.2.2/32 目标地址 1.1.1.1/32 优先级 2147483648 的目录 tmpl 源 0.0.0.0 目标 0.0.0.0 proto esp reqid 0 模式传输 源地址 0.0.0.0/0 目标地址 0.0.0.0/0 套接字输出优先级 0 源地址 0.0.0.0/0 目标地址 0.0.0.0/0 优先级为 0 的套接字 源地址 0.0.0.0/0 目标地址 0.0.0.0/0 套接字输出优先级 0 源地址 0.0.0.0/0 目标地址 0.0.0.0/0 优先级为 0 的套接字
您会注意到,10.0.0.1
上面有一个ip address
,这是我试图建立的隧道的本地端点。(另外,为了挽回面子,我没有看到任何与相关的输出ip route show
,当然不是我们在这里看到的ip route get 2.2.2.2
:/)
答案1
我建议执行以下命令来清除您的网络信息:
清除 IPSec 转换集
ip xfrm policy flush
ip xfrm state flush
从未使用的隧道中清除 IP 地址gre
:
ip address flush dev gre0
这应该会从您正在运行的网络配置中删除不需要的部分。请确保也从您的发行版配置文件中删除这些内容。
编辑:根据 A__A__0 注释,从 gre0 接口中删除了 @NONE。