ฉันจะลบเส้นทางออกจากตารางการเราต์ 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.