IPSec 传输的远端在与 GRE 发生一些冲突后“永久地粘在”环回上

IPSec 传输的远端在与 GRE 发生一些冲突后“永久地粘在”环回上

因此,我已设法使用 来在两个主机之间通过 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这一端并进行了downed 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。

相关内容