iproute ตัวโหลดบาลานซ์ ADSL หลายตัวผ่าน VM


10

เป็นเวลานาน (2 ปี?) ฉันใช้เครื่องเสมือน (เซิร์ฟเวอร์ Ubuntu 12.04) ที่มีความสามารถในการทำโหลดบาลานซ์ขาออกขั้นพื้นฐานมากส่งการเชื่อมต่อขาออกที่แตกต่างออกไปจากเราเตอร์ ADSL ที่แตกต่างกัน

กำหนดค่าง่ายๆโดยใช้ iproute โดยไม่มี NAT masquerade NAT ถูกจัดการโดยเราเตอร์ ADSL ขาออกด้วยตนเองทำให้การเชื่อมต่อไปยังเส้นทางกลับไปยังผู้ส่งโดยตรงผ่านผู้ให้บริการข้ามภาระ VM เราเตอร์ นอกจากนี้ยังไม่มีกฎไฟร์วอลล์ (iptables) บนเราเตอร์ VM

echo 1 > /proc/sys/net/ipv4/ip_forward

# flush initially
ip route flush cache

# remove whatever is there for the default to begin with
ip route delete default

# default load balancing rule
ip route add default scope global \
    nexthop via ${ROUTER2} dev ${INTERFACE} weight 6 \
    nexthop via ${ROUTER1} dev ${INTERFACE} weight 4

สิ่งนี้ทำงานได้ดีเป็นเวลานาน

ฉันเพิ่งอัพเกรด (do-release-upgrade -d) load balancer (เครื่องเซิร์ฟเวอร์เสมือน Ubuntu 12.04) เป็น Ubuntu 14.04

เนื่องจากการอัพเกรดการเชื่อมต่ออินเทอร์เน็ตโดยใช้คำสั่ง "ip route add default" ด้านบนเป็นสาเหตุของปัญหาการเชื่อมต่อเป็นระยะ ๆ และการสร้างประสบการณ์ที่ใช้งานไม่ได้ เกือบจะเหมือนกับว่าแต่ละแพ็กเก็ตถูกส่งผ่านเราเตอร์ทั้งสองและไม่ได้เชื่อมต่อเต็ม

นี่เป็นความพยายามครั้งที่สองกับเครื่องเสมือน 14.04 ที่มีเอฟเฟกต์เดียวกัน

ฉันชอบที่จะมีฟังก์ชันการทำงานเดียวกันบน Ubuntu 14.04 (เคอร์เนลปัจจุบัน: 3.13.0-24) ฉันไม่เข้าใจสิ่งที่เปลี่ยนไป

ข้อเสนอแนะใด ๆ


ผู้คนจำนวนมากกำลังบ่นเกี่ยวกับปัญหาเครือข่าย คุณสามารถอัพเกรดเคอร์เนลเป็น 3.14 ได้ไหม? นี่คือคำแนะนำในการติดตั้ง: linuxg.net/…
Sacx

การอัปเกรดเป็น 3.14 ฆ่า VM เคอร์เนลตกใจ บางทีฉันอาจทำไม่ถูกต้อง แต่ฉันทำตามคำแนะนำเหล่านั้น ในขณะเดียวกันฉันได้ลดระดับเป็น 12.04 (ติดตั้ง VM ใหม่) เพื่อใช้งานฟังก์ชันการทำงานเดิมต่อไปการสนับสนุนจนถึงปี 2560 อาจเป็นไปได้
Drew Anderson

ดังนั้นผู้คนจึงรับรู้ว่าฉันไม่ต้องการโซลูชันนี้ (งานที่เปลี่ยนแปลง) อีกต่อไปดังนั้นฉันจะไม่ทราบว่าฉันสามารถใช้งานได้ใน 14.04 หรือไม่
Drew Anderson

เราเตอร์ทั้งสองอยู่ในเครือข่าย L3 เดียวกันหรือไม่ ดีที่สุดที่จะมี 1 ซับเน็ตต่อ NIC / เส้นทาง
user158798

คำตอบ:


2

ฉันรู้ว่าโปสเตอร์ดั้งเดิมไม่ต้องการวิธีแก้ปัญหาอีกต่อไป แต่นี่เป็นวิธีที่ดีที่สุดสำหรับปัญหานี้ ฉันรู้ว่าผู้ลงประกาศต้องการใช้ Ubuntu แต่การกำหนดค่ากฎการกำหนดเส้นทางด้วยตนเองเช่นนี้ไม่ดีสำหรับการถ่ายโอนความเป็นเจ้าของให้ผู้อื่นหรืออ้างอิงตัวเองในอีกหลายปีต่อมา

ฉันเองจะแนะนำการตั้งค่าที่แข็งแกร่งยิ่งขึ้นโดยใช้ PFSense VM เพื่อโหลดการเชื่อมต่อ ฉันอาจจะแนะนำให้ทำ NAT บนกล่อง PFSense แทนตัวโมเด็มเอง ฉันมีสิ่งที่คล้ายกับการกำหนดค่าใน VM และทำงานได้ดี

สำหรับการเชื่อมต่อระหว่างโมเด็มและ PFSense VM ฉันใช้สวิตช์ที่มีความสามารถ vlan เพื่อเชื่อมต่อ VLans 3 ตัวแยกจากกันกับ VM และแบ่งออกเป็น 3 พอร์ตแยกต่างหากบนสวิตช์ สิ่งนี้มีผลให้สายเคเบิล (เสมือน) โดยตรงจากแต่ละโมเด็มไปยังกล่อง pfsense และสายเคเบิลอื่นออกไปยัง LAN จากนั้นคุณสามารถกำหนดค่าโมเด็มสำหรับ passthrough ซึ่งแตกต่างจากผู้ให้บริการไปยังผู้ให้บริการ

มันเป็นความจริงที่ว่าก้าวเท้านี้เป็นปัญหามากกว่าที่จะแก้ไขมันโดยตรง แต่การใส่ NAT ลงไปในโมเด็มนั้นดูเหมือนว่าฉันจะแค่ขอปัญหาเท่านั้น นอกจากนี้ PFSense ยังได้รับการออกแบบมาเป็นพิเศษสำหรับโซลูชันเราเตอร์ที่ได้รับการบรรจุล่วงหน้าดังนั้นจึงรองรับและจะยังคงได้รับการทดสอบด้วยการกำหนดค่าเช่นนี้


คำตอบนี้อาจดีกว่าความคิดเห็น แต่ฉันไม่ได้มีชื่อเสียงสำหรับที่
stonecrusher
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.