Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

ในบทความนี้ เราจะแสดงวิธีกำหนดค่าการกำหนดเส้นทางและจัดการเส้นทางเครือข่ายบน Linux โดยใช้ ip คำสั่งบน Linux CentOS (วิธีดูตารางเส้นทาง เพิ่ม/ลบเส้นทางคงที่ ฯลฯ) บทความนี้ใช้ได้กับ distro Linux อื่น ๆ ที่มี ip เครื่องมือ (Red Hat, Fedora เป็นต้น)

ในการจัดการเส้นทางใน Linux ขอแนะนำให้ใช้ ip คำสั่งแทน route . route คำสั่งไม่อนุญาตให้กำหนดค่าคุณลักษณะการกำหนดเส้นทางขั้นสูง (เช่นนโยบายการกำหนดเส้นทาง) และไม่สามารถแสดงการตั้งค่าการกำหนดเส้นทางพิเศษได้หากตั้งค่าโดยใช้ ip เครื่องมือ.

จะดูตารางการกำหนดเส้นทางเครือข่ายใน Linux ได้อย่างไร

หากต้องการแสดงตารางเส้นทางปัจจุบันใน Linux ให้เรียกใช้คำสั่งนี้:

# ip route

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

  • 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 .

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

คุณยังสามารถเพิ่มเส้นทางคงที่แยกต่างหากสำหรับที่อยู่ 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 (RHEL/CentOS)

อย่างที่คุณเห็น เส้นทางถูกลบออกจากตารางการเราต์ของ Linux

ในการเพิ่มเส้นทางถาวร คุณต้องสร้างไฟล์สำหรับเส้นทาง หรือเพิ่มกฎใน rc.local ไฟล์ (เรียกใช้เมื่อเริ่มต้นโฮสต์)

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

# ip a

ในกรณีของฉัน มันคือ enp0s3 .

นี่คือบทความโดยละเอียดเกี่ยวกับการกำหนดค่าอินเทอร์เฟซเครือข่ายบน RHEL/CentOS Linux

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

จากนั้นเปิดไฟล์ต่อไปนี้:

# nano /etc/sysconfig/network-scripts/route-enp0s3

และเพิ่มบรรทัดที่มีเส้นทางที่นี่:

192.168.0.0/24 via 192.168.1.1

หลังจากที่คุณเพิ่มเส้นทางไปยังไฟล์แล้ว ให้รีสตาร์ท เครือข่าย บริการ:

# service network restart

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

หลังจากรีสตาร์ทเครือข่าย เส้นทางคงที่ปรากฏในตารางเส้นทาง

คุณยังสามารถใช้คำสั่งเพื่อเพิ่มเส้นทางใหม่ให้กับ rc.local เพื่อเพิ่มเส้นทางคงที่โดยอัตโนมัติเมื่อเซิร์ฟเวอร์บูต เปิดไฟล์:

# nano /etc/rc.local

และป้อนคำสั่งที่เพิ่มเส้นทางคงที่:

# ip route add 192.168.0.0/24 via 192.168.1.1

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

จากนั้นหากเซิร์ฟเวอร์ของคุณรีสตาร์ท ระบบจะเพิ่มเส้นทางโดยอัตโนมัติระหว่างการบู๊ตระบบ

การแก้ไขรายการเส้นทางที่มีอยู่ใน Linux

หากต้องการเปลี่ยนเส้นทางที่มีอยู่ คุณสามารถใช้ การเปลี่ยนเส้นทาง ip คำสั่ง:

# ip route replace 192.168.0.0/24 via 192.168.1.1

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)

หากต้องการรีเซ็ตเส้นทางชั่วคราวทั้งหมดในตารางเส้นทาง ให้เริ่มบริการเครือข่ายใหม่:

# 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

การกำหนดค่าการกำหนดเส้นทางบน Linux (RHEL/CentOS)