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


11

คำสั่งเพื่อแก้ไขตัวชี้วัดของรายการเส้นทางที่มีอยู่ใน linux คืออะไร? ฉันสามารถเปลี่ยนเกตเวย์ของรายการที่มีอยู่โดยใช้คำสั่ง "ip route change" ดังด้านล่าง แต่ไม่สามารถเปลี่ยนการวัดได้ มีคำสั่งอื่นอีกไหมสำหรับเรื่องนี้?

route –n
40.2.2.0        30.1.3.2        255.255.255.0   eth2

ip route change 40.2.2.0/24 via 30.1.2.2

route -n
40.2.2.0        30.1.2.2        255.255.255.0   eth1

นี่คือหน้าเว็บไซต์ที่มีคำสั่งให้แก้ไขที่อยู่ IP โดยใช้คำสั่ง ifconfig ฉันไม่ทราบคำสั่งทั้งหมดที่อยู่ด้านบนของหัวของฉัน แต่หวังว่าหน้านี้จะช่วยคุณ tecmint.com/ifconfig-command-examples
Nicholas Awesomepants

1
ลบเส้นทางแล้วเพิ่มอีกครั้งจนกว่าพวกเขาจะได้รับการแก้ไขตั้งแต่lkml.iu.edu/hypermail/linux/net/0504.3/0017.html
thrig

คำตอบ:


7

ตามที่ระบุไว้ในความคิดเห็นคำถามการอ้างอิงข้อความในรายชื่อผู้รับจดหมาย linux-net: "การวัด / ลำดับความสำคัญไม่สามารถเปลี่ยนแปลงได้ [... ] นี่คือข้อ จำกัด ของโปรโตคอลปัจจุบัน [... ]"
วิธีเดียวคือการลบเส้นทางและเพิ่มเส้นทางใหม่

สิ่งนี้ทำได้โดยใช้routeคำสั่งตัวอย่าง:

sudo route add -net default gw 10.10.0.1 netmask 0.0.0.0 dev wlan0 metric 1

Debian manpage สำหรับคำสั่งเส้นทาง


4
คำถามไม่ใช่วิธีการเพิ่มเส้นทางด้วยการวัดที่กำหนด OP ต้องการเปลี่ยนการวัดในเส้นทางที่มีอยู่ (โดยไม่ต้องลบและเพิ่มเส้นทางใหม่)
András Korn

4
เห็นได้ชัดว่าคุณยังไม่ได้อ่านความคิดเห็นในคำถามซึ่งลิงก์ไปยังอีเมลแสดงว่าตัวชี้วัดไม่สามารถเปลี่ยนแปลงได้: The metric/priority cannot be changed [...] This is a limitation of the current protocol[...]. วิธีเดียวคือการลบเส้นทางและเพิ่มเส้นทางใหม่
มกราคม

7
ฉันรู้ว่าเมตริกไม่สามารถเปลี่ยนแปลงได้ คำตอบของคุณยังไม่ตอบคำถาม - อาจจะชี้ให้เห็นในคำตอบว่าการวัดสามารถเปลี่ยนแปลงได้โดยการลบและเพิ่มเส้นทางใหม่เท่านั้น
András Korn

17

(การรวมความคิดเห็นต่าง ๆ ไว้ในคำตอบ)

ปัจจุบันไม่สามารถแก้ไขตัวชี้วัดเส้นทางได้ ในฐานะข้อความในปี 2005 เกี่ยวกับ LKML :

[... ] ตัวชี้วัด / ลำดับความสำคัญไม่สามารถเปลี่ยนแปลงได้เพราะเราไม่มีเขตข้อมูลแยกสำหรับเขตข้อมูลที่จะจับคู่และค่าใหม่ดังนั้นหากคุณระบุตัวชี้วัดรายการก็จะไม่พบและคำขอล้มเหลวด้วย ENOENT เพราะ NLM_F_CREATE ไม่ได้ระบุ นี่เป็นข้อ จำกัด ของโพรโทคอลปัจจุบันและอาจเป็นความคิดที่ดีที่จะเปลี่ยนแปลงสิ่งนี้อย่างไรก็ตามมันไม่ใช่เรื่องไม่สำคัญ [... ]

นี้ดูเหมือนว่าจะใช้ทั้งสองip route changeและip route replace- ผลในอดีตข้อผิดพลาดสำหรับฉันในขณะที่หลังสร้างเส้นทางเพิ่มเติมตามที่โฆษณา (รัฐหน้าคนที่replaceจะเข้ามาแทนที่หรือสร้างเส้นทาง) สิ่งนี้สอดคล้องกับเคอร์เนลที่ตอบสนองด้วย ENOENT และip route replaceติดตามการร้องขอการสร้างเส้นทาง


ดังนั้นทางออกคือการลบเส้นทางที่มีอยู่และเพิ่มเส้นทางใหม่ เช่น

ip route del 40.2.2.0/24 via 30.1.2.2
ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234

ใช่ถูกกัดโดยปัญหานี้ในช่วงไม่กี่เดือนที่ผ่านมา ... ขณะที่ Brian Cantrill พูดเกี่ยวกับ Linux ต่อไป: มันเป็นสิ่งที่พัฒนาด้วยอาการ NIH (ไม่ได้คิดค้นที่นี่) ...
Hvisage

@ ระดับความสูงของคุณคุณสามารถอธิบายอย่างละเอียด? มีเครื่องมือใดบ้างที่อนุญาตให้เปลี่ยนเมตริกโดยไม่ต้องลบออก
Braiam

@Braiam นั่นเป็นค่าลบเช่นเดียวกับใน: ไม่มีเครื่องมือดังกล่าวอยู่ ตามคำตอบ หากคุณอ้างถึงคำพูดของไบรอัน Cantrill ของฉันมันเป็นที่ไหนสักแห่งที่ฉันเชื่อในyoutube.com/watch?v=wTVfAMRj-7E
Hvisage

2

ifmetric จะช่วยให้คุณเปลี่ยนการวัดเส้นทางได้ทันทีเนื่องจากอินเทอร์เฟซเส้นทางที่คุณต้องการเปลี่ยนกำลังดำเนินการ

การใช้

ifmetric <iface> [<metric>]

ตัวอย่างเช่นใช้ifmetric tun0 12ในการเปลี่ยนแปลงตัวชี้วัดถึง 12 tun0สำหรับทุกเส้นทางจะผ่าน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.