Tôi có Máy chủ Ubuntu 16.04 hoạt động như một bộ định tuyến với nhiều giao diện (Vlan). Theo mặc định, rp_filter
(lọc đường dẫn ngược) được bật cho tất cả các giao diện. Tôi muốn giữ nó như vậy, nhưng tạo một ngoại lệ cho chính xác một giao diện. (Các gói từ giao diện này phải được phép có địa chỉ IP nguồn không tương ứng với bất kỳ địa chỉ đích định tuyến nào của giao diện này.)
Giả sử giao diện này có tên ens20.4
, thiết bị vlan-raw-của nó ens20
và giao diện đích (để kiểm tra luồng gói) được đặt tên ens20.2
(mặc dù nó nên hoạt động cho bất kỳ giao diện đích nào).
Tôi đã cố gắng chỉ thiết lập rp_filter
tài sản ens20.4
, nhưng không thành công:
echo 0 > /proc/sys/net/ipv4/conf/ens20.4/rp_filter
Vì vậy, để thử nghiệm, tôi cũng đã vô hiệu hóa rp_filter
cho thiết bị vlan-raw-interface và giao diện đích thử nghiệm:
echo 0 > /proc/sys/net/ipv4/conf/ens20/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/ens20.2/rp_filter
Vẫn không thành công, các gói có địa chỉ IP nguồn "giả mạo" vẫn bị loại bỏ. Chỉ khi tôi vô hiệu hóa rp_filter
cho tất cả các giao diện, các gói mới vượt qua:
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Tuy nhiên, tôi vẫn muốn giữ bộ lọc đường dẫn ngược cho tất cả các giao diện khác - tôi còn thiếu gì?