Bảng mangle trong iptables là gì?


28

Tôi đang sử dụng các quy tắc iptable để lọc và thao tác các gói trong máy chủ Ubuntu của mình. nhưng tôi không thể hiểu bảng mangle.

Trích dẫn từ hướng dẫn iptables này :

Bảng này như chúng tôi đã lưu ý chủ yếu được sử dụng cho các gói xáo trộn. Nói cách khác, bạn có thể tự do sử dụng các kết quả trùng khớp, v.v. có thể được sử dụng để thay đổi các trường TOS (Loại dịch vụ), v.v.

Bạn được khuyến cáo không sử dụng bảng này cho bất kỳ bộ lọc nào; cũng không có bất kỳ DNAT, SNAT hoặc Masquerading nào hoạt động trong bảng này.

Bất cứ ai có thể mô tả cho tôi bảng mangle, và cung cấp một số ví dụ để hiểu khi nào tôi nên sử dụng nó?


6
Các iptables(8)trang người đàn ông có tất cả các thông tin mà bạn muốn, bao gồm một số ví dụ tốt đẹp của việc sử dụng bảng mangle.
Michael Hampton

Câu trả lời:


23

Ngoài ra với các câu trả lời hay khác, gần đây tôi đã phải sử dụng bảng mangle để điều chỉnh các khác biệt MTU (đơn vị truyền tối đa) do lưu lượng truy cập được đưa qua PPPoE, PPP và ATM, mỗi cái đều thêm chi phí làm giảm tải trọng có sẵn cho IP từ 1500 byte thông thường của khung Ethernet.

Các hệ thống ở mỗi đầu của đường ống, như bình thường, sẽ có MTU của chúng ở mức mặc định là 1500 và vì vậy chúng sẽ cố gắng gửi các khung IP lớn như vậy. Vì kích thước tải trọng thực tế có sẵn nhỏ hơn, điều này sẽ gây ra sự phân mảnh gói, ngoại trừ việc người gửi thường yêu cầu các gói không bị phân mảnh và do đó cuối cùng chúng bị bỏ hoàn toàn.

Trong một thế giới lý tưởng, phát hiện MTU đường dẫn sẽ cho phép các điểm cuối điều chỉnh MTU của họ khi cần, nhưng khám phá này phụ thuộc vào ICMP và các mạng ngoài tầm kiểm soát của tôi thường được định cấu hình để thả ICMP vì lý do bảo mật.

Lựa chọn duy nhất là sử dụng xáo trộn gói trong bộ định tuyến của tôi để sửa đổi các gói TCP SYN để giảm kích thước phân đoạn tối đa ở lớp vận chuyển:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

Loại điều này là lộn xộn và lý tưởng nên tránh, nhưng tôi không có lựa chọn nào khác và điều này đã giải quyết vấn đề.

Hy vọng những ví dụ này có ích, cũng như trang người đàn ông.


23

Gần đây tôi đã tìm thấy một lời giải thích tốt ở đây . Về cơ bản, nó được sử dụng để đặt các tiêu đề cụ thể cho các gói IP ảnh hưởng đến quyết định định tuyến được đưa ra thêm. Nếu có, tùy chọn TTL có lẽ là thú vị nhất:

Mục tiêu TTL được sử dụng để thay đổi trường TTL (Thời gian sống) của gói. Chúng ta có thể nói các gói chỉ có một TTL cụ thể và cứ thế. Một lý do chính đáng cho điều này có thể là chúng tôi không muốn trao thân cho các Nhà cung cấp dịch vụ Internet tọc mạch. Một số Nhà cung cấp dịch vụ Internet không thích người dùng chạy nhiều máy tính trên một kết nối và có một số Nhà cung cấp dịch vụ Internet được biết là tìm kiếm một máy chủ duy nhất tạo ra các giá trị TTL khác nhau và coi đây là một trong nhiều dấu hiệu của nhiều máy tính được kết nối với một máy tính kết nối.

Các mục tiêu khác là TOS, MARK, SECMARK, CONNSECMARK.


4
Mangle cũng được sử dụng trong QOS để xử lý việc đánh dấu gói hoặc trong phân phối tải dữ liệu để phân phối các gói đến các tuyến khác nhau.
TomTom

8

Là một noob iptables, tôi muốn nói: Bảng mangle cho phép sửa đổi một số mục đặc biệt trong tiêu đề của gói. (chẳng hạn: Loại dịch vụ, Thời gian sống) (nó cũng cho phép đặt các dấu đặc biệt và dấu bối cảnh bảo mật)


2

Có một bài lặn sâu tốt nhưng không quá khó để hiểu hướng dẫn về iptables ở đây .

Bảng mangle được sử dụng để thay đổi các tiêu đề IP của gói theo nhiều cách khác nhau. Chẳng hạn, bạn có thể điều chỉnh giá trị TTL (Thời gian để sống) của gói, kéo dài hoặc rút ngắn số bước nhảy mạng hợp lệ mà gói có thể duy trì. Các tiêu đề IP khác có thể được thay đổi theo cách tương tự.

Bảng này cũng có thể đặt "dấu" nhân bên trong trên gói để xử lý thêm trong các bảng khác và bằng các công cụ mạng khác. Dấu này không chạm vào gói thực tế, nhưng thêm dấu vào biểu diễn của hạt nhân của gói.

Đã giúp tôi rất nhiều, vì nó cũng giải thích rõ ràng làm thế nào tất cả các bộ phận khớp với nhau và giao thoa với nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.