Checksum action in tc(8) Linux Checksum action in tc(8)

tc-csum - کنش به‌روزرسانی جمع کنترلی (checksum)


tc ... action csum UPDATE

UPDATE := TARGET [ UPDATE ]

TARGET := { ip4h | icmp | igmp | tcp | udp | udplite | sctp | SWEETS }

SWEETS := { and | or | + }

کنش csum محاسبه مجدد جمع کنترلی (checksum) سرآیندهای مشخص‌شده بسته را فعال می‌کند. این کنش معمولاً برای اصلاح جمع‌های کنترلی نادرست پس از آنکه کنش pedit محتوای بسته را تغییر داد، استفاده می‌شود.

مشخص می‌کند کدام سرآیندها باید به‌روزرسانی شوند: سرآیند IPv4 (ip4h)، سرآیند ICMP (icmp)، سرآیند IGMP (igmp)، سرآیند TCP (tcp)، سرآیند UDP (udp)، سرآیند UDPLite (udplite) یا سرآیند SCTP (sctp).
این موارد صرفاً تسهیلات نحوی (syntactic sugar) بوده و به صورت داخلی نادیده گرفته می‌شوند.

مثال زیر یک NAT بدون وضعیت (stateless NAT) را برای بسته‌های ورودی از 192.0.2.100 به مقصد جدید 198.51.100.1 انجام می‌دهد. با فرض اینکه این بسته‌ها از نوع UDP هستند، جمع‌های کنترلی هر دو پروتکل IP و UDP باید مجدداً محاسبه شوند:

# tc qdisc add dev eth0 ingress handle ffff:
# tc filter add dev eth0 prio 1 protocol ip parent ffff: 	u32 match ip src 192.0.2.100/32 flowid :1 	action pedit munge ip dst set 198.51.100.1 pipe 	csum ip and udp

tc(8), tc-pedit(8)

11 Jan 2015 iproute2