ฉันใช้ Strongswan เพื่อตั้งค่าอุโมงค์ IPSec ระหว่างสองยูนิต SAs ของช่องสัญญาณได้รับการตั้งค่าโดยไม่มีปัญหาใด ๆ และทราฟฟิกสามารถผ่านการเชื่อมต่อได้
เมื่อใดก็ตามที่ฉัน ping ผ่านอุโมงค์ คำขอ ping จะถูกส่งเป็นแพ็กเก็ต ESP และ ICMP การตอบสนอง ping เป็นเพียงแพ็กเก็ต ESP เสมอ เมื่อดูที่แพ็กเก็ตเหล่านี้ด้วย Wireshark ดูเหมือนว่าคำขอ ping จะส่งแพ็กเก็ตสองแพ็กเก็ต แพ็กเก็ตหนึ่งห่อหุ้มและอีกแพ็กเก็ตไม่ได้ การตอบสนองเป็นเพียงการตอบสนองเสียงสะท้อน ICMP ที่ห่อหุ้ม ดังนั้นทุกๆ ping จะส่งผลให้เกิดการแลกเปลี่ยน 3 แพ็กเก็ตแทนที่จะเป็น 2
หน่วยสามารถสื่อสารได้โดยไม่ต้องใช้อุโมงค์ IPSec แต่ปัญหาเดียวกันนี้เกิดขึ้นเมื่อการเชื่อมต่อ IPSec ผ่านอุโมงค์ GRE
เราจะวินิจฉัย/แก้ไขปัญหานี้ได้อย่างไร
ตัวอย่าง tcpdump
tcpdump -vv โฮสต์ yyy.yyy.yyy.yyy
tcpdump: กำลังฟัง enp4s0, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการดักจับ 262144 ไบต์
10:18:33.302502 IP (tos 0x0, ttl 64, id 11718, offset 0, flag [DF], proto ESP (50), ความยาว 156)
unit1 > unit2: ESP(spi=0xc3e93e85,seq=0x1), ความยาว 136
10:18:33.302762 IP (tos 0x0, ttl 64, id 5550, offset 0, flag [DF], proto ICMP (1), ความยาว 84)
unit1 > unit2: ICMP echo request, id 30684, seq 1, ความยาว 64
10:18:33.303033 IP (tos 0x0, ttl 64, id 1623, offset 0, flag [none], proto ESP (50), ความยาว 156)
unit2 > unit1: ESP(spi=0xcc947f6d,seq=0x1) ความยาว 136
สถานะ IPSec
สถานะ ipsec
สมาคมความปลอดภัย (1 ขึ้น 0 เชื่อมต่อ):
unit-to-unit[2]: ก่อตั้งเมื่อ 11 นาทีที่แล้ว yyy.yyy.yyy.yyy[yyy.yyy.yyy.yyy]...zzz.zzz.zzz.zzz[zzz.zzz.zzz.zzz]
หน่วยต่อหน่วย{1}: ติดตั้ง, อุโมงค์, reqid 1, ESP SPI: cc947f6d_i c3e93e85_o
หน่วยต่อหน่วย{1}: yyy.yyy.yyy.yyy/32 === zzz.zzz.zzz.zzz/32
/etc/ipsec.conf
การตั้งค่าคอนฟิก
#strictcrlpolicy=ใช่
#รหัสเฉพาะ = ไม่
#nat_traversal=ใช่
เชื่อมต่อหน่วยต่อหน่วย
authby = ความลับ
อัตโนมัติ = เริ่มต้น
การแลกเปลี่ยนคีย์=ikev2
ike=aes256-sha2_256-modp1024!
ซ้าย=yyy.yyy.yyy.yyy
ขวา=zzz.zzz.zzz.zzz
พิมพ์=อุโมงค์
esp=aes256-sha2_256