Open navigation

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

บทความนี้อธิบายวิธีตั้งค่า Additional IP Address บน AlmaLinux ด้วย NetworkManager Policy Routing เพื่อให้ Additional IP Address สามารถใช้งานผ่าน Gateway ของตนเองได้อย่างถูกต้อง

ข้อกำหนดก่อนเริ่ม (Prerequisite)

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

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

วิธีตั้งค่า Additional IP บน AlmaLinux ด้วย NetworkManager


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

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


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


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

ตรวจสอบชื่อ Network Connection ที่ NetworkManager ใช้งานอยู่ เนื่องจากคำสั่ง nmcli ต้องอ้างอิงชื่อ Connection ให้ถูกต้อง

nmcli connection show

สามารถตรวจสอบความสัมพันธ์ระหว่าง Interface และ Connection ได้ด้วยคำสั่ง

nmcli device status
ชื่อ Connection ของแต่ละเครื่องอาจแตกต่างกัน เช่น Wired connection 1, System eth1, System ens4 หรืออื่น ๆ


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 ให้กับ Interface และป้องกันไม่ให้ Interface นี้ถูกใช้เป็น Default Route หลัก

nmcli con modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses "118.27.152.57/23" \
ipv4.never-default yes
หาก Interface เดียวกันมี Additional IP Address มากกว่า 1 IP สามารถกำหนดหลาย IP ได้ เช่น

ipv4.addresses "118.27.152.57/23,118.27.152.58/23,118.27.152.59/23"

โดยทุก IP สามารถใช้งาน Gateway เดียวกันได้


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

หากข้อมูล IP หรือ Gateway ของท่านแตกต่างจากตัวอย่าง กรุณาเปลี่ยนค่าให้ตรงกับข้อมูลจริงที่ได้รับจาก Cloud Portal


Step 5: เพิ่ม Routing Rule

กำหนด Routing Rule ให้ Traffic ที่มี Source IP ของ Additional IP Address ใช้งาน Routing Table 102

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

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

ตัวอย่าง

nmcli con modify "Wired connection 1" \
+ipv4.routing-rules "priority 102 from 118.27.152.57/32 table 102" \
+ipv4.routing-rules "priority 103 from 118.27.152.58/32 table 102" \
+ipv4.routing-rules "priority 104 from 118.27.152.59/32 table 102"


Step 6: Apply Network

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

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

หากชื่อ Connection ไม่ใช่ "Wired connection 1" ให้เปลี่ยนเป็นชื่อ Connection จริงของเครื่องท่าน


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

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

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

ผลลัพธ์ควรแสดงเป็น IP เสริมดังนี้

118.27.152.57


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

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

ip a show eth1
ip route
ip rule show
ip route show table 102
หลังตั้งค่าเรียบร้อย

• Primary Interface จะยังคงเป็น Default Route หลักของระบบ

• Additional IP Address จะใช้งานผ่าน Gateway ของตนเอง

• หากมีหลาย Additional IP Address ที่ใช้ Gateway เดียวกัน สามารถใช้ Routing Table เดียวกันได้ โดยเพิ่ม Routing Rule แยกตามแต่ละ Source IP และกำหนด Priority ไม่ให้ซ้ำกัน


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

เยี่ยมเลย!

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

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

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

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

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

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

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