หากโฮสต์ SUSE Linux Enterprise Server 15 มีอะแดปเตอร์อีเธอร์เน็ตสองตัว แต่สูญเสียการเข้าถึงเครือข่ายเมื่อสายเคเบิลเส้นใดเส้นหนึ่งล้มเหลว ให้กำหนดค่า อินเทอร์เฟซ bond0 ใน YaST เพิ่มอะแดปเตอร์ทั้งสองตัว และเลือกactive-backup ตั้งmiimon=100ค่าการกำหนดค่า IP ของเซิร์ฟเวอร์ไว้ที่ bond แทนที่จะตั้งค่าไว้ที่พอร์ตทางกายภาพใดๆ วิธีนี้จะช่วยให้มีลิงก์สำรองโดยไม่จำเป็นต้องใช้สวิตช์ที่เปิดใช้งาน LACP
ขั้นตอนด้านล่างนี้ใช้บริการเครือข่าย Wicked ซึ่งโดยปกติใช้สำหรับเวิร์กโหลดเซิร์ฟเวอร์ SLES การเปลี่ยนอินเทอร์เฟซที่ใช้ในการเชื่อมต่อ SSH อาจทำให้คุณหลุดการเชื่อมต่อ ดังนั้นควรทำการเปลี่ยนแปลงจากคอนโซลภายในเครื่อง คอนโซลการจัดการระยะไกล หรือช่วงเวลาการบำรุงรักษาที่ได้รับอนุญาตซึ่งมีเส้นทางการกู้คืน
ตรวจสอบอะแดปเตอร์และเลือกโหมดการเชื่อมต่อที่ถูกต้อง
การ์ดเครือข่ายสองตัวที่ใช้งานได้ไม่ได้สร้างคู่สำรองโดยอัตโนมัติ หากไม่มีการรวมพอร์ต (bonding) แต่ละอินเทอร์เฟซจะได้รับการจัดการแยกกัน และแอปพลิเคชันที่ใช้เส้นทางหนึ่งอาจสูญเสียการเชื่อมต่อเมื่อลิงก์นั้นล้มเหลว การรวมพอร์ตใน Linux จะแสดงพอร์ตทางกายภาพหลายพอร์ตเป็นอินเทอร์เฟซเชิงตรรกะเดียว
ก่อนทำการเปลี่ยนแปลงใดๆ ให้ระบุชื่ออินเทอร์เฟซที่ถูกต้อง บันทึกที่อยู่ IPv4/IPv6 ปัจจุบันของโฮสต์ เกตเวย์ VLAN และการตั้งค่า DNS และตรวจสอบให้แน่ใจว่าพอร์ตสวิตช์ทั้งสองเชื่อมต่อกับเครือข่ายที่ต้องการ:
ip -br link
ip -br addr
ip route
systemctl status network
ในหน้าจอตัวอย่าง อินเทอร์เฟซทางกายภาพสองตัวคือenp1s0และenp2s0ชื่อเหล่านี้เป็นเพียงตัวอย่างเท่านั้น เซิร์ฟเวอร์ของคุณอาจมีชื่อแตกต่างกัน ที่อยู่ตัวอย่าง192.0.2.20/24เป็นเพียงที่อยู่สำหรับเอกสารเท่านั้น ไม่ใช่ค่าที่จะนำไปใช้งานบนเครือข่ายของคุณ
ใช้โหมดสำรองข้อมูลแบบแอคทีฟ (โหมด 1) เมื่อต้องการรักษาการให้บริการในระหว่างที่พอร์ตหรือสายเคเบิลล้มเหลว พอร์ตหนึ่งจะส่งข้อมูลในขณะที่อีกพอร์ตหนึ่งยังคงพร้อมใช้งานสำหรับการสลับไปใช้พอร์ตสำรอง เลือกใช้802.3ad (LACP โหมด 4) เฉพาะเมื่อสวิตช์เครือข่ายได้รับการกำหนดค่าอย่างชัดเจนสำหรับกลุ่มการรวม LACP ที่ตรงกัน โดยมีการตั้งค่าความเร็วและโหมดการทำงานแบบดูเพล็กซ์ที่เข้ากันได้ LACP สามารถกระจายการไหลของทราฟฟิกที่แตกต่างกันไปยังลิงก์ต่างๆ ได้ แต่ไม่รับประกันความเร็วเป็นสองเท่าของการเชื่อมต่อเดียว SUSE เตือนไม่ให้ใช้การเชื่อมต่อแบบธรรมดาข้ามสวิตช์หลายตัว เว้นแต่ผู้จำหน่ายสวิตช์จะรองรับการจัดเรียงดังกล่าว โปรดดูขั้นตอนและข้อจำกัดของการเชื่อมต่อเครือข่ายของ SUSE
กำหนดค่า bond0 ใน YaST
1. เปิดการตั้งค่าเครือข่ายและตรวจสอบพอร์ตที่มีอยู่ เรียกใช้sudo yast2หรือเปิด YaST ในเครื่องของคุณ จากนั้นไปที่ระบบ > การตั้งค่าเครือข่าย ในแท็บ ภาพรวม ให้ระบุอินเทอร์เฟซอีเธอร์เน็ตทั้งสองที่คุณต้องการรวมเข้าด้วยกัน หากอินเทอร์เฟซหนึ่งกำลังใช้งานที่อยู่การจัดการของเซิร์ฟเวอร์ ให้จัดเตรียมการเข้าถึงคอนโซลก่อนที่จะเปลี่ยนการกำหนดค่า อย่าเลือกอินเทอร์เฟซไร้สายหรืออินเทอร์เฟซที่ใช้งานอยู่แล้วสำหรับบริดจ์ที่ไม่เกี่ยวข้องโดยไม่ได้วางแผนโครงสร้างเครือข่ายนั้นก่อน
ภาพรวมการตั้งค่าเครือข่ายจะระบุ enp1s0 และ enp2s0 ก่อนที่จะสร้างอุปกรณ์ที่เชื่อมต่อกัน
2. สร้างอินเทอร์เฟซการเชื่อมต่อ คลิกเพิ่ม เปลี่ยนประเภทอุปกรณ์ เป็นการเชื่อมต่อ (Bonding) แล้วคลิกถัดไป YaST จะเปิดการตั้งค่าการ์ดเครือข่ายสำหรับการเชื่อมต่อแบบลอจิกใหม่ อย่าพยายามกำหนดให้การ์ดเครือข่ายทั้งสองตัวมีที่อยู่ IP แบบคงที่เดียวกันโดยอิสระ
หน้าต่าง "เพิ่มการ์ดเครือข่ายใหม่" จะแสดงว่า Bonding ถูกเลือกเป็นประเภทอุปกรณ์ใหม่
3. กำหนดค่า IP ให้กับพันธะ ใน แท็บ ที่อยู่ ให้ เลือกที่อยู่แบบไดนามิก หากโครงสร้างพื้นฐานของคุณจัดหาการเช่า DHCP ที่เหมาะสม หรือเลือกที่อยู่ IP ที่กำหนดแบบคงที่ สำหรับเซิร์ฟเวอร์ที่มีที่อยู่คงที่ ในการใช้งานแบบคงที่ ให้ย้ายที่อยู่การจัดการและซับเน็ตก่อนหน้าไปยังบอนด์ และตรวจสอบให้แน่ใจว่าอินเทอร์เฟซทางกายภาพเก่าไม่ได้เก็บ IP ซ้ำกัน ยืนยันเกตเวย์เริ่มต้นใน แท็บ การกำหนดเส้นทาง และ DNS ภายใต้ชื่อโฮสต์/DNS ตามความเหมาะสม อย่าคิดว่าการกำหนดที่อยู่แบบคงที่จะกำหนดค่าเหล่านี้โดยอัตโนมัติ
แท็บ "ที่อยู่" แสดงตัวอย่างที่อยู่ IP แบบคงที่และซับเน็ตมาสก์ที่กำหนดให้กับบอนด์ ไม่ใช่สมาชิกในบอนด์นั้น
4. เลือกพอร์ตทั้งสอง เปิดใช้งานการตรวจสอบลิงก์ และกดใช้งาน เปิดพอร์ต Bond และตรวจสอบอะแดปเตอร์สองตัวที่ต้องการ ในตัวเลือก Bond Driver ให้เลือกactive-backupSimple Redundancy และคงค่าไว้miimon=100การตรวจสอบสถานะลิงก์สมาชิกจะเกิดขึ้นทุกๆ 100 มิลลิวินาที ซึ่งไม่รับประกันว่าจะตรวจพบความล้มเหลวของอัปสตรีมทั้งหมด เลือกNext ยอมรับข้อความแจ้งเตือนใดๆ เพื่อปรับการกำหนดค่าอินเทอร์เฟซแต่ละตัวแบบเดิมโดยเลือกContinue แล้วคลิกOK เพื่อยืนยันการเชื่อมต่อใหม่ คุณอาจสูญเสียการเข้าถึงชั่วขณะในขณะที่ IP กำลังย้ายไปยัง bond0
พอร์ตอีเธอร์เน็ตทั้งสองพอร์ตถูกเลือกใช้งาน โดยมีการเชื่อมต่อแบบแอคทีฟ-สำรอง และช่วงเวลาการตรวจสอบ MII ที่ 100 มิลลิวินาที
ภาพหน้าจอเหล่านี้เน้นที่ส่วนควบคุมที่อธิบายไว้ในคำแนะนำการเชื่อมต่อ YaST ของ SUSE SLES 15 SP7 โดยเค้าโครงหรือถ้อยคำอาจแตกต่างกันไปขึ้นอยู่กับเวอร์ชัน YaST ที่ติดตั้งและอินเทอร์เฟซแบบกราฟิกหรือแบบข้อความ
ให้ใช้ไฟล์ ifcfg หาก YaST ไม่พร้อมใช้งาน
การกำหนดค่าด้วยตนเองเป็นทางเลือกสำรองสำหรับผู้ดูแลระบบที่ไม่สามารถใช้ YaST ได้ เอกสารของ SUSE ระบุ/etc/sysconfig/network/ifcfg-*รูปแบบสำหรับโฮสต์ที่จัดการโดย Wicked สำรองไฟล์เครือข่ายต้นฉบับไว้นอก/etc/sysconfig/networkไดเร็กทอรีที่ใช้งานอยู่ และรักษาการเข้าถึงคอนโซลไว้ก่อนดำเนินการต่อ:
sudo mkdir -p /root/network-bond-backup
sudo cp -a /etc/sysconfig/network/ifcfg-enp1s0 /root/network-bond-backup/
sudo cp -a /etc/sysconfig/network/ifcfg-enp2s0 /root/network-bond-backup/
หากไม่มีไฟล์ต้นฉบับที่ระบุชื่อไว้ ให้ตรวจสอบไดเร็กทอรีและสำรองไฟล์จริงแทนที่จะเดาชื่อไฟล์ สำหรับการกำหนดค่า IP แบบคงที่ตัวอย่าง นี้ ให้สร้างไฟล์/etc/sysconfig/network/ifcfg-bond0ที่มีเนื้อหาดังต่อไปนี้ โดยแทนที่ชื่ออินเทอร์เฟซและที่อยู่ด้วยค่าจริงของคุณ:
STARTMODE='auto'
BOOTPROTO='static'
IPADDR='192.0.2.20/24'
BONDING_MASTER='yes'
BONDING_SLAVE0='enp1s0'
BONDING_SLAVE1='enp2s0'
BONDING_MODULE_OPTS='mode=active-backup miimon=100'
ไฟล์ ของสมาชิกแต่ละคนifcfgไม่จำเป็นต้องมีการกำหนดค่า IP แยกต่างหากอีกต่อไป ตัวอย่างเช่น ให้ใส่เฉพาะบรรทัดเหล่านี้ในทั้งสองifcfg-enp1s0ไฟล์ifcfg-enp2s0:
BOOTPROTO='none'
STARTMODE='hotplug'
รักษาการตั้งค่าเส้นทางและตัวแก้ไขชื่อโดเมนทั่วทั้งระบบให้สอดคล้องกับการเชื่อมต่อใหม่ ตรวจสอบการตั้งค่าและเปิดใช้งานอินเทอร์เฟซเชิงตรรกะด้วย Wicked:
sudo wicked show-config
sudo wicked ifup all bond0
ใช้sudo wicked ifreload bond0หลังจากแก้ไขการเชื่อมต่อที่กำลังทำงานอยู่แล้ว อย่าใช้systemctlเพื่อเริ่มหรือหยุดอุปกรณ์ที่เชื่อมต่อแต่ละตัว SUSE มีวิธีการกำหนดwickedสำหรับงานนั้นโดยเฉพาะ สำหรับพารามิเตอร์ไฟล์ที่รองรับ โปรดดู เอกสารอ้างอิง การกำหนดค่าการเชื่อมต่อในคู่มือ SUSE และman 5 ifcfg-bondingหน้าเว็บ ที่ติดตั้งในเครื่อง
แก้ไขปัญหาการเชื่อมต่อที่ไม่สามารถใช้งานได้
บอนด์มีอยู่แต่ไม่มีที่อยู่ IP: ตรวจสอบว่าที่อยู่ถูกกำหนดให้กับ bond0 ไม่ใช่สมาชิก และยืนยันการตั้งค่าเซิร์ฟเวอร์ DHCP หรือที่อยู่แบบคงที่ เกตเวย์ที่หายไปหรือ VLAN ที่ไม่ถูกต้องอาจทำให้ไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้แม้ว่าพอร์ตทั้งสองจะรายงานว่ามีสัญญาณ ตรวจสอบip routeการกำหนดค่าพอร์ตสวิตช์ของคุณก่อนที่จะรีสตาร์ทเครือข่ายซ้ำๆ
รายงานการเชื่อมต่อแจ้งว่ามีอุปกรณ์ตัวใดตัวหนึ่งทำงานผิดปกติ: ตรวจสอบสายเคเบิล สถานะพอร์ตสวิตช์ การเลือกอินเทอร์เฟซ และข้อความไดรเวอร์ ตรวจสอบให้แน่ใจว่าชื่ออุปกรณ์BONDING_SLAVE0ตรงกันการตรวจสอบลิงก์จะตรวจจับการเปลี่ยนแปลงอินเทอร์เฟซ/คลื่นความถี่ที่เกี่ยวข้อง แต่ไม่ใช่ความล้มเหลวที่อาจเกิดขึ้นทั้งหมดนอกเหนือจากสวิตช์ที่เชื่อมต่อโดยตรงBONDING_SLAVE1ip -br link
การรับส่งข้อมูลล้มเหลวหลังจากเปลี่ยนไปใช้ 802.3ad: ตรวจสอบการตั้งค่ากลุ่ม LACP และพอร์ตของสวิตช์ก่อน การตั้งค่าบอนด์เป็น LACP ในขณะที่พอร์ตของสวิตช์ยังคงเป็นพอร์ตอิสระทั่วไป ถือเป็นการตั้งค่าที่ไม่ตรงกัน หากจุดประสงค์คือการสลับไปใช้ระบบสำรอง (failover) เท่านั้น ให้กลับไปใช้โหมดสำรองข้อมูลแบบแอคทีฟ (active-backup) แทนที่จะใช้การรวมสวิตช์โดยไม่จำเป็น
ตรวจสอบการตั้งค่าและทดสอบการทำงานสำรอง (failover)
ตรวจสอบบอนด์ที่ใช้งานอยู่ อินเทอร์เฟซสมาชิก และการกำหนดเส้นทาง:
sudo wicked ifstatus --verbose bond0
ip -br addr show bond0
ip route
cat /proc/net/bonding/bond0
การเชื่อมต่อควรมีที่อยู่ IP ที่ต้องการ การเชื่อมต่อควรใช้งานได้ และไฟล์สถานะเคอร์เนลควรแสดงรายการอินเทอร์เฟซสมาชิกทั้งสอง ในโหมดแอคทีฟ-สำรอง ให้ตรวจสอบ ฟิลด์ Currently Active Slave และ สถานะ MII ของสมาชิกแต่ละตัวผลลัพธ์ที่แน่นอนขึ้นอยู่กับไดรเวอร์และการกำหนดค่าของคุณเอกสารประกอบการเชื่อมต่อเคอร์เนล Linux อธิบายอินเทอร์เฟซสถานะนี้
สุดท้ายนี้ ให้ยืนยันการเชื่อมต่อกับ เกตเวย์เริ่มต้น จริง และไคลเอ็นต์บริการที่ต้องเข้าถึงโฮสต์ ในช่วงเวลาการบำรุงรักษาที่ได้รับอนุมัติ ให้ตัดการเชื่อมต่อหรือปิดใช้งานเฉพาะลิงก์ที่ใช้งานอยู่เท่านั้นในขณะที่ตรวจสอบสถานะบอนด์และการทดสอบการเชื่อมต่ออย่างต่อเนื่อง สมาชิกสำรองควรจะเข้ามารับช่วงต่อและการเชื่อมต่อควรจะกลับมาเป็นปกติ หลังจากนั้นให้กู้คืนลิงก์และยืนยันว่าสมาชิกทั้งสองแสดงสถานะที่ปกติ หากเครือข่ายยังคงไม่สามารถเข้าถึงได้ ให้ใช้การเข้าถึงคอนโซลของคุณเพื่อกู้คืนการกำหนดค่าสมาชิกที่สำรองไว้แทนที่จะทำการเปลี่ยนแปลงเพิ่มเติมโดยไม่รู้ข้อมูลผ่าน SSH