ในบทความนี้ เราจะแสดงวิธีกำหนดค่าการกำหนดเส้นทางและจัดการเส้นทางเครือข่ายบน Linux โดยใช้ ip
คำสั่งบน Linux CentOS (วิธีดูตารางเส้นทาง เพิ่ม/ลบเส้นทางคงที่ ฯลฯ) บทความนี้ใช้ได้กับ distro Linux อื่น ๆ ที่มี ip
เครื่องมือ (Red Hat, Fedora เป็นต้น)
ในการจัดการเส้นทางใน Linux ขอแนะนำให้ใช้
ip
คำสั่งแทน route
. route
คำสั่งไม่อนุญาตให้กำหนดค่าคุณลักษณะการกำหนดเส้นทางขั้นสูง (เช่นนโยบายการกำหนดเส้นทาง) และไม่สามารถแสดงการตั้งค่าการกำหนดเส้นทางพิเศษได้หากตั้งค่าโดยใช้ ip
เครื่องมือ.
จะดูตารางการกำหนดเส้นทางเครือข่ายใน Linux ได้อย่างไร
หากต้องการแสดงตารางเส้นทางปัจจุบันใน Linux ให้เรียกใช้คำสั่งนี้:
# ip route
default via 192.168.1.1 dev enp0s3
เป็นเกตเวย์เริ่มต้นที่ใช้อินเทอร์เฟซ enp0s3 ในตัวอย่างนี้ หากที่อยู่ IP เป้าหมายไม่มีเส้นทางคงที่ในตารางเส้นทาง แพ็กเก็ตจะถูกส่งผ่านเกตเวย์นั้น (เส้นทางเริ่มต้น)192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201
เป็นเส้นทางคงที่สำหรับเครือข่าย 192.168.1.0/24 ผ่านอินเทอร์เฟซ 192.168.1.201;proto kernel
เป็นเส้นทางที่สร้างโดยเคอร์เนล (proto static
– เส้นทางที่เพิ่มโดยผู้ดูแลระบบ);metric
คือลำดับความสำคัญของเส้นทาง (ค่าเมตริกยิ่งน้อย ลำดับความสำคัญยิ่งสูง) หากมีสองเส้นทางที่มีการวัดเดียวกัน (อย่าทำเลย!) เคอร์เนลจะเลือกเส้นทางแบบสุ่ม
หากต้องการค้นหาว่าอินเทอร์เฟซ (เกตเวย์) ใดที่ใช้ในการกำหนดเส้นทางการรับส่งข้อมูลไปยังที่อยู่ IP เฉพาะ ให้ใช้คำสั่งต่อไปนี้:# ip route get 192.168.2.45
192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201คุณสามารถใช้เซิร์ฟเวอร์ Linux ที่มีอินเทอร์เฟซตั้งแต่สองอินเทอร์เฟซขึ้นไปเป็นเราเตอร์หรืออินเทอร์เน็ตเกตเวย์ หากต้องการเปิดใช้งานการกำหนดเส้นทางแพ็กเก็ตระหว่างหลายอินเทอร์เฟซ ให้เปิดใช้งาน
net.ipv4.ip_forward = 1
พารามิเตอร์เคอร์เนล การเพิ่มและการลบ Static Routes ใน Linux
หากต้องการเพิ่มเส้นทางใหม่ให้กับเครือข่าย IP เฉพาะในตารางเส้นทางของ Linux ให้เรียกใช้คำสั่งนี้:
# ip route add 192.168.0.0/24 via 192.168.1.1
ดังนั้น เราจะเพิ่มเส้นทางสำหรับเครือข่าย IP 192.168.0.0/24 ผ่านเกตเวย์ 192.168.1.1
รูปแบบของคำสั่ง ip route นั้นเหมือนกับไวยากรณ์ของ Cisco IOS คุณยังสามารถใช้ตัวย่อได้ที่นี่ เช่น คุณสามารถใช้ ip pro ad
แทน ip route add
.
คุณยังสามารถเพิ่มเส้นทางคงที่แยกต่างหากสำหรับที่อยู่ IP เดียว (โฮสต์):
# ip route add 192.168.1.0 via 192.168.1.1
คุณสามารถสร้าง เส้นทางว่าง คล้ายกับ Cisco (ip route null0
). แพ็กเก็ตที่ส่งไปยังเครือข่ายนี้หลุดเนื่องจาก ไม่มีเส้นทางไปยังโฮสต์ :
# ip route add blackhole 10.1.20.0/24
เส้นทางที่เพิ่มโดยใช้วิธีนี้เป็นแบบชั่วคราวและจะทำงานจนกว่าคุณจะเริ่มบริการเครือข่ายหรือเซิร์ฟเวอร์ใหม่
หากต้องการลบเส้นทางคงที่ที่สร้างขึ้นด้วยตนเอง ให้เรียกใช้คำสั่งต่อไปนี้:
# ip route del 192.168.0.0/24
อย่างที่คุณเห็น เส้นทางถูกลบออกจากตารางการเราต์ของ Linux
ในการเพิ่มเส้นทางถาวร คุณต้องสร้างไฟล์สำหรับเส้นทาง หรือเพิ่มกฎใน rc.local ไฟล์ (เรียกใช้เมื่อเริ่มต้นโฮสต์)
หากต้องการเพิ่มเส้นทางคงที่ถาวร คุณต้องมีชื่อของอินเทอร์เฟซเครือข่ายเพื่อใช้สำหรับการกำหนดเส้นทาง คุณสามารถรับชื่ออินเทอร์เฟซเครือข่ายได้โดยใช้คำสั่งนี้:
# ip a
ในกรณีของฉัน มันคือ enp0s3 .
นี่คือบทความโดยละเอียดเกี่ยวกับการกำหนดค่าอินเทอร์เฟซเครือข่ายบน RHEL/CentOS Linux
จากนั้นเปิดไฟล์ต่อไปนี้:
# nano /etc/sysconfig/network-scripts/route-enp0s3
และเพิ่มบรรทัดที่มีเส้นทางที่นี่:
192.168.0.0/24 via 192.168.1.1
หลังจากที่คุณเพิ่มเส้นทางไปยังไฟล์แล้ว ให้รีสตาร์ท เครือข่าย บริการ:
# service network restart
หลังจากรีสตาร์ทเครือข่าย เส้นทางคงที่ปรากฏในตารางเส้นทาง
คุณยังสามารถใช้คำสั่งเพื่อเพิ่มเส้นทางใหม่ให้กับ rc.local เพื่อเพิ่มเส้นทางคงที่โดยอัตโนมัติเมื่อเซิร์ฟเวอร์บูต เปิดไฟล์:
# nano /etc/rc.local
และป้อนคำสั่งที่เพิ่มเส้นทางคงที่:
# ip route add 192.168.0.0/24 via 192.168.1.1
จากนั้นหากเซิร์ฟเวอร์ของคุณรีสตาร์ท ระบบจะเพิ่มเส้นทางโดยอัตโนมัติระหว่างการบู๊ตระบบ
การแก้ไขรายการเส้นทางที่มีอยู่ใน Linux
หากต้องการเปลี่ยนเส้นทางที่มีอยู่ คุณสามารถใช้ การเปลี่ยนเส้นทาง ip คำสั่ง:
# ip route replace 192.168.0.0/24 via 192.168.1.1
หากต้องการรีเซ็ตเส้นทางชั่วคราวทั้งหมดในตารางเส้นทาง ให้เริ่มบริการเครือข่ายใหม่:
# service network restart
Restarting network (via systemctl): [ OK ]
# ip route
default via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.0.0/24 via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100
จะเปลี่ยนเส้นทางเริ่มต้นหรือเกตเวย์เริ่มต้นบน Linux ได้อย่างไร
คุณสามารถลบเส้นทางเริ่มต้นได้โดยใช้ ip route del คำสั่ง:
# ip route del default via 192.168.1.1 dev enp0s3
ในการตั้งค่าเส้นทางเริ่มต้นใหม่ คำสั่งต่อไปนี้จะใช้ใน CentOS/RHEL Linux:
# ip route add default via 192.168.1.2
(เส้นทางผ่านที่อยู่ IP เกตเวย์)
# ip route add default via enp0s3
(เส้นทางที่ใช้ชื่ออุปกรณ์)
ในการเปลี่ยนการตั้งค่าเส้นทางเริ่มต้น จะใช้คำสั่งนี้:
# ip route replace default via 192.168.1.2