วิธีสร้าง NIC Teaming หรือ Bonding ใน CentOS 8/RHEL 8
การทำงานเป็นทีม NIC คือการรวมหรือเชื่อมโยงลิงก์เครือข่ายตั้งแต่สองลิงก์ขึ้นไปเข้าไว้ในลิงก์ลอจิคัลเดียวเพื่อให้มีความซ้ำซ้อนและมีความพร้อมใช้งานสูง อินเทอร์เฟซ/ลิงก์แบบลอจิคัลเรียกว่าอินเทอร์เฟซแบบทีม ในกรณีที่ลิงก์ทางกายภาพที่ใช้งานอยู่ล่ม ลิงก์สำรองหรือลิงก์ที่สงวนไว้รายการใดรายการหนึ่งจะถูกเตะโดยอัตโนมัติ และทำให้แน่ใจได้ว่าการเชื่อมต่อกับเซิร์ฟเวอร์จะไม่ถูกรบกวน
คำศัพท์เฉพาะทีม
ก่อนที่เราจะม้วนแขนเสื้อ สิ่งสำคัญคือต้องทำความคุ้นเคยกับคำศัพท์ต่อไปนี้:
- Teamd – นี่คือ teaming daemon ที่ใช้ไลบรารี libteam เพื่อสื่อสารกับอุปกรณ์ของทีมผ่านเคอร์เนล Linux
- Teamdctl– นี่คือยูทิลิตี้ที่อนุญาตให้ผู้ใช้ควบคุมอินสแตนซ์ของ teamd คุณสามารถตรวจสอบและเปลี่ยนสถานะพอร์ต รวมทั้งสลับระหว่างสถานะการสำรองข้อมูลและสถานะที่ใช้งานอยู่
- Runner – คือหน่วยของโค้ดที่เขียนด้วย JSON และใช้สำหรับการนำแนวคิดการทำงานเป็นทีมของ NIC ต่างๆ ไปใช้ ตัวอย่างของโหมดนักวิ่ง ได้แก่ Round Robbin, การปรับสมดุลโหลด, การออกอากาศ และการสำรองข้อมูลที่ใช้งานอยู่
สำหรับคู่มือนี้ เราจะกำหนดค่า การสร้างทีม NIC โดยใช้โหมด active-backup นี่คือที่ที่ลิงก์หนึ่งยังคงใช้งานได้ในขณะที่ส่วนที่เหลืออยู่ในโหมดสแตนด์บายและสงวนไว้เป็นลิงก์สำรองในกรณีที่ลิงก์ที่ใช้งานอยู่ล่ม
บนหน้านี้
- ติดตั้ง teamd Daemon ใน CentOS
- กำหนดค่าทีมงาน NIC ใน CentOS
- การทดสอบเครือข่าย Teaming Redundancy
- การลบอินเทอร์เฟซการสร้างทีมเครือข่าย
มาเริ่มกันเลยโดยไม่ต้องกังวลใจอีกต่อไป
ขั้นตอนที่ 1: ติดตั้ง teamd Daemon ใน CentOS
ทีม คือดีมอนที่รับผิดชอบในการสร้างทีมเครือข่ายที่จะทำหน้าที่เป็นอินเทอร์เฟซแบบลอจิคัลระหว่างรันไทม์ โดยค่าเริ่มต้น จะมีการติดตั้งมาพร้อมกับ CentOS/RHEL 8 แต่ถ้าไม่ได้ติดตั้งด้วยเหตุผลใดก็ตาม ให้รันคำสั่ง dnf ต่อไปนี้เพื่อติดตั้ง
sudo dnf install teamd
เมื่อติดตั้งแล้ว ให้ตรวจสอบว่าติดตั้ง teamd แล้วโดยการรันคำสั่ง rpm:
rpm -qi teamd
ขั้นตอนที่ 2: กำหนดค่า NIC Teaming ใน CentOS
ในการกำหนดค่าการสร้างทีม NIC เราจะใช้เครื่องมือ nmcli ที่มีประโยชน์ซึ่งสามารถใช้สำหรับการจัดการบริการ NetworkManager ในระบบของฉัน ฉันมีการ์ด 2 NIC ที่ฉันจะเชื่อมโยงหรือรวมเข้าด้วยกันเพื่อสร้างอินเทอร์เฟซทีมแบบลอจิคัล: enp0s3
และ enp0s8
สิ่งนี้อาจแตกต่างกันในกรณีของคุณ
เพื่อยืนยันว่าอินเทอร์เฟซเครือข่ายที่ใช้งานอยู่ทำงาน:
nmcli device status
เอาต์พุตยืนยันการมีอยู่ของการเชื่อมต่อเครือข่ายที่ใช้งานอยู่ 2 รายการ หากต้องการรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับอินเทอร์เฟซเช่น UUID ให้รันคำสั่ง:
nmcli connection show
หากต้องการสร้างลิงก์หรืออินเทอร์เฟซการทำงานเครือข่ายซึ่งจะเป็นลิงก์แบบลอจิคัลของเรา เราจะลบอินเทอร์เฟซเครือข่ายที่มีอยู่ หลังจากนั้น เราจะสร้างอินเทอร์เฟซทาสโดยใช้อินเทอร์เฟซที่ถูกลบ จากนั้นเชื่อมโยงเข้ากับลิงก์ร่วมทีม
การใช้ UUID ตามลำดับดำเนินการคำสั่งด้านล่างเพื่อลบลิงก์:
nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29
nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807
คราวนี้เมื่อคุณตรวจสอบอินเทอร์เฟซ คุณจะสังเกตเห็นว่าอินเทอร์เฟซถูกตัดการเชื่อมต่อและไม่มีการเชื่อมต่อกับเซิร์ฟเวอร์ โดยพื้นฐานแล้ว เซิร์ฟเวอร์ของคุณจะถูกแยกออกจากส่วนที่เหลือของเครือข่าย
nmcli device status
ต่อไป เราจะสร้างอินเทอร์เฟซทีมชื่อ team0
ในโหมด active-backup runner ตามที่ระบุไว้ก่อนหน้านี้ โหมดนักวิ่งสำรองที่ใช้งานอยู่จะใช้อินเทอร์เฟซที่ใช้งานอยู่หนึ่งอินเทอร์เฟซ และสงวนส่วนอื่นๆ ไว้สำหรับการสำรองในกรณีที่ลิงก์ที่ใช้งานอยู่หยุดทำงาน
nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
หากต้องการดูแอตทริบิวต์ที่กำหนดให้กับอินเทอร์เฟซ team0
ให้รันคำสั่ง:
nmcli connection show team0
สมบูรณ์แบบ! ณ จุดนี้ เรามีอินเทอร์เฟซเดียวเท่านั้น ซึ่งก็คืออินเทอร์เฟซ team0
ดังที่แสดง
nmcli connection show
จากนั้น กำหนดค่าที่อยู่ IP สำหรับอินเทอร์เฟซ team0
ดังที่แสดงโดยใช้คำสั่ง nmcli อย่าลืมกำหนด IP ตามเครือข่ายย่อยและรูปแบบการกำหนดที่อยู่ IP ของเครือข่ายของคุณ
nmcli con mod team0 ipv4.addresses 192.168.2.100/24
nmcli con mod team0 ipv4.gateway 192.168.2.1
nmcli con mod team0 ipv4.dns 8.8.8.8
nmcli con mod team0 ipv4.method manual
nmcli con mod team0 connection.autoconnect yes
หลังจากนั้น ให้สร้างลิงก์ทาสและเชื่อมโยงทาสเข้ากับลิงก์ของทีม:
nmcli con add type team-slave con-name team0-slave0 ifname enp0s3 master team0
nmcli con add type team-slave con-name team0-slave1 ifname enp0s8 master team0
ตรวจสอบสถานะของลิงก์อีกครั้ง และคุณจะสังเกตเห็นว่าลิงก์ทาสใช้งานได้แล้ว
nmcli connection show
ถัดไป ปิดใช้งานและเปิดใช้งานลิงก์ทีม ซึ่งจะเปิดใช้งานการเชื่อมต่อระหว่างลิงก์ทาสและลิงก์ทีม
nmcli connection down team0 && nmcli connection up team0
ถัดไป ตรวจสอบสถานะของการเชื่อมต่อลิงก์ทีมตามที่แสดง
ip addr show dev team0
เราจะเห็นว่าลิงก์นั้นขึ้นอยู่กับที่อยู่ IP ที่ถูกต้องที่เรากำหนดค่าไว้ก่อนหน้านี้
หากต้องการดึงรายละเอียดเพิ่มเติมเกี่ยวกับลิงก์ทีม ให้รันคำสั่ง:
sudo teamdctl team0 state
จากผลลัพธ์ เราจะเห็นว่าทั้งลิงก์ (enp0s3
และ enp0s8
) ขึ้นแล้ว และลิงก์ที่ใช้งานอยู่คือ enp0s8
ขั้นตอนที่ 3: การทดสอบความซ้ำซ้อนของทีมเครือข่าย
เพื่อทดสอบโหมดทีมสำรองที่ใช้งานอยู่ เราจะยกเลิกการเชื่อมต่อลิงก์ที่ใช้งานอยู่ในปัจจุบัน – enp0s3
– และตรวจสอบว่าลิงก์อื่นเริ่มทำงานหรือไม่
nmcli device disconnect enp0s3
sudo teamdctl team0 state
เมื่อคุณตรวจสอบสถานะของอินเทอร์เฟซการทำงานเป็นทีม คุณจะพบว่าลิงก์ enp0s8
ได้เริ่มทำงานและให้บริการการเชื่อมต่อกับเซิร์ฟเวอร์ นี่เป็นการยืนยันว่าการตั้งค่าของเราใช้งานได้!
ขั้นตอนที่ 4: การลบ Network Teaming Interface
หากคุณต้องการลบอินเทอร์เฟซ/ลิงก์ teaming และเปลี่ยนกลับเป็นการตั้งค่าเครือข่ายเริ่มต้น ให้นำลิงก์ teaming ลงมาก่อน:
nmcli connection down team0
จากนั้นให้ลบทาส
nmcli connection delete team0-slave0 team0-slave1
สุดท้าย ลบอินเทอร์เฟซการร่วมทีม
nmcli connection delete team0
ณ จุดนี้ อินเทอร์เฟซทั้งหมดใช้งานไม่ได้ และไม่สามารถเข้าถึงเซิร์ฟเวอร์ของคุณได้ หากต้องการเปิดใช้งานอินเทอร์เฟซเครือข่ายของคุณและเชื่อมต่อใหม่ ให้รันคำสั่ง:
sudo ifconfig enp0s3 up
sudo ifconfig enp0s8 up
sudo systemctl restart NetworkManager
บทสรุป
การทำงานเป็นทีม NIC นำเสนอโซลูชันที่ยอดเยี่ยมสำหรับการสำรองข้อมูลเครือข่าย ด้วยอินเทอร์เฟซเครือข่าย 2 รายการขึ้นไป คุณสามารถกำหนดค่าอินเทอร์เฟซการจับคู่ในโหมดรันเนอร์ใดๆ เพื่อให้แน่ใจว่ามีความพร้อมใช้งานสูงในกรณีที่ลิงก์หนึ่งลิงก์ล่มโดยไม่ตั้งใจ เราหวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์ ติดต่อเราและแจ้งให้เราทราบว่าประสบการณ์ของคุณเป็นอย่างไร