Điểm:1

NFS khăng khăng gửi các gói qua MTU, nftables có thể là giải pháp

lá cờ id

Tôi có một giá đỡ NFS trên đường hầm Strongswan IPSec, được gói gọn trong đường hầm 6to4. IPSec là do tôi cần mã hóa cho lưu lượng NFS, 6to4 là do nhà cung cấp VPS sẽ không gán tiền tố IPv6 gốc cho máy chủ của tôi. Vì tôi gặp vấn đề về MTU với đường hầm 6to4 nên tôi phải giảm MTU trên giao diện đường hầm xuống mức tối thiểu (1280 – nếu tôi cố đặt bất kỳ giá trị nào thấp hơn, tôi nhận được thông báo "Lỗi: mtu thấp hơn mức tối thiểu của thiết bị." ).

NFS vẫn muốn gửi các gói qua MTU. Tôi biết điều này, bởi vì tôi có một quy tắc nftables để ghi lại các gói ESP:

    đầu ra chuỗi {
    loại móc bộ lọc đầu ra bộ lọc ưu tiên; chính sách chấp nhận;
    gói truy cập đặc biệt ip6 nexthdr 303367 byte 323173696 chấp nhận nhật ký
}

Vì vậy, tôi thấy các gói này được đăng nhập vào nhật ký hệ thống/tạp chí:

Ngày 29 tháng 1 21:41:18 kernel nfsclient: IN= OUT=he-ipv6 SRC=fd48:2b50:6a95:a6db:0000:0000:0000:0004 DST=fdc8:d5f9:cbbf:b206:0000:0000:0000: 2001 LEN=1316 TC=0 HOPLIMIT=64 FLOWLBL=155038

(IP được thay đổi thành riêng tư vì lý do riêng tư.)

Bây giờ tôi không thể thấy gói đã ghi với tcpdump bởi vì được cho là chúng bị hạt nhân loại bỏ do vượt quá MTU.Tôi cho rằng NFS cố gắng tuân thủ cài đặt MTU, nhưng nó không biết rằng các gói của nó sẽ được đóng gói trong IPSec. Vì vậy, ngay cả khi NFS tạo một gói dưới 1280 byte, thì tiêu đề ESP được thêm vào nó sẽ vượt qua MTU đã đặt. Tôi cũng nghi ngờ rằng NFS đặt cờ DF trên các gói của nó, vì nếu không thì sự phân mảnh sẽ hoạt động. (Tôi đã thử nghiệm nó với ping6 -M muốn và các gói bị phân mảnh đã đi qua.) Vì vậy, tôi không thể hạ thấp MTU, NFS khăng khăng gửi các gói sẽ vượt qua MTU khi được mã hóa và thậm chí đặt cờ DF.

Tôi có thể làm gì bây giờ? Những điều sau đây tôi nghĩ về, nhưng không biết cách thực hiện:

  1. Đặt kích thước gói tối đa cho NFS, ví dụ: với tùy chọn gắn kết, nhưng tôi không nghĩ có cài đặt như vậy, tôi đã tìm kiếm nó rồi.
  2. Định cấu hình Strongswan để xử lý tình huống, nhưng tôi cũng không tìm thấy tùy chọn như vậy.
  3. Đặt quy tắc nftables bằng cách nào đó thông báo cho NFS rằng nó sẽ tạo các gói nhỏ hơn. Ví dụ. báo cáo MTU thậm chí còn thấp hơn cho NFS khi nó tìm kiếm nó – không biết liệu điều đó có khả thi hay không.
  4. Xóa cờ DF khỏi các gói để buộc phân mảnh. Tôi cũng không biết làm thế nào, hoặc liệu nó có khả thi hay không.

Tôi nghĩ rằng nftables là con đường để đi, nhưng nếu nó có thể được giải quyết ở cấp độ NFS, nó sẽ còn tốt hơn nữa. Tôi cũng đánh giá cao các giải pháp với iptables, tôi có thể tra cứu những gì tương đương với nftables.

Bởi vì nó được hỏi trong các bình luận, tôi cung cấp thông tin về các giao diện của mình.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc trạng thái mq UP chế độ MẶC ĐỊNH nhóm mặc định qlen 1000
    liên kết/ether aa:00:11:4d:f7:01 brd ff:ff:ff:ff:ff:ff
4: he-ipv6@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN mode DEFAULT nhóm mặc định qlen 1000
    liên kết/ngồi 192.168.32.84 ngang hàng 216.66.84.42

Và đây là những đường hầm (đường hầm ip):

sit0: ipv6/ip từ xa bất kỳ cục bộ nào bất kỳ ttl 64 nopmtudisc tiền tố thứ 6 2002::/16
he-ipv6: ipv6/ip remote 216.66.84.42 local 192.168.32.84 ttl 255 6rd-prefix 2002::/16

(Đã thay đổi địa chỉ IPv4 công khai của tôi thành địa chỉ riêng, nhưng trên thực tế, tôi có một địa chỉ có thể định tuyến toàn cầu cho địa phương; 216.66.84.42 là cổng đường hầm HE 6to4, nó nổi tiếng nên để ở đây.)

Và đây là tuyến đường mặc định áp dụng cho lưu lượng:

mặc định qua fd48:2b50:6a95:a6db::1 dev he-ipv6 metric 1024 onlink pref medium

Vì vậy, các ứng dụng tin rằng các gói của họ sẽ bị tắt he-ipv6, có MTU là 1280. Nhưng các gói của chúng trước tiên được đóng gói trong IPSec ESP, sau đó được gửi qua he-ipv6 đường hầm. Kết quả là một gói dữ liệu NFS được mã hóa IPSec được đóng gói trong một gói 6to4 mà chính nó sẽ xuất hiện trên eth0 giao diện hướng tới 216.66.84.42 (cổng HE).

drookie avatar
lá cờ za
Bit DF không áp dụng trực tiếp trên các gói đóng gói lại - nhân ngăn xếp mạng thực sự có thể sao chép nó hoặc nó có thể bỏ qua nó trên các gói mới được tạo đóng gói tải trọng DF, do đó, các gói sau có thể bị phân mảnh ngay cả khi tải trọng hạn chế nó . Vì vậy, chẩn đoán của bạn ít nhất là không đầy đủ. Đừng chơi với MTU, hãy chơi với sao chép bit DF.
lá cờ us
Vui lòng hiển thị đầu ra của `ip link` và cho biết giao diện nào được sử dụng cho lưu lượng truy cập này.
MegaBrutal avatar
lá cờ id
@TeroKilkanen, tân binh, cảm ơn vì nhận xét của bạn! Tôi đã sửa đổi bài đăng của mình với các chi tiết về giao diện và đường hầm. Vui lòng hỏi nếu bạn cần biết bất cứ điều gì khác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.