Lựa chọn định tuyến: độ đặc hiệu so với số liệu


17

Tôi hiểu rằng Linux chọn tuyến đường cụ thể nhất đến đích khi thực hiện lựa chọn định tuyến . Nhưng những gì về số liệu của một tuyến đường? Nó có ưu tiên cao hơn độ đặc hiệu của tuyến đường không?

Tham chiếu đến các chi tiết của thuật toán lựa chọn định tuyến được sử dụng bởi Linux cũng sẽ được đánh giá cao.

Câu trả lời:


26

Số liệu tuyến đường là để đặt ưu tiên giữa các tuyến có độ đặc hiệu như nhau. Điều đó đúng với định tuyến nói chung (ví dụ: Cisco, Windows, v.v.). Vì vậy, mô hình hoạt động như sau:

  1. Tìm tuyến đường cụ thể nhất (còn gọi là trận đấu tiền tố dài nhất * )
  2. Nếu có nhiều tuyến có cùng độ đặc hiệu, hãy chọn tuyến có khoảng cách quản trị thấp nhất (Điều này phân biệt giữa các tuyến như tuyến được gắn trực tiếp, tuyến tĩnh và giao thức định tuyến khác nhau).
  3. Trong giao thức định tuyến và tuyến đường cụ thể đó (nếu độ đặc hiệu của tuyến đường và khoảng cách quản trị là như nhau), hãy chọn tuyến đường có số liệu thấp nhất

Lưu ý rằng có những thứ khác có thể xảy ra với định tuyến dựa trên chính sách như vậy cho phép bạn thực hiện những việc như định tuyến dựa trên địa chỉ IP nguồn. Nhưng tính đặc hiệu của tuyến đường, khoảng cách hành chính, và sau đó là số liệu là những gì tôi sẽ coi là ba điều chính.

* Nó được gọi là kết hợp tiền tố dài nhất vì mạng con trong nhị phân (ví dụ / 24) trông như thế 11111111.11111111.11111111.00000000. Vì vậy, một bộ định tuyến chỉ có thể quét tiền tố cho nhị phân 1 và dừng lại khi nó chạm 0, và sau đó nó đã khớp với tiền tố.


1
Điều đó không hoàn toàn đúng trên Linux, nơi không có sự phân biệt giữa số liệu và khoảng cách quản trị.
JCH

1
@jch Có quagga và co. bắt chước AD bằng cách đặt số liệu phù hợp? (Không phải quan điểm của bạn không quan trọng, chỉ gây tò mò)
Kyle Brandt

1
Không, Quagga thực hiện AD bên trong zebradaemon và chỉ gửi các tuyến đã chọn đến kernel - vì vậy kernel không bao giờ cần phải xử lý AD. Tôi cần kiểm tra, nhưng tôi nghĩ rằng Quagga đặt số liệu nhân thành một giá trị không đổi.
JCH

Chỉ muốn đề cập rằng điều này không đúng trong các cầu nối ethernet, ví dụ hai tuyến giống nhau qua các thiết bị khác nhau có cùng số liệu vẫn dẫn đến lưu lượng truy cập bị sai lệch qua liên kết dài hơn và không chính xác.
Areeb Soo Yasir

9

Linux cung cấp một số công cụ để lựa chọn định tuyến linh hoạt.

Bảng định tuyến đơn

Trong trường hợp đơn giản nhất, chỉ có một bảng định tuyến kernel và không có tuyến nào có thuộc tính SRC. Bảng này chứa một số tuyến đường, được đặt ở đó theo cách thủ công ( ip route add), bằng daemon DHCP hoặc bằng cách định tuyến trình nền. Trong trường hợp này, kernel chọn:

  • tuyến đường cụ thể nhất;
  • nếu có nhiều tuyến cụ thể như nhau, thì tuyến có số liệu nhân nhỏ nhất.

Lưu ý rằng số liệu nhân (được hiển thị bởi ip route show) được chọn bởi trình nền định tuyến và không nhất thiết liên quan đến số liệu của bất kỳ giao thức định tuyến cụ thể nào. Ví dụ, Quagga sử dụng cùng một số liệu cho tất cả các tuyến đường mà nó cài đặt trong kernel, độc lập với số liệu của giao thức.

Các tuyến đường cụ thể

Linux cũng hỗ trợ các tuyến đường với thuộc tính SRC chỉ khớp các gói với một địa chỉ nguồn nhất định. SRC chỉ hoạt động cho IPv6 và đã bị lỗi cho đến gần đây (3.11, nếu bộ nhớ phục vụ); Tôi không khuyên bạn nên sử dụng nó trừ khi bạn biết bạn đang làm gì.

Nhiều bảng định tuyến

Nếu bạn cần linh hoạt hơn các quy định trên, bạn sẽ cần chơi với nhiều bảng định tuyến và viết quy tắc để chọn một bảng định tuyến cụ thể cho mỗi gói. Một kỹ thuật phổ biến là gửi đi địa chỉ nguồn để mô phỏng các tuyến đường cụ thể nguồn. Một kỹ thuật khác là chạy từng trình nền định tuyến trong bảng định tuyến riêng và mô phỏng "khoảng cách quản trị" của Cisco. Tất cả điều này được mô tả chi tiết trong Chương 4 của LARTC .


Đó không phải là những gì srcthuộc tính làm. Bạn sẽ muốn đọc man ip-routehoặc các tài liệu khác. Và nó hoạt động với IPv4. Tôi sử dụng nó để có được tất cả lưu lượng truy cập, bao gồm cả lưu lượng của bộ định tuyến thông qua một đường hầm IPSec nối mạng duy nhất.
Zan Lynx

1
Các RTA_SRCthuộc tính thực hiện chính xác những gì tôi đã nói; nó có thể được truy cập với fromtùy chọn của iplệnh. Các ipcủa lệnh srctùy chọn thiết lập RTA_PREFSRCthuộc tính, đó là những gì bạn mô tả.
JCH
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.