Vì các tuyến này nằm trên các mạng con khác nhau, nên có nhiều liên quan ở đây hơn là chỉ số liệu. Ví dụ, nếu lưu lượng truy cập ban đầu nằm trên mạng con 192.168.1.1 và có một tuyến không mặc định phù hợp trong bảng định tuyến của bạn, thì tuyến đó sẽ khớp với thông qua tiền tố dài nhất trước khi số liệu được xem xét.
Giả sử một tuyến đường không mặc định không khớp, thì nhân không có số liệu nên được hiểu là hạt nhân có số liệu bằng 0 và do đó tuyến có mức độ ưu tiên cao nhất. Mặc dù đó là một chế độ xem đơn giản vì một số trình nền định tuyến sau này sẽ dịch số liệu mặc định đó thành một giá trị khác như 1024. Tôi hy vọng đây là những gì đang xảy ra với bạn và bản phân phối không tên của bạn.
Nếu ip route
hiển thị không có số liệu nào cả, bạn có thể xác nhận rằng đó thực sự là 0 bằng cách sử dụng route -n
lệnh cũ hơn từ gói công cụ mạng hoặc cat /proc/net/route
. Tuy nhiên, đầu ra này không nhất thiết phải khớp với những gì daemon định tuyến sẽ sử dụng trong nội bộ khi nó gặp giá trị 0.
Hơn nữa, làm thế nào bạn tạo ra các vấn đề tuyến đường quá. ip route
sử dụng API netlink, trong khi route
sử dụng ioctl. Mã cho cách số liệu mặc định được tạo giữa hai cách tiếp cận dẫn đến các giá trị số liệu khác nhau. Ví dụ: tạo tuyến mặc định IPv6 qua ip route
sẽ dẫn đến giá trị số liệu là 1024 trên RHEL 7, trong khi tạo tuyến tương tự thông qua route
sẽ dẫn đến số liệu là 1.
Từ RedHat :
- nếu không có gì được truyền cho lệnh tuyến đường như số liệu tuyến đường, giá trị 1 được sử dụng bởi chính lệnh đó.
- Nếu không có gì được truyền cho lệnh ip dưới dạng chỉ số tuyến, thuộc tính hoàn toàn không được tạo và kernel hiểu nó là 0, sau này được dịch 1024 thành mặc định.