Máy Linux đa năng có thể triển khai Mô hình ES mạnh thực sự không?
Trường hợp sử dụng cụ thể
Tôi có một hệ thống với năm giao diện khác nhau, mỗi giao diện được kết nối với cùng một mạng con, do đó cùng một cổng vào Internet.
- Tôi muốn lắng nghe trên từng giao diện riêng biệt trên cùng một cổng và đảm bảo rằng các gói luôn đi ra cùng giao diện mà chúng đi vào và đảm bảo rằng các gói cố gắng đi vào giao diện "sai" sẽ bị loại bỏ.
- Tôi muốn có thể liên kết với từng giao diện và thực hiện các kết nối đi đến các điểm đến Internet luôn bắt nguồn từ cùng một IP nguồn mà tôi ràng buộc. Ví dụ,
curl - giao diện giao diện_ip http://ipecho.net/plain
phải luôn hiển thị cùng một địa chỉ IP mà tôi ràng buộc--interface
. - Các tuyến tĩnh có thể có vấn đề do sử dụng DHCP trên một trong các giao diện này.
RFC 1122
Từ RFC 1122 - Yêu cầu đối với máy chủ Internet - Các lớp truyền thông, Phần 3.3.4.2 - Yêu cầu nhiều lần :
Những người triển khai máy chủ Internet đã sử dụng hai mô hình khái niệm khác nhau cho nhiều giai đoạn, được tóm tắt ngắn gọn trong cuộc thảo luận sau đây. Tài liệu này không ủng hộ mô hình nào được ưa thích; mỗi nơi dường như có một nơi. Sự gần gũi này được phản ánh trong các vấn đề (A) và (B) là tùy chọn.
Mô hình ES mạnh
Mô hình Strong ES (End System, tức là máy chủ) nhấn mạnh sự khác biệt của máy chủ / cổng (ES / IS) và do đó sẽ thay thế PHẢI cho CÓ THỂ trong các vấn đề (A) và (B) ở trên. Nó có xu hướng mô hình hóa một máy chủ nhiều khối như một tập hợp các máy chủ logic trong cùng một máy chủ vật lý.
Đối với (A), những người đề xuất mô hình Strong ES lưu ý rằng các cơ chế định tuyến Internet tự động không thể định tuyến một datagram tới giao diện vật lý không tương ứng với địa chỉ đích.
Trong mô hình Strong ES, tính toán tuyến đường cho một datagram đi là ánh xạ:route(src IP addr, dest IP addr, TOS) -> gateway
Ở đây, địa chỉ nguồn được bao gồm dưới dạng tham số để chọn một cổng có thể truy cập trực tiếp trên giao diện vật lý tương ứng. Lưu ý rằng mô hình này yêu cầu một cách hợp lý rằng nhìn chung có ít nhất một cổng mặc định và tốt nhất là nhiều mặc định cho mỗi địa chỉ nguồn IP.
Mô hình ES yếu
Quan điểm này nhấn mạnh đến sự khác biệt của ES / IS và do đó sẽ thay thế KHÔNG PHẢI cho CÓ THỂ trong các vấn đề (A) và (B). Mô hình này có thể là mô hình tự nhiên hơn đối với các máy chủ có giao thức định tuyến cổng kết nối và cần thiết cho các máy chủ có chức năng cổng nhúng.
Mô hình ES yếu có thể khiến cơ chế Redirect không thành công. Nếu một datagram được gửi ra một giao diện vật lý không tương ứng với địa chỉ đích, cổng đầu tiên sẽ không nhận ra khi nào nó cần gửi Redirect. Mặt khác, nếu máy chủ có chức năng cổng nhúng, thì nó có thông tin định tuyến mà không cần nghe Redirects.
Trong mô hình Weak ES, tính toán tuyến đường cho một datagram đi là ánh xạ:route(dest IP addr, TOS) -> gateway, interface
Linux là một mô hình ES yếu theo mặc định, trong khi FreeBSD và các loại Unix khác hoạt động như các hệ thống ES mạnh. Có cách nào để làm cho nó hoạt động giống như một hệ thống ES mạnh không?
Có gì sysctl
hay thời gian biên dịch cấu hình sẽ cần phải được thiết lập để làm cho nó hoạt động giống như một ES mạnh theo mặc định, mà không cần thêm cụ thể định tuyến quy tắc cho bất kỳ giao diện mới bạn thêm? Tôi biết chúng ta có thể thực hiện lọc tuyến đường nghiêm ngặt thông qua net.ipv4.conf.default.rp_filter = 1
, nhưng dường như còn nhiều điều hơn thế. Làm cách nào tôi có thể thực hiện Định tuyến dựa trên nguồn theo mặc định?