RawSocket
RawSocket نام فعلی نودی است که در بعضی مستندات قدیمی با عنوان RawDevice آمده بود. این نود WaterWall را به capture و injection خام IPv4 وصل میکند: packetهای match شده را از stack شبکه host میگیرد و packetهای خامی را که از زنجیر میرسند دوباره inject میکند.
این نود connection-oriented نیست؛ یک adapter لایه ۳ است.
نمونه تنظیم
{
"name": "raw-ip",
"type": "RawSocket",
"settings": {
"capture-device-name": "capture-in",
"raw-device-name": "raw-out",
"capture-filter-mode": "source-ip",
"capture-ips": [
"192.0.2.10",
"198.51.100.0/24"
],
"mark": 10
},
"next": "next-node-name"
}
تنظیمات ضروری
| گزینه | توضیح |
|---|---|
capture-filter-mode | در نسخه فعلی عملا فقط source-ip قابل استفاده است |
capture-ips | آرایه IP یا CIDRهای IPv4 برای capture |
کلید قدیمی capture-ip هنوز به عنوان یک ورودی /32 پذیرفته میشود، اما برای config جدید از capture-ips استفاده کنید.
تنظیمات اختیاری
| گزینه | پیشفرض | توضیح |
|---|---|---|
capture-device-name | unnamed-capture-device | نام capture device |
raw-device-name | unnamed-raw-device | نام raw output device |
mark | 0 | firewall mark برای raw output در پلتفرمهای پشتیبانیشده |
رفتار
- packetهای capture شده فقط اگر IPv4 باشند وارد chain میشوند.
- اگر
RawSocketآخر زنجیر باشد، packet capture شده به سمت previous فرستاده میشود؛ در غیر این صورت بهnext. - payloadی که از هر جهت به
RawSocketبرسد raw IP packet فرض میشود و از raw output device نوشته میشود. - اگر line درخواست recalculation checksum داشته باشد، قبل از نوشتن checksumها دوباره محاسبه میشوند.
محدودیتها
- receive path فعلی فقط IPv4 را forward میکند.
capture-filter-mode: "dest-ip"در parser دیده میشود، اما پیادهسازی فعلی آن را قبول نمیکند و پیشنهاد میدهد برای capture خروجی ازTunDeviceاستفاده کنید.- پشتیبانی دقیق به backend سیستمعامل وابسته است.