Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

การเพิ่มอินเตอร์เฟซ VLAN ใน CentOS/Fedora/RHEL

ในบทความนี้เราจะแสดงวิธีกำหนดค่าอินเตอร์เฟซ VLAN แบบแท็ก (tagged) โดยใช้เครื่องมือพื้นฐานของ Linux บน CentOS/Fedora/RedHat เราจะศึกษาการกำหนดค่าโดยใช้ subinterface, ไฟล์ vlanX แยกต่างหาก และเครื่องมืออย่าง NetworkManager และ vconfig

ใน CentOS/Fedora/RedHat มี 2 ทางเลือกในการกำหนดค่า VLAN:

  • ใช้ subinterface (เช่น eth12.7)
  • ใช้ไฟล์ vlanXX แยกต่างหาก (vlan7)

VLAN (Virtual Local Area Network) ช่วยแบ่งเครือข่ายของคุณออกเป็นโดเมนการกระจายสัญญาณหลายโดเมนที่แยกจากกันบนระดับ Data Link ของ OSI ด้วย VLAN คุณสามารถกำหนดค่าเครือข่ายบางเครือข่ายบนอินเตอร์เฟซทางกายภาพเดียวกันของเซิร์ฟเวอร์ได้ เมื่อใช้ VLAN 802.1Q เราเตอร์ สวิตช์ และเซิร์ฟเวอร์ต้องกำหนดแท็กพิเศษ (tagged traffic) พร้อมหมายเลข VLAN (VLAN ID: 0 ถึง 4095) ให้กับแพ็กเก็ตเครือข่าย

วิธีสร้าง VLAN โดยใช้ Subinterface

เพื่อกำหนดค่าอินเตอร์เฟซแบบแท็ก โมดูลเคอร์เนล Linux 8021q ต้องเปิดใช้งานบนเซิร์ฟเวอร์ของคุณ โหลดโมดูลด้วยคำสั่ง:

# modprobe 8021q

หากโมดูลโหลดแล้ว จะเกิดข้อผิดพลาด: modprobe: ERROR: could not insert ‘8021q’: Module already in kernel

ตรวจสอบว่าโมดูลโหลดแล้ว:

# lsmod | grep 8021q

8021q 33080 0 garp 14384 1 8021q mrp 18542 1 8021q 

โมดูล 8021q มีอยู่ในระบบ

เพิ่มโมดูลนี้เข้าไปในการเริ่มต้นระบบ Linux:

# echo 8021q >> /etc/modules-load.d/8021q.conf

สร้าง VLAN ด้วย ID 7 สำหรับอินเตอร์เฟซ eth0 เพิ่มไฟล์กำหนดค่า ifcfg-eth0.7 (ตัวเลข 7 หลังจุดคือหมายเลข VLAN) ไฟล์นี้มีคำอธิบาย subinterface VLAN

# nano /etc/sysconfig/network-scripts/ifcfg-eth0.7

เพิ่มการตั้งค่าต่อไปนี้:

ONBOOT=yes TYPE=Ethernet VLAN=yes DEVICE=eth0.7 BOOTPROTO=static IPADDR=10.61.20.10 NETMASK=255.255.255.0

ไฟล์กำหนดค่านี้ผูกอินเตอร์เฟซเสมือน eth0.7 กับอินเตอร์เฟซทางกายภาพ eth0 หลังสร้างไฟล์กำหนดค่า ให้รีสตาร์ทบริการเครือข่าย:

# systemctl restart network

ตรวจสอบการตั้งค่าเครือข่าย:

# ip a

การเพิ่มอินเตอร์เฟซ VLAN ใน CentOS/Fedora/RHEL

ตามที่เห็น subinterface พร้อม VLAN 7 ถูกเพิ่มเข้ามา

คุณสามารถแสดงการผูกอินเตอร์เฟซและ VLAN ปัจจุบันได้ดังนี้:

# cat /proc/net/vlan/config

เพื่อดูสถิติอินเตอร์เฟซ (ใช้ตัวนับแพ็กเก็ต คุณสามารถยืนยันได้ว่าอินเตอร์เฟซ VLAN ได้รับ tagged traffic):

# cat /proc/net/vlan/eth0.7

เพื่อ ping จากอินเตอร์เฟซ VLAN เฉพาะ ใช้คำสั่ง:

# ping -I eth0.7 192.168.1.22

การกำหนดค่า VLAN โดยใช้ไฟล์ vlanXX แยกต่างหาก

ตอนนี้ลองสร้าง VLAN ด้วย ID 8 โดยใช้ไฟล์กำหนดค่าแยกต่างหาก:

# nano /etc/sysconfig/network-scripts/ifcfg-vlan8

เพิ่มบรรทัดเหล่านี้:

ONBOOT=yes TYPE=Ethernet VLAN=yes VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD DEVICE=vlan8 PHYSDEV=eth0.8 VLAN_ID=8 BOOTPROTO=static IPADDR=10.6.120.10 NETMASK=255.255.255.0 

โปรดสังเกตว่าไฟล์กำหนดค่านี้ต่างจากตัวก่อนหน้าค่อนข้างเล็กน้อย ในการตั้งค่านี้คุณระบุบรรทัด 'PHYSDEV' ที่ส่งต่อไฟล์กำหนดค่าไปยังอินเตอร์เฟซเครือข่ายทางกายภาพ

การเพิ่มอินเตอร์เฟซ VLAN ใน CentOS/Fedora/RHEL

หลังจากกำหนดค่าเสร็จแล้ว ให้รีสตาร์ทบริการเครือข่าย:

# systemctl restart network

หากเห็นข้อผิดพลาด No suitable device found for this connection ระหว่างรีสตาร์ทบริการเครือข่าย ให้ตรวจสอบว่าคุณระบุค่าที่ถูกต้องสำหรับตัวเลือก VLAN_ID ใน ifcfg-vlan8

ตรวจสอบ:

ip l ls

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff 6: vlan8@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff 

อินเตอร์เฟซเครือข่าย VLAN8 พร้อมใช้งานเช่นกัน

การใช้ NetworkManager ในการกำหนดค่าอินเตอร์เฟซ VLAN

ตั้งแต่ CentOS 8 (RHEL 8) NetworkManager ถูกใช้จัดการการเชื่อมต่อเครือข่าย เครื่องมือนี้มีอยู่ก่อนหน้านี้ แต่ผู้ดูแลระบบส่วนใหญ่ใช้ network ที่คุ้นเคย

มาดูวิธีกำหนดค่า VLAN โดยใช้ NM สร้างอินเตอร์เฟซเสมือน ens3.7 สำหรับ VLAN 7 บนอินเตอร์เฟซทางกายภาพ ens3 และตั้งค่าที่อยู่ IP:

# nmcli con add type vlan con-name ens3.7 ifname VLAN7 id 7 dev ens3 ip4 10.1.10.11/24 gw4 10.1.10.1

เพื่อตรวจสอบอินเตอร์เฟซเครือข่ายบนเซิร์ฟเวอร์ของคุณ ให้รันคำสั่ง:

# nmcli con show

NAME UUID TYPE DEVICE ens3 8bd5cfbc-5ffc-4554-8ae1-9e02e4b57ceb ethernet ens3 virbr0 e64e63a5-76ae-4661-91ae-009f566c5e66 bridge virbr0 ens3.7 e5e91557-49a8-4389-bdfc-c9bfc099714b vlan VLAN7

รีสตาร์ท NetworkManager หลังจากกำหนดค่า:

# systemctl restart NetworkManager

หลังจากรีสตาร์ทบริการ NM อินเตอร์เฟซยังคงอยู่:

การเพิ่มอินเตอร์เฟซ VLAN ใน CentOS/Fedora/RHEL

คุณสามารถแสดงการตั้งค่า VLAN ปัจจุบันได้ดังนี้:

# nmcli connection show ens3.7

วิธีกำหนดค่า VLAN ชั่วคราวโดยใช้ vconfig

สำหรับการทดสอบการตั้งค่าเครือข่าย/VLAN ควรใช้เครื่องมือ vconfig Vconfig เป็นเครื่องมือที่มีประโยชน์มากระหว่างการทดสอบหรือการศึกษา เนื่องจากหากคุณสูญเสียการเข้าถึงเซิร์ฟเวอร์เนื่องจากการตั้งค่าเครือข่ายผิด คุณสามารถกลับสู่การตั้งค่าเดิมด้วยการรีบูทเพียงครั้งเดียว เครื่องมือนี้มีอยู่ในที่เก็บ EPEL มาติดตั้งด้วย yum (หรือ dnf):

# yum install epel-release-y && yum install vconfig

สร้างอินเตอร์เฟซด้วย VLAN9:

# vconfig add eth0 9

Added VLAN with VID == 9 to IF -:eth0:-

จากนั้นกำหนดที่อยู่ IP ให้กับอินเตอร์เฟซเครือข่ายที่สร้างขึ้น:

# ifconfig eth0.9 10.1.0.15 netmask 255.255.255.0 up

อินเตอร์เฟซ VLAN ชั่วคราวถูกสร้างขึ้นแล้ว

การเพิ่มอินเตอร์เฟซ VLAN ใน CentOS/Fedora/RHEL

อย่าลืมกำหนดค่า VLAN ที่ตรงกันบนฮาร์ดแวร์เครือข่ายของคุณพร้อมกับการกำหนดค่า VLAN บนเซิร์ฟเวอร์ เพื่อให้ได้การเชื่อมต่อเครือข่าย