Linux Kernel trước 3.6 đã sử dụng bộ nhớ đệm định tuyến để thực hiện định tuyến đa luồng IPv4, điều đó có nghĩa là định tuyến giữa hai dòng / ISP riêng biệt khá dễ dàng. Từ 3.6, thuật toán thay đổi thành mỗi gói, nghĩa là một số thủ thuật đánh dấu bảng / quy tắc / iptables được yêu cầu để đạt được hai dòng / ISP.
Tuy nhiên, nếu bạn có hai dòng với cùng một ISP, người có thể định tuyến một IP xuống cả hai dòng trên cơ sở mỗi gói theo kiểu cân bằng / chuyển đổi dự phòng, thì từ 3.6 bạn có thể dễ dàng đạt được liên kết dòng (ở cấp IP) vì định tuyến trên mỗi gói theo cả hai hướng.
Từ 4.4, hạt nhân lại thay đổi thành cân bằng tải dựa trên dòng chảy dựa trên hàm băm qua địa chỉ nguồn và đích.
Tôi hiện đang chạy Kernel 4.4.36 và đang sử dụng định tuyến đa đường qua các kết nối PPPoE. Lưu lượng truy cập hạ nguồn của tôi từ ISP được định tuyến qua hai dòng riêng biệt trên cơ sở mỗi gói (một IP được chuyển xuống cả hai dòng). Điều này mang lại cho tôi tốc độ tải xuống nhanh hơn tốc độ của một dòng riêng lẻ. Gần như tốc độ của cả hai dòng cộng lại. Nó hoạt động thực sự tốt, video Skype, VoIP (UDP), YouTube, vv tất cả đều hoạt động tuyệt vời.
Do có trải nghiệm xuôi dòng tốt như vậy, tôi muốn thử ngược dòng nhưng lưu lượng ngược dòng của tôi được định tuyến theo thuật toán dựa trên luồng mới hơn trên cả hai thiết bị ppp (có cùng địa chỉ IP). Điều này có nghĩa là tôi không thể đạt được tốc độ tải lên nhanh hơn tốc độ của một dòng.
Có cách nào để cấu hình Kernel hiện tại để sử dụng thuật toán cho mỗi gói không? Hoặc một số phương pháp khác để đạt được định tuyến đa đường cho mỗi gói? Tôi có cần hoàn nguyên về một kernel cũ hơn (mà tôi không muốn làm vì nhiều lý do khác)?
ISP của tôi không hỗ trợ ppp đa liên kết.
Trong trường hợp có liên quan, tôi hiện đang chạy Arch Linux ARMv7 trên Raspberry Pi 3.