Linux

IPSec 傳輸的遠端端在與 GRE 發生一些混亂後“永久粘在”環回上

  • December 20, 2014

所以,我已經設法在兩個主機之間通過 ESP 進行 IPSec 傳輸,使用racoon:“本地”主機1.1.1.1和遠端主機2.2.2.2。它僅適用於 ICMP(其他流量忽略 SA),但這是一個單獨的問題。為了嘗試讓所有流量通過安全傳輸,我決定設置一個 GRE 隧道,將我的setkey配置從

spdadd 2.2.2.2 1.1.1.1 any -P in ipsec esp/transport//require;
spdadd 1.1.1.1 2.2.2.2 any -P out ipsec esp/transport//require;

spdadd 2.2.2.2 1.1.1.1 gre -P in 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 noqueue state UNKNOWN group default
連結/環回 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 範圍主機 lo
valid_lft 永遠首選_lft 永遠
inet6 ::1/128 範圍主機
valid_lft 永遠首選_lft 永遠
2: dummy0: mtu 1500 qdisc noop state DOWN group default
連結/乙太 0e:09:76:da:e2:22 brd ff:ff:ff:ff:ff:ff
3: eth0: mtu 1500 qdisc pfifo_fast state UP group default 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 永遠首選_lft 永遠
inet6 ---/64 範圍全域 mngtmaddr 動態
有效_lft 2591995sec 首選_lft 604795sec
inet6 ---/64 範圍連結
valid_lft 永遠首選_lft 永遠
4: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
連結/無效
5: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default
連結/ipip 0.0.0.0 brd 0.0.0.0
6: gre0@NONE: mtu 1476 qdisc noqueue state DOWN group default
連結/gre 1.1.1.1 brd 2.2.2.2
inet 2.2.2.2/8 範圍全域 gre0
valid_lft 永遠首選_lft 永遠
inet 10.0.0.1/32 範圍全域 gre0
valid_lft 永遠首選_lft 永遠
7: gretap0@NONE: mtu 1462 qdisc noop state DOWN group default qlen 1000
連結/乙太 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: ip_vti0@NONE: mtu 1428 qdisc noop state DOWN group default
連結/ipip 0.0.0.0 brd 0.0.0.0
9: ip6_vti0: mtu 1500 qdisc noop state DOWN group default
連結/隧道6 :: brd ::
10:sit0:mtu 1480 qdisc noop state DOWN group default
連結/坐 0.0.0.0 brd 0.0.0.0
11: ip6tnl0: mtu 1452 qdisc noop state DOWN group default
連結/隧道6 :: brd ::
12: ip6gre0: mtu 1448 qdisc noop state DOWN group default
連結/gre6 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 開發 lo src 2.2.2.2
記憶體 

ip xfrm policy

src 1.1.1.1/32 dst 2.2.2.2/32 proto tcp
刪除優先級 2147483648
tmpl src 0.0.0.0 dst 0.0.0.0
proto esp reqid 0 模式傳輸
src 1.1.1.1/32 dst 2.2.2.2/32 原型 udp
刪除優先級 2147483648
tmpl src 0.0.0.0 dst 0.0.0.0
proto esp reqid 0 模式傳輸
src 1.1.1.1/32 dst 2.2.2.2/32 原型 icmp
刪除優先級 2147483648
tmpl src 0.0.0.0 dst 0.0.0.0
proto esp reqid 0 模式傳輸
源 2.2.2.2/32 源 1.1.1.1/32
dir fwd 優先級 2147483648
tmpl src 0.0.0.0 dst 0.0.0.0
proto esp reqid 0 模式傳輸
源 2.2.2.2/32 源 1.1.1.1/32
優先級為 2147483648 的目錄
tmpl src 0.0.0.0 dst 0.0.0.0
proto esp reqid 0 模式傳輸
src 0.0.0.0/0 dst 0.0.0.0/0
輸出優先級 0
src 0.0.0.0/0 dst 0.0.0.0/0
優先級為 0 的套接字
src 0.0.0.0/0 dst 0.0.0.0/0
輸出優先級 0
src 0.0.0.0/0 dst 0.0.0.0/0
優先級為 0 的套接字

你會注意到上面有一個10.0.0.1ip address這是我試圖建立的隧道的本地端點。(另外,為了面子,我沒有看到任何相關的輸出ip route show,當然不是我們在這裡看到的ip route get 2.2.2.2:/)

我喜歡建議執行以下命令來清除您的網路內容:

清除 ipsec 轉換集

ip xfrm policy flush
ip xfrm state flush

gre從未使用的隧道中清除 IP 地址:

ip address flush dev gre0

這應該從您正在執行的網路配置中刪除不需要的部分。確保也從您的發行版配置文件中刪除這些東西。

編輯:根據 A__A__0 註釋從 gre0 介面中刪除了 @NONE 。

引用自:https://serverfault.com/questions/653926