Open navigation

BKK4 : วิธี Add IP เสริม บน CentOS Stream (Cloud)

บทความนี้อธิบายวิธีการตั้งค่า Additional IP Address บน CentOS Stream 10 ด้วย NetworkManager เพื่อให้ระบบปฏิบัติการสามารถใช้งาน Additional IP Address ผ่าน Interface และ Gateway ที่ถูกต้องได้

ข้อกำหนดก่อนเริ่ม (Prerequisite)
ก่อนดำเนินการตามคู่มือนี้ จำเป็นต้อง Assign Additional IP Address ให้กับ Cloud VPS จาก Cloud Portal ให้เรียบร้อยก่อน หากยังไม่ได้ดำเนินการ Additional IP จะไม่สามารถใช้งานบนระบบปฏิบัติการได้

 วิธีการ Assign Additional IP Address ให้กับ Cloud VPS 

วิธีตั้งค่า Additional IP Address บน CentOS Stream 10 ด้วย NetworkManager


ก่อนเริ่มดำเนินการ กรุณาตรวจสอบว่าท่านมีข้อมูลดังต่อไปนี้เรียบร้อยแล้ว

  • Primary IP Address
  • Additional IP Address
  • Gateway ของ Additional IP Address
  • MAC Address ของ Interface ที่ต้องการใช้งาน
  • สามารถเชื่อมต่อ SSH เข้าสู่ Server ได้
  • ใช้งานบัญชี root หรือบัญชีที่สามารถใช้คำสั่ง sudo ได้
คู่มือนี้ใช้สำหรับ CentOS Stream 10 ที่บริหารจัดการ Network ด้วย NetworkManager (nmcli)


กรุณาดำเนินการตามขั้นตอนดังต่อไปนี้


Step 1: ตรวจสอบชื่อ Network Connection

ตรวจสอบชื่อ Network Connection ที่ NetworkManager ใช้งานอยู่

nmcli connection show

จากนั้นตรวจสอบว่า Connection ใดผูกอยู่กับ Interface ens4

ชื่อ Connection ของแต่ละเครื่องอาจแตกต่างกัน เช่น Wired connection 1, System ens4, ens4 หรือชื่ออื่น ๆ กรุณาใช้ชื่อ Connection จริงที่แสดงจากคำสั่ง nmcli connection show


Step 2: Backup Network Configuration

สำรอง Network Configuration เดิมก่อนเริ่มแก้ไข

mkdir -p /root/network-backup-$(date +%F-%H%M)
cp -a /etc/NetworkManager/system-connections/* /root/network-backup-$(date +%F-%H%M)/ 2>/dev/null


Step 3: ตั้งค่า IPv4 ให้ Interface

กำหนด Additional IP Address ให้กับ Network Connection ของ Interface ens4 และป้องกันไม่ให้ Interface นี้ถูกใช้เป็น Default Route หลัก

nmcli con modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses "118.27.152.54/23" \
ipv4.never-default yes
กรุณาเปลี่ยน "Wired connection 1" เป็นชื่อ Network Connection จริงของเครื่องท่าน หากชื่อ Connection ไม่ตรงกัน คำสั่งจะไม่สามารถใช้งานได้


Step 4: เพิ่ม Route

กำหนด Routing Table สำหรับ Additional IP Address เพื่อให้ใช้งาน Gateway ของตนเอง

nmcli con modify "Wired connection 1" \
+ipv4.routes "118.27.152.0/23 table=102" \
+ipv4.routes "0.0.0.0/0 118.27.152.1 table=102"
ในตัวอย่างนี้ใช้ Routing Table 102 สำหรับ Additional IP Address ที่อยู่บน Interface ens4


Step 5: เพิ่ม Routing Rule

กำหนด Routing Rule ให้ Traffic ที่มี Source IP เป็น 118.27.152.54 ใช้งาน Routing Table 102

nmcli con modify "Wired connection 1" \
+ipv4.routing-rules "priority 102 from 118.27.152.54/32 table 102"
กรณีมี Additional IP Address มากกว่า 1 IP และใช้งานผ่าน Interface และ Gateway เดียวกัน สามารถใช้ Routing Table เดียวกันได้ เช่น table 102

โดยเพิ่ม Routing Rule สำหรับแต่ละ Source IP และกำหนดค่า Priority ไม่ให้ซ้ำกัน เช่น 102, 103, 104 ตามลำดับ


Step 6: Apply Network

ปิดและเปิด Connection ใหม่เพื่อให้ค่าที่ตั้งไว้มีผล

nmcli con down "Wired connection 1"
nmcli con up "Wired connection 1"
หากเชื่อมต่อผ่าน SSH แนะนำให้ตรวจสอบชื่อ Connection ให้ถูกต้องก่อนรันคำสั่ง เพื่อป้องกันการหลุดจากระบบ


Step 7: ทดสอบการทำงาน

ทดสอบว่า Additional IP Address สามารถออก Internet ได้ถูกต้อง

curl --interface 118.27.152.54 https://ifconfig.me

ผลลัพธ์ควรแสดงเป็น

118.27.152.54


ตรวจสอบหลังตั้งค่า

ตรวจสอบข้อมูล Network และ Policy Routing ด้วยคำสั่งต่อไปนี้

ip a show ens4
ip route
ip rule show
ip route show table 102

ผลลัพธ์ที่ควรพบ เช่น

ip a show ens4
inet 118.27.152.54/23

ip rule show
102: from 118.27.152.54 lookup 102

ip route show table 102
default via 118.27.152.1 dev ens4
118.27.152.0/23 dev ens4
หลังตั้งค่าเรียบร้อย

• Primary Interface จะยังคงเป็น Default Route หลักของระบบ
• Additional IP Address จะใช้งานผ่าน Gateway ของตนเอง
• หากมีหลาย Additional IP Address ที่ใช้ Gateway เดียวกัน สามารถใช้ Routing Table เดียวกันได้ โดยเพิ่ม Routing Rule แยกตามแต่ละ Source IP และกำหนด Priority ไม่ให้ซ้ำกัน


บทความนี้มีประโยชน์หรือไม่?

เยี่ยมเลย!

ขอบคุณสำหรับความคิดเห็นของคุณ

ขออภัยที่เราช่วยเหลือไม่ได้!

ขอบคุณสำหรับความคิดเห็นของคุณ

บอกให้เราทราบว่าเราจะปรับปรุงบทความนี้ได้อย่างไร!

เลือกเหตุผลอย่างน้อยหนึ่งข้อ
ต้องมีการตรวจสอบ CAPTCHA

ส่งข้อเสนอแนะแล้ว

เราขอขอบคุณในความพยายามของคุณ และจะพยายามแก้ไขบทความดังกล่าว