จากคำถามก่อนหน้านี้เมื่อปีที่แล้ว ( Multiplexed 1 Gbps Ethernet? ) ฉันออกไปและตั้งค่าแร็คใหม่ด้วย ISP ใหม่พร้อมลิงก์ LACP ทั่วทุกที่ เราต้องการสิ่งนี้เพราะเรามีเซิร์ฟเวอร์ส่วนบุคคล (แอปพลิเคชั่นหนึ่งตัว, IP หนึ่งตัว) ที่ให้บริการคอมพิวเตอร์ไคลเอนต์นับพันทั่วอินเทอร์เน็ตเกินกว่า 1Gbps สะสม
แนวคิด LACP นี้ควรจะให้เราทำลายสิ่งกีดขวาง 1Gbps โดยไม่ต้องเสียเงินมหาศาลกับสวิตช์ 10Gee และ NIC น่าเสียดายที่ฉันพบปัญหาเกี่ยวกับการกระจายการรับส่งข้อมูลขาออก (สิ่งนี้แม้จะมีคำเตือนของ Kevin Kuphal ในคำถามที่เชื่อมโยงข้างต้น)
เราเตอร์ของ ISP นั้นเป็น Cisco จากบางประเภท (ฉันอนุมานได้ว่าจากที่อยู่ MAC) สวิตช์ของฉันคือ HP ProCurve 2510G-24 และเซิร์ฟเวอร์ก็คือ HP DL 380 G5 ที่ใช้ Debian Lenny เซิร์ฟเวอร์ตัวเดียวคือโหมดแสตนด์บาย แอปพลิเคชันของเราไม่สามารถทำคลัสเตอร์ได้ นี่คือแผนภาพเครือข่ายที่เรียบง่ายซึ่งรวมโหนดเครือข่ายที่เกี่ยวข้องทั้งหมดด้วย IP, MAC และอินเทอร์เฟซ
ในขณะที่มันมีรายละเอียดทั้งหมดมันค่อนข้างยากที่จะทำงานและอธิบายปัญหาของฉัน ดังนั้นเพื่อความเรียบง่ายนี่คือแผนภาพเครือข่ายที่ลดลงไปยังโหนดและการเชื่อมโยงทางกายภาพ
ดังนั้นฉันจึงออกไปและติดตั้งชุดอุปกรณ์ของฉันที่ชั้นวางใหม่และเชื่อมต่อสายเคเบิล ISP จากเราเตอร์ของพวกเขา เซิร์ฟเวอร์ทั้งสองมีลิงก์ LACP ไปยังสวิตช์ของฉันและสวิตช์นั้นมีลิงก์ LACP ไปยังเราเตอร์ ISP จากจุดเริ่มต้นฉันรู้ว่าการตั้งค่า LACP ของฉันไม่ถูกต้อง: การทดสอบแสดงปริมาณการรับส่งข้อมูลไปยังและจากเซิร์ฟเวอร์แต่ละเครื่องผ่านการเชื่อมโยง GoE ทางกายภาพหนึ่งจุดระหว่างเซิร์ฟเวอร์แบบสวิตช์และสวิตช์ไปยังเราเตอร์
ด้วยการค้นหาของ google และเวลา RTMF จำนวนมากเกี่ยวกับการเชื่อม NIC ของลินุกซ์ฉันค้นพบว่าฉันสามารถควบคุมการเชื่อม NIC โดยการปรับเปลี่ยน /etc/modules
# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means to use layer3+4(TCP/IP src/dst) & not default layer2
bonding mode=4 miimon=100 max_bonds=2 xmit_hash_policy=1
loop
นี่เป็นการรับส่งข้อมูลที่ออกจากเซิร์ฟเวอร์ของฉันเหนือ NIC ทั้งสองอย่างที่คาดไว้ แต่การจราจรที่ถูกย้ายจากสวิทช์เข้ากับเราเตอร์มากกว่าเพียงการเชื่อมโยงทางกายภาพหนึ่งยังคง
เราต้องการปริมาณการใช้งานที่มากกว่าทั้งการเชื่อมโยงทางกายภาพ หลังจากอ่านและอ่านคู่มือการจัดการและการกำหนดค่าของ 2510G-24 ฉันพบว่า:
[LACP ใช้] คู่ที่อยู่ปลายทาง (SA / DA) สำหรับการกระจายทราฟฟิกขาออกบนลิงก์ที่มีลำต้น SA / DA (ที่อยู่ต้นทาง / ที่อยู่ปลายทาง) ทำให้สวิตช์กระจายการรับส่งข้อมูลขาออกไปยังลิงก์ภายในกลุ่มลำตัวบนพื้นฐานของคู่ที่มา / ปลายทาง นั่นคือสวิตช์จะส่งทราฟฟิกจากแหล่งที่อยู่เดียวกันไปยังที่อยู่ปลายทางเดียวกันผ่านลิงก์ที่มีลำต้นเดียวกันและส่งทราฟฟิกจากแหล่งที่อยู่เดียวกันไปยังที่อยู่ปลายทางที่แตกต่างกันผ่านลิงก์ที่แตกต่างกัน ลิงก์ในลำต้น
ดูเหมือนว่าลิงก์ที่ถูกผูกมัดจะแสดงที่อยู่ MAC เพียงอันเดียวดังนั้นเส้นทางของเซิร์ฟเวอร์ต่อเราเตอร์ของฉันจึงต้องอยู่เหนือเส้นทางเดียวจาก switch-to-router เนื่องจากสวิตช์มองเห็น แต่มี MAC หนึ่งอัน (ไม่ใช่สองอัน - หนึ่งอันจาก แต่ละพอร์ต) สำหรับลิงก์ทั้ง LACP
เข้าใจแล้ว. แต่นี่คือสิ่งที่ฉันต้องการ:
สวิตช์ HP ProCurve ที่แพงกว่านั้นคือ 2910al ใช้ที่อยู่ต้นทางและปลายทางระดับ 3 ในแฮช จากส่วน "การกระจายทราฟฟิกขาออกข้ามลิงค์ที่มีการเชื่อมต่อแบบ Trunked" ของคู่มือการจัดการและการกำหนดค่าของ ProCurve 2910al :
การกระจายที่แท้จริงของทราฟฟิกผ่านทางลำต้นขึ้นอยู่กับการคำนวณโดยใช้บิตจากที่อยู่ต้นทางและที่อยู่ปลายทาง เมื่อมีที่อยู่ IP การคำนวณจะรวมห้าบิตสุดท้ายของที่อยู่ IP และที่อยู่ IP ปลายทางมิฉะนั้นจะใช้ที่อยู่ MAC
ตกลง. ดังนั้นเพื่อให้การทำงานในแบบที่ฉันต้องการที่อยู่ปลายทางเป็นกุญแจสำคัญเนื่องจากที่อยู่ต้นทางของฉันได้รับการแก้ไข สิ่งนี้นำไปสู่คำถามของฉัน:
การแฮชของเลเยอร์ 3 LACP นั้นทำงานอย่างไร
ฉันจำเป็นต้องรู้ที่อยู่ปลายทางที่ใช้:
- IP ของลูกค้าปลายทางสุดท้ายหรือไม่
- หรือ IP ของเราเตอร์ปลายทางส่งผ่านฟิสิคัลลิงก์ถัดไป
เรายังไม่ได้ปิดและซื้อสวิตช์เปลี่ยน โปรดช่วยฉันเข้าใจอย่างถ่องแท้ว่าที่อยู่ปลายทางสำหรับเลเยอร์ 3 LACP นั้นเป็นหรือไม่ใช่สิ่งที่ฉันต้องการ การซื้อสวิตช์ที่ไร้ประโยชน์อื่นไม่ใช่ตัวเลือก