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 .