ฉันกำลังทำงานกับ VPN แบบไซต์ต่อไซต์ โดยที่อันหนึ่งให้เราเป็น UDM และอีกอันคือ Strongswan เป้าหมายคือการจัดเตรียมการกำหนดเส้นทางแบบสองทิศทางในสภาพแวดล้อมคลาวด์ ฉันงุนงงอย่างมากว่าทำไมสิ่งนี้ถึงไม่ทำงาน
ข่าวดีคือ Strongswan เชื่อมต่อและจะผ่านการจราจร แต่ฉันมีปัญหาเกี่ยวกับเส้นทางในฝั่ง Strongswan โฮสต์ Strongswan ของฉันมีสองอินเทอร์เฟซ eth0 ซึ่งมี IP อินเทอร์เน็ตสาธารณะบน eth0 และ ip ภายใน 10.132.169.74 บน eth1
- เครือข่าย Lan[s]: 10.87.0.0/24, 10.87.35.0/24, 10.87.235.0/24
- เครือข่ายคลาวด์: 10.132.0.0/16
- 10.87.0.1 = ยูดีเอ็ม
- 10.132.169.74 = Strongswan eth1 และเชื่อมต่อกับเครือข่ายคลาวด์ภายใน 10.132.0.0/16
- 10.87.0.33 = โฮสต์ทดสอบบนเครือข่าย LAN
- 10.132.40.82 = โฮสต์ทดสอบบนเครือข่ายคลาวด์
สถานการณ์ปัจจุบัน:
- ส่ง Ping จาก 10.87.0.33 (โฮสต์ทดสอบ Lan) -> 10.132.169.74 (Strongswan) ใช้งานได้
- ส่ง Ping จาก 10.132.169.74 (Strongswan) -> 10.87.0.33 (โฮสต์ทดสอบ Lan) ใช้งานได้
- ส่ง Ping จาก 10.132.40.82 (โฮสต์ทดสอบระบบคลาวด์) -> 10.87.0.33 (โฮสต์ทดสอบ Lan) ใช้งานได้
- ส่ง Ping จาก 10.87.0.33 (โฮสต์ทดสอบ Lan) -> 10.132.40.82 (โฮสต์ทดสอบคลาวด์) ไม่ทำงาน ซึ่งเป็นสิ่งสำคัญที่สุดจากทั้งหมดนี้
นี่คือตารางเส้นทางของโฮสต์ Strongswan 10.132.169.74:
ค่าเริ่มต้นผ่าน x.x.x.x dev eth0 proto static
10.17.0.0/16 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.17.0.21
10.19.49.0/24 dev wg0 โปรโตเคอร์เนลขอบเขตลิงก์ src 10.19.49.1
10.87.0.0/16 dev ipsec0 ลิงค์ขอบเขต src 10.132.169.74
10.132.0.0/16 dev eth1 proto kernel ขอบเขตลิงค์ src 10.132.169.74
x.x.x.y/20 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src x.x.x.z
นี่คือตารางเส้นทางบนโฮสต์ทดสอบระบบคลาวด์ (10.132.40.82):
ค่าเริ่มต้นผ่าน x.x.x.x dev eth0 proto static
10.17.0.0/16 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.17.0.24
10.87.0.0/16 ผ่าน 10.132.169.74 dev eth1
10.132.0.0/16 dev eth1 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.132.40.82
x.x.x.y/20 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src x.x.x.z
บนโฮสต์ Strongswan ฉันกำลังดำเนินการสิ่งนี้:
ลิงก์ sudo ip เพิ่ม ipsec0 ประเภท xfrm dev eth0 if_id 4242
ลิงก์ sudo ip ตั้งค่า ipsec0 ขึ้น
เส้นทาง sudo ip เพิ่ม 10.87.0.0/16 dev ipsec0 src 10.132.169.74
และสุดท้ายนี่คือการกำหนดค่าหงส์ของฉัน:
sudo tee /etc/strongswan.d/charon-systemd.conf << "EOF"
charon-systemd {
load=pem pkcs1 x509 ข้อ จำกัด การเพิกถอน pubkey opensl สุ่ม สุ่ม nonce aes sha1 sha2 hmac pem pkcs1 x509 เส้นโค้งการเพิกถอน 25519 gmp curl kernel-netlink socket-default updown vici
วารสาร {
ค่าเริ่มต้น = 0
# enc=1
# asn=1
}
}
อฟ
sudo ที /etc/swanctl/conf.d/xyz.conf << "EOF"
การเชื่อมต่อ {
vpn-cloud-udm-lan {
รุ่น=2
ข้อเสนอ = aes128gcm16-sha256-modp2048,aes128-sha256-modp2048
ไม่ซ้ำ = แทนที่
ห่อหุ้ม=ใช่
ท้องถิ่น {
รหัส=x.x.x.x
auth=ปสก
}
ระยะไกล {
auth=ปสก
}
เด็ก {
สุทธิ {
local_ts=10.132.0.0/16
remote_ts=10.87.0.0/16
esp_proposals=aes128gcm16-sha256-modp2048,aes128-sha256-modp2048
start_action=กับดัก
if_id_in=4242
if_id_out=4242
}
}
}
}
ความลับ {
ike-1 {
id-vpn-cloud=x.x.x.x
ความลับ = "ความลับบางอย่าง"
}
ike-2 {
id-udm-lan=y.y.y.y
ความลับ = "ความลับบางอย่าง"
}
}
อฟ
และ sysctl ของฉันบนโฮสต์ Strongswan:
net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
sudo swanctl --list-sas
แสดงอุโมงค์ที่ใช้งานและเมื่อฉัน ping ฉันเห็นเคาน์เตอร์เพิ่มขึ้น นอกจากนี้ tcpdump ที่กำลังรับฟังบนโฮสต์ทดสอบระบบคลาวด์ไม่แสดงทราฟฟิกที่มาถึง แต่ tcpdump บนโฮสต์ Strongswan ในสถานการณ์เฉพาะไม่แสดงทราฟฟิก ดังนั้นจึงถูกทิ้งที่นั่น
ความช่วยเหลือใด ๆ ที่ชื่นชม ขอบคุณ!