ค้นหาเว็บไซต์

วิธีสร้าง 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 รายการขึ้นไป คุณสามารถกำหนดค่าอินเทอร์เฟซการจับคู่ในโหมดรันเนอร์ใดๆ เพื่อให้แน่ใจว่ามีความพร้อมใช้งานสูงในกรณีที่ลิงก์หนึ่งลิงก์ล่มโดยไม่ตั้งใจ เราหวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์ ติดต่อเราและแจ้งให้เราทราบว่าประสบการณ์ของคุณเป็นอย่างไร