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-header | packet داخلی IPv4 را داخل outer IPv4 + ICMP echo میگذارد. به source و dest نیاز دارد. |
wrap-in-icmp-header-and-reuse-ipv4-addresses | header 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"
}
تنظیمات
| گزینه | پیشفرض | توضیح |
|---|---|---|
strategy | wrap-in-icmp-header-and-reuse-ipv4-addresses | انتخاب روش تغییر شکل packet |
identifier | 44975 | ICMP echo identifier برای modeهای ICMP envelope |
sequence-start | 0 | sequence اولیه ICMP |
ipv4-id-start | 0 | شناسه IPv4 اولیه برای outer header در strategy اول |
ttl | 64 | TTL outer IPv4 در strategy اول |
tos | 0 | TOS outer IPv4 در strategy اول |
xor-byte | - | XOR روی ICMP payload، فقط در ICMP payload modeها |
roundup-size | false | padding 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سمت مقابل هماهنگ باشد.