簡體   English   中英

Strongswan:正確接收和解密但未轉發的數據包

[英]Strongswan: packets received and decrypted correctly but not forwarded

我在 Cisco CSR 路由器和 Strongswan 之間有一個 Lan-to-Lan vpn 隧道。 在 Strongswan 我看到:

[root@ip-172-31-20-224 log]# strongswan status
Security Associations (1 up, 0 connecting):
   tenant-13[2]: ESTABLISHED 66 minutes ago, 172.31.20.224[local_public_ip]...remote_public_ip[remote_public_ip]
   tenant-13{3}:  INSTALLED, TRANSPORT, reqid 1, ESP in UDP SPIs: cdf35340_i cb506e65_o
   tenant-13{3}:   172.31.20.224/32 === remote_public_ip/32
   tenant-13{147}:  INSTALLED, TUNNEL, reqid 3, ESP in UDP SPIs: ca2c0328_i 0295d7bf_o
   tenant-13{147}:   0.0.0.0/0 === 0.0.0.0/0

我的加密 SA 允許 0/0 -> 0/0。 所以一切看起來都很好。

我確實在 Strongswan 上收到了加密數據包,並且這些數據包被正確解密,例如:我們可以看到在虛擬 vti 接口上收到了 udp 數據包(正確解密):

[root@ip-172-31-20-224 log]# tcpdump -i vti13 -n udp port 3000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vti13, link-type RAW (Raw IP), capture size 262144 bytes
11:19:57.834374 IP 192.168.1.116.54545 > X.X.X.X.hbci: UDP, length 340

現在 XXXX 是一個公共 ip 地址,應該轉發這些數據包(使用默認路由通過 eth0 輸出),但是通過 tcpdump 查看時我沒有看到這些數據包:

[root@ip-172-31-20-224 log]# tcpdump -i eth0 -n host X.X.X.X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured

我只有一個物理接口(eth0、ipsec 傳輸和默認路由)+ 一個虛擬接口(用於解密流量)。 所以解密后的流量應該通過相同的 eth0 接口發回:

[root@ip-172-31-20-224 log]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 02:ab:39:97:b0:7e brd ff:ff:ff:ff:ff:ff
    inet 172.31.20.224/20 brd 172.31.31.255 scope global dynamic eth0
       valid_lft 2673sec preferred_lft 2673sec
    inet6 fe80::ab:39ff:fe97:b07e/64 scope link 
       valid_lft forever preferred_lft forever
3: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
9: vti13@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ipip 172.31.20.224 peer 89.68.162.135
    inet 1.0.0.2/30 scope global vti13
       valid_lft forever preferred_lft forever
    inet6 fe80::5efe:ac1f:14e0/64 scope link 
       valid_lft forever preferred_lft forever

我已經確認:

  1. 路由已啟用
  2. 策略檢查被禁用(sysctl -w.net.ipv4.conf.default.rp_filter=0 和 sysctl -w.net.ipv4.conf.vti13.disable_policy=1)
  3. iptables INPUT,OUTPUT,FORWARD 為空,允許,但我也添加了特定規則,看到 0 次點擊:
[root@ip-172-31-20-224 log]# iptables -I INPUT -i vti13 -j ACCEPT
[root@ip-172-31-20-224 log]# iptables -I FORWARD -i vti13 -j ACCEPT
[root@ip-172-31-20-224 log]# iptables -L -v -n
Chain INPUT (policy ACCEPT 9 packets, 1164 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  vti13  *       0.0.0.0/0            0.0.0.0/0              

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  vti13  *       0.0.0.0/0            0.0.0.0/0                

Chain OUTPUT (policy ACCEPT 6 packets, 776 bytes)
 pkts bytes target     prot opt in     out     source               destination 

我已將條目添加到 PREROUTING 和 POSTROUTING,只是為了檢查我是否在那里看到那些數據包,並且可以確認我只能在 PREROUTING 中看到那些(因此確實沒有路由數據包):

[root@ip-172-31-20-224 log]# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 2 packets, 184 bytes)
 pkts bytes target     prot opt in     out     source               destination         
19192   25M DNAT       udp  --  vti13  *       0.0.0.0/0            0.0.0.0/0            udp dpt:3000 to:X.X.X.X:3000

我嘗試通過系統日志查看(啟用 kernel 日志記錄),但沒有發現任何有趣的東西。

問題是什么? 為什么我的 Linux 沒有轉發那些數據包?

謝謝,

好的,找到了解決方案,根據https://docs.strongswan.org/docs/5.9/features/routeBasedVpn.html必須禁用 charon.install_routes。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM