Tôi đã sử dụng Strongswan để thiết lập đường hầm IPSec giữa hai thiết bị. SA đường hầm được thiết lập mà không gặp bất kỳ sự cố nào và lưu lượng truy cập có thể đi qua kết nối.
Bất cứ khi nào tôi ping qua đường hầm, yêu cầu ping được gửi dưới dạng CẢ HAI gói ESP và ICMP. Phản hồi ping luôn chỉ là một gói ESP. Nhìn vào các gói này với Wireshark, có vẻ như yêu cầu ping gửi hai gói, một gói được đóng gói và một gói không. Phản hồi chỉ là một phản hồi tiếng vang ICMP được đóng gói. Vì vậy, mỗi kết quả ping trong 3 gói được trao đổi thay vì 2.
Các thiết bị có thể giao tiếp mà không cần đường hầm IPSec nhưng vấn đề tương tự xảy ra khi kết nối IPSec qua đường hầm GRE.
Làm cách nào để chẩn đoán/khắc phục sự cố này?
Ví dụ tcpdump
tcpdump -vv máy chủ yyy.yyy.yyy.yyy
tcpdump: lắng nghe trên enp4s0, loại liên kết EN10MB (Ethernet), kích thước chụp 262144 byte
10:18:33.302502 IP (tos 0x0, ttl 64, id 11718, offset 0, flags [DF], proto ESP (50), chiều dài 156)
đơn vị1 > đơn vị2: ESP(spi=0xc3e93e85,seq=0x1), chiều dài 136
10:18:33.302762 IP (tos 0x0, ttl 64, id 5550, offset 0, flags [DF], ICMP nguyên mẫu (1), chiều dài 84)
unit1 > unit2: ICMP echo request, id 30684, seq 1, length 64
10:18:33.303033 IP (tos 0x0, ttl 64, id 1623, offset 0, flags [none], proto ESP (50), chiều dài 156)
unit2 > unit1: ESP(spi=0xcc947f6d,seq=0x1), chiều dài 136
trạng thái IPSec
trạng thái ipsec
Hiệp hội bảo mật (1 lên, 0 kết nối):
đơn vị với đơn vị[2]: THÀNH LẬP 11 phút trước, yyy.yyy.yyy.yyy[yyy.yyy.yyy.yyy]...zzz.zzz.zzz.zzz[zzz.zzz.zzz.zzz]
đơn vị đến đơn vị{1}: ĐÃ CÀI ĐẶT, TUNNEL, yêu cầu 1, ESP SPI: cc947f6d_i c3e93e85_o
đơn vị đến đơn vị{1}: yyy.yyy.yyy.yyy/32 === zzz.zzz.zzz.zzz/32
/etc/ipsec.conf
thiết lập cấu hình
#strictcrlpolicy=có
#uniqueids = không
#nat_traversal=có
kết nối đơn vị với đơn vị
authby=bí mật
tự động = bắt đầu
keyexchange=ikev2
ike=aes256-sha2_256-modp1024!
left=yyy.yyy.yyy.yyy
đúng=zzz.zzz.zzz.zzz
loại = đường hầm
đặc biệt=aes256-sha2_256