پرش به مطلب اصلی

PingClient

PingClient یک pure packet tunnel لایه ۳ است. این نود packetهای IPv4 را با یکی از strategyهای ICMP-related تغییر شکل می‌دهد و در مسیر برگشت، منطق معکوس همان strategy را اعمال می‌کند.

این نود برای latency ping معمولی نیست و line معمولی per-connection نمی‌سازد؛ روی worker packet lineهای زنجیر کار می‌کند.

strategyها

strategyتوضیح
wrap-in-new-ip-and-icmp-headerpacket داخلی IPv4 را داخل outer IPv4 + ICMP echo می‌گذارد. به source و dest نیاز دارد.
wrap-in-icmp-header-and-reuse-ipv4-addressesheader IPv4 موجود را نگه می‌دارد، protocol را ICMP می‌کند و transport bytes را داخل ICMP payload می‌گذارد. پیش‌فرض فعلی.
wrap-in-only-icmp-headerورودی را raw bytes فرض می‌کند و فقط ICMP echo header اضافه می‌کند؛ خروجی IP packet کامل نیست.
change-only-ipv4-protocol-numberفقط protocol number در IPv4 header را به ICMP تغییر می‌دهد و در برگشت به swap-protocol برمی‌گرداند.

نمونه تنظیم

{
"name": "icmp-client",
"type": "PingClient",
"settings": {
"strategy": "wrap-in-new-ip-and-icmp-header",
"identifier": 4660,
"source": "198.51.100.10",
"dest": "203.0.113.20",
"xor-byte": 90,
"roundup-size": true,
"sequence-start": 0,
"ttl": 64
},
"next": "raw-out"
}

تنظیمات

گزینهپیش‌فرضتوضیح
strategywrap-in-icmp-header-and-reuse-ipv4-addressesانتخاب روش تغییر شکل packet
identifier44975ICMP echo identifier برای modeهای ICMP envelope
sequence-start0sequence اولیه ICMP
ipv4-id-start0شناسه IPv4 اولیه برای outer header در strategy اول
ttl64TTL outer IPv4 در strategy اول
tos0TOS outer IPv4 در strategy اول
xor-byte-XOR روی ICMP payload، فقط در ICMP payload modeها
roundup-sizefalsepadding payload در ICMP payload modeها
source-فقط برای wrap-in-new-ip-and-icmp-header اجباری است
dest-فقط برای wrap-in-new-ip-and-icmp-header اجباری است
swap-protocol-فقط برای change-only-ipv4-protocol-number اجباری است؛ TCP، UDP، ICMP یا عدد 0..255

نکته‌ها

  • strategyهای IPv4، packetهای IPv6 را drop می‌کنند.
  • fragmented packetها در بعضی modeها قابل بازسازی امن نیستند و drop می‌شوند.
  • legacy aliasهایی مثل warp-*، warp-in-icmp-header-and-update-ipv4-header، change-only-ip4-packet-identifier-number و swap-identifier هنوز برای سازگاری قدیمی پذیرفته می‌شوند.
  • این نود باید با PingServer سمت مقابل هماهنگ باشد.