ฉันจะลบเส้นทางออกจากตารางการเราต์ Linux ได้อย่างไร


42

สิ่งนี้กลายเป็นหนักกว่าที่ฉันคิด เส้นทางที่ฉันต้องการลบคือ "!" เส้นทางที่ถูกปฏิเสธ แต่ฉันไม่สามารถกำหนดคำสั่ง "route del" ที่ถูกต้องเพื่อดึงออกมาได้

นี่คือตารางเส้นทาง

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
67.40.227.206   *               255.255.255.255 UH    0      0        0 ppp0
192.168.46.79   *               255.255.255.255 UH    0      0        0 ipsec0
192.168.46.79   -               255.255.255.255 !H    2      -        0 -
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
10.1.0.0        *               255.255.0.0     U     0      0        0 ipsec0
10.1.0.0        -               255.255.0.0     !     2      -        0 -
default         *               0.0.0.0         U     3      0        0 ppp0
default         *               0.0.0.0         U     4      0        0 ppp0

ฉันมีสองรายการสำหรับ 192.168.46.79 และ 10.1.0.0 สิ่งเหล่านี้สร้างขึ้นโดยอัตโนมัติจากเราเตอร์ตัวเล็กที่ใช้ Linux ฉันสามารถปิง IPSec tunnels จาก shell เองได้ แต่ทราฟฟิกจาก LAN ใช้เส้นทางที่สอง (เส้นทาง "!" หรือ "! H" ที่ถูกปฏิเสธ) ด้วยเหตุผลที่ฉันไม่เข้าใจ


คุณจะเจาะจงมากขึ้นเมื่อคุณบอกว่าการจราจรใช้ 'เส้นทางที่สอง' หรือไม่?
Zoredache

สังเกตเห็นรายการตารางสองรายการสำหรับ 192.168.46.79 หรือไม่ ที่เปลือกเราเตอร์ถ้าฉัน ping ด้านข้างของอุโมงค์มันทำงาน จากด้าน LAN การรับส่งข้อมูลไปที่รายการ "ที่สอง 192.168.46.79" และถูกปฏิเสธ / ลดลง

ฉันยังไม่เข้าใจว่าทำไม SG560 จึงสร้างรายการตารางสอง (2) รายการสำหรับ "ค่าเริ่มต้น" และปลายทางของ IPSEC ฉันงุนงง

คำตอบ:


53

ด้วยroute -nคำสั่งที่คุณจะได้รับ

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
0.0.0.0         160.98.123.1    0.0.0.0         UG    600    0        0 wlan0

sudo route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0

คุณจะได้รับพารามิเตอร์ทั้งหมดตามลำดับจากด้านบน


1
หลังจากรีบูตเครื่องมันจะมาอีกครั้ง ฉันจะลบอย่างถาวรได้อย่างไร
Shyamkkhadka

1
@shyamkkhadka มันขึ้นอยู่กับกระบวนการที่สร้างขึ้น ... แนะนำให้คุณโพสต์คำถามกับกรณีเฉพาะของคุณเพื่อวิเคราะห์ ให้รายละเอียดเกี่ยวกับเส้นทางที่คุณมีและต้องการลบ เซิร์ฟเวอร์ DHCP ส่วนใหญ่และลูกค้าจะสร้างเส้นทาง
Philippe Gachoud

15

ประเภทของเส้นทางที่มี!ธงไม่สามารถเข้าถึงได้หรือห้ามใช้ routeซึ่งเป็นยูทิลิตี้โบราณจากเครื่องมือเน็ตไม่ได้แยกความแตกต่างระหว่างทั้งสอง ใช้ iproute2

วิธีเครื่องมือสุทธิในการลบเส้นทางเหล่านี้จะใช้route delกับมัน อย่างไรก็ตาม net-tools ไม่สามารถแยกความแตกต่างระหว่างเส้นทางที่ถูกปฏิเสธและอีกอันได้ (เนื่องจากอาร์กิวเมนต์ dev เป็นทางเลือกแม้ว่าจะไม่ได้ระบุอุปกรณ์ที่มีแนวโน้มว่าจะลบเส้นทางที่ไม่สามารถเข้าถึงได้)

iproute2 ช่วยให้คุณทำเช่นนี้:

ip route del unreachable 10.1.0.0/24
ip route del unreachable 192.168.46.79/32

อาจไม่สามารถเข้าถึงได้ แต่ห้ามใช้ ใช้ip routeโดยไม่มีข้อโต้แย้งเพื่อพิจารณาว่า


8

ฉันคิดว่ามันคือ: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

ฉันไม่แน่ใจ 100% แต่ฉันคิดว่าคุณคงมีเรื่องอื่นเกิดขึ้นเนื่องจากคุณมีเส้นทางเริ่มต้น 2 เส้นทาง


2
+1: 2 เส้นทางเริ่มต้นมักเป็นสัญญาณของสิ่งที่กำหนดค่าผิดพลาด (เว้นแต่ว่าพวกเขาจะชี้ไปที่เกตเวย์ที่แตกต่างกันและมีเมตริกที่แตกต่างกัน)
wolfgangsz

-1

โปรดดูว่ามี "ไฟล์กำหนดค่าอุปกรณ์" ใต้ /etc/network/interfaces.d/ -> ฉันมี eht0 !! จริงๆแล้วมันคือ eht0 และไม่ใช่ eth0 ที่นั่น


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