Làm cách nào để xóa tuyến đường khỏi bảng định tuyến Linux


42

Điều này hóa ra khó hơn tôi nghĩ. Các tuyến tôi muốn xóa là "!" các tuyến bị từ chối, nhưng tôi dường như không thể tạo ra lệnh "tuyến đường del" đúng để loại bỏ nó.

Đây là bảng định tuyến ...

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

Tôi có hai mục nhập cho 192.168.46.79 và 10.1.0.0. Chúng được tạo tự động bởi bộ định tuyến nhỏ dựa trên Linux mà tôi đang sử dụng. Tôi có thể ping các đường hầm IPSEC từ chính vỏ, nhưng lưu lượng truy cập từ mạng LAN đi theo tuyến thứ hai (tuyến bị từ chối "!" Hoặc "! H") vì những lý do đơn giản là tôi không hiểu.


Bạn có thể cụ thể hơn khi bạn nói lưu lượng truy cập theo 'tuyến đường thứ hai' không?
Zoredache

Lưu ý hai mục trong bảng cho 192.168.46.79? Ở vỏ bộ định tuyến, nếu tôi ping phía bên kia của đường hầm thì nó hoạt động. Từ phía mạng LAN, lưu lượng truy cập đến mục "thứ hai 192.168.46.79" và bị từ chối / giảm.

Tôi cũng không hiểu tại sao SG560 tạo ra hai (2) mục nhập bảng cho "đích" mặc định và đích IPSEC. Tôi bối rối.

Câu trả lời:


53

với route -nlệnh bạn sẽ nhận được

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

bạn sẽ nhận được tất cả các tham số tương ứng từ phía trên


1
Sau khi khởi động lại, nó lại đến. Làm thế nào tôi có thể xóa vĩnh viễn?
Shyamkkhadka

1
@shyamkkhadka nó phụ thuộc vào quá trình nó đã được tạo ra ... khuyên bạn nên đăng câu hỏi với trường hợp cụ thể của bạn để phân tích nó. Cung cấp chi tiết về tuyến đường bạn có và muốn xóa. Chủ yếu là máy chủ và máy khách dhcp sẽ tạo các tuyến
Philippe Gachoud

15

Các loại tuyến đường với !cờ là không thể truy cập hoặc cấm. route, là một tiện ích cổ từ các công cụ mạng, không phân biệt giữa hai công cụ này. Sử dụng iproute2.

Cách các công cụ mạng để xóa các tuyến này sẽ được sử dụng route deltrên nó. Tuy nhiên, các công cụ mạng không cung cấp cách nào để phân biệt giữa tuyến bị từ chối và tuyến khác (vì đối số dev là tùy chọn, mặc dù không chỉ định một thiết bị có khả năng loại bỏ tuyến không thể truy cập).

iproute2 cho phép bạn làm như thế này:

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

Nó có thể không thể truy cập được, nhưng cấm. Sử dụng ip routekhông có đối số để xác định đó.


8

Tôi nghĩ đó là cái này: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

Tôi không chắc chắn 100%. Nhưng, tôi nghĩ rằng bạn đã có một điều gì đó ngớ ngẩn đang diễn ra vì bạn có 2 tuyến đường mặc định.


2
+1: 2 tuyến mặc định luôn là dấu hiệu của một cái gì đó bị định cấu hình sai (trừ khi chúng thực sự trỏ đến các cổng khác nhau và có số liệu khác nhau).
wolfgangsz

-1

Vui lòng xem nếu có "tệp cấu hình thiết bị" trong /etc/network/interfaces.d/ -> Tôi đã có eht0 !! Thực sự, đó là eht0 và không eth0 ở đó!


Bạn có thể muốn mở rộng câu trả lời của mình phần nào, vì hiện tại không rõ ràng nó liên quan đến câu hỏi đang được hỏi như thế nào.
womble
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.