ฉันกำลังพยายามตั้งค่าแล็บโหลดบาลานซ์สำหรับ HAproxy ในโหมดแขนเดียว (เมื่อ IP ส่วนหน้าและเซิร์ฟเวอร์ส่วนหลังจริงอยู่ในซับเน็ตเดียวกัน ในขณะที่ไคลเอนต์จริงมักจะอยู่ระยะไกล) คำขออื่นคือการทำให้โหนดส่วนหลังมองเห็น IP ต้นทางของไคลเอ็นต์ ในขณะที่เราโหลดแอปตาม tcp ที่กำหนดเอง ดูเหมือนว่าตัวเลือก 'source 0.0.0.0 usersrc clientip' จะเป็นตัวเลือกที่เหมาะสมที่นี่ นอกจากนี้ ฉันได้กำหนดค่าแบ็กเอนด์ให้มีเกตเวย์เริ่มต้นที่ชี้ไปยังที่อยู่ IP ของ HAproxy
แม้ว่าสิ่งแปลกๆ จะเกิดขึ้นเมื่อฉันเปิดใช้งานตัวเลือกแบ็คเอนด์นี้: ฉันเห็นว่าการเชื่อมต่อกับฟรอนท์เอนด์ VIP นั้นเสร็จสิ้นอย่างถูกต้องและเกิดการจับมือกัน 3 ทาง แต่เมื่อเซิร์ฟเวอร์ HAproxy พยายามสร้างเซสชันที่ 2 เพื่อเข้าถึงเซิร์ฟเวอร์ส่วนหลังด้วย IP ที่ปลอมแปลงของไคลเอ็นต์ ฉันเห็นว่าสิ่งนี้เกิดขึ้น:
- พร็อกซีกำลังส่ง SYN พร้อมที่อยู่ IP ของไคลเอ็นต์ที่ปลอมแปลงไปยังแบ็กเอนด์ตัวใดตัวหนึ่ง
- โดยปกติแบ็กเอนด์จะตอบกลับด้วยแพ็กเก็ต SYN-ACK;
- พร็อกซีไม่ได้ส่ง ACK ล่าสุด เพียงแค่ส่งแพ็กเก็ต SYN สุ่มสี่สุ่มห้าหลังจากหมดเวลาด้วยผลลัพธ์เดียวกัน
- บนพร็อกซี ฉันเห็นว่าการเชื่อมต่อนี้ถูกทำเครื่องหมายเป็น SYN_SENT ในเอาต์พุต netstat ดังนั้นดูเหมือนว่าพร็อกซีเซิร์ฟเวอร์จะไม่ยอมรับแพ็กเก็ต SYN-ACK ที่เกิดขึ้นจริงด้วยเหตุผลบางประการ
คำชมใด ๆ ที่จะได้รับการชื่นชม