tcpprep(1) User Commands tcpprep(1)

tcpprep - ایجاد فایل کَش tcpreplay از یک فایل pcap

tcpprep [-flags] [-flag [value]] [--option-name[[=| ]value]]

تمام آرگومان‌ها باید از نوع گزینه‌ها (options) باشند.

دستور tcpprep یک پیش‌پردازنده فایل pcap(3) است که یک فایل کَش (cache) حاوی «قوانین» پردازش و ارسال بسته‌ها را برای tcprewrite(1) و tcpreplay(1) ایجاد می‌کند.

عملکرد پایه‌ای tcpreplay بازفرستادن تمام بسته‌ها از فایل(های) ورودی به یک فایل تکی است. ابزار tcpprep یک فایل pcap را پردازش کرده و مجموعه‌ای از قوانین تعیین‌شده توسط کاربر را برای ایجاد یک فایل کَش اعمال می‌کند؛ این فایل به tcpreplay می‌گوید که آیا هر بسته باید ارسال شود یا خیر، و اینکه بسته باید از کدام رابط شبکه فرستاده شود.

برای جزئیات بیشتر، لطفاً راهنمای Tcpreplay را در نشانی زیر ببینید: http://tcpreplay.appneta.com


فعال‌سازی خروجی اشکال‌زدایی. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار number محدود به موارد زیر است:
در محدوده 0 تا 5

مقدار پیش‌فرض number برای این گزینه برابر است با:
0

اگر با گزینه --enable-debug پیکربندی شده باشد، می‌توانید سطح جزئیات خروجی اشکال‌زدایی را تعیین کنید. اعداد بزرگتر میزان جزئیات را افزایش می‌دهند.


حالت تفکیک خودکار. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: cidr, port, regex, mac.

ابزار tcpprep تلاش می‌کند کارکرد اصلی میزبان‌ها را بر اساس ترافیک ضبط‌شده به طور خودکار تعیین کرده و هر میزبان را به عنوان سرویس‌گیرنده یا سرور دسته‌بندی کند. برای انجام این کار، باید راهنمایی (hint) لازم را درباره نحوه جستجوی سرویس‌گیرنده‌ها و سرورها به tcpprep ارائه دهید. راهنماهای معتبر عبارتند از:

bridge حالت پل (bridge) هر بسته را پردازش می‌کند تا مشخص کند فرستنده سرویس‌گیرنده است یا سرور. پس از پردازش تمام بسته‌ها، نتایج بر اساس نسبت سرور به سرویس‌گیرنده (--ratio) وزن‌دهی می‌شوند و سامانه‌ها به یک رابط شبکه اختصاص می‌یابند. اگر tcpprep نتواند نقش یک سامانه را مشخص کند، متوقف خواهد شد.

router حالت مسیریاب (router) مانند حالت پل کار می‌کند، با این تفاوت که پس از اتمام وزن‌دهی، سامانه‌های نامشخص در صورتی که درون شبکه‌ای قرار گیرند که دارای سرورهای دیگر است، به عنوان سرور در نظر گرفته می‌شوند. حالت router شانس بیشتری برای تفکیک موفق سرویس‌گیرنده‌ها و سرورها دارد، اما ۱۰۰٪ بدون خطا نیست.

client حالت سرویس‌گیرنده (client) درست مانند حالت پل کار می‌کند، جز اینکه سامانه‌های دسته‌بندی‌نشده به عنوان سرویس‌گیرنده در نظر گرفته می‌شوند. حالت client همواره با موفقیت به پایان می‌رسد.

server حالت سرور (server) درست مانند حالت پل کار می‌کند، جز اینکه سامانه‌های دسته‌بندی‌نشده به عنوان سرور در نظر گرفته می‌شوند. حالت server همواره با موفقیت به پایان می‌رسد.

first حالت نخست (first) با بررسی نخستین باری که هر IP در فیلدهای SRC و DST سرآیند IP مشاهده می‌شود کار می‌کند. اگر میزبان ابتدا در فیلد SRC دیده شود، سرویس‌گیرنده است و اگر ابتدا در فیلد DST دیده شود، به عنوان سرور نشانه‌گذاری می‌شود. این حالت عملاً نحوه پردازش ابزار تست tomahawk را شبیه‌سازی می‌کند. حالت first همیشه باید با موفقیت به پایان برسد.


حالت تفکیک با CIDR. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: auto, port, regex, mac.

تعیین فهرستی از بلوک‌های شبکه CIDR (جداشده با ویرگول) جهت تطبیق با IP مبدا هر بسته. بسته‌هایی که با هر یک از این بلوک‌های CIDR مطابقت داشته باشند به عنوان سرور دسته‌بندی می‌شوند.

مثال IPv4:

--cidr=192.168.0.0/16,172.16.0.0/12,10.0.0.0/8
مثال IPv6:
--cidr=[::ffff:0:0/96],[fe80::/16]

حالت تفکیک با عبارت باقاعده (Regex). این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: auto, port, cidr, mac.

تعیین یک عبارت باقاعده برای تطبیق با IP مبدا هر بسته. بسته‌های منطبق با این عبارت باقاعده به عنوان سرور دسته‌بندی می‌شوند.


حالت تفکیک بر پایه پورت. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: auto, regex, cidr, mac.

مشخص می‌کند که ترافیک TCP و UDP روی IPv4 و IPv6 باید بر اساس پورت مقصد در سرآیند، به عنوان سرویس‌گیرنده یا سرور دسته‌بندی شود.


حالت تفکیک بر پایه مک‌آدرس مبدا. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: auto, regex, cidr, port.

تعیین فهرستی از آدرس‌های MAC جهت تطبیق با MAC مبدا هر بسته. بسته‌های منطبق با یکی از این مقادیر به عنوان سرور دسته‌بندی می‌شوند.


تطبیق به عنوان سرویس‌گیرنده به جای سرور. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

در حالت عادی، فلگ‌های --mac، --regex و --cidr برای مشخص کردن سرورها به کار می‌روند و بسته‌های غیر IP به عنوان سرویس‌گیرنده دسته‌بندی می‌شوند. با استفاده از --reverse، این ویژگی‌ها معکوس می‌شوند، به طوری که فلگ‌ها سرویس‌گیرنده‌ها را مشخص کرده و بسته‌های غیر IP به عنوان سرور دسته‌بندی می‌شوند.


توضیح تعبیه‌شده در فایل کَش. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

تعیین توضیحی که درون فایل کَش خروجی قرار می‌گیرد و بعداً قابل مشاهده است.


عدم درج هیچ‌گونه توضیح در فایل کَش. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

به‌طور پیش‌فرض، tcpprep آرگومان‌های ارائه‌شده در خط فرمان را (علاوه بر هر --comment تعیین‌شده توسط کاربر) در توضیحات فایل کَش می‌گنجاند. اگر به هر دلیلی تمایل به گنجاندن آن ندارید، این گزینه را مشخص کنید.


تنها بسته‌های منطبق بر این قاعده گنجانده شوند. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: exclude.

بازنویسی حالت پیش‌فرضِ پردازش تمام بسته‌های ذخیره‌شده در فایل ضبط و تنها ارسال/ویرایش بسته‌های منطبق بر قاعده تعیین‌شده. قواعد می‌توانند یکی از موارد زیر باشند:

S:<CIDR1>,... - IP مبدا باید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشد

D:<CIDR1>,... - IP مقصد باید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشد

B:<CIDR1>,... - هر دو IP مبدا و مقصد باید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشند

E:<CIDR1>,... - حداقل یکی از IPهای مبدا یا مقصد باید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشد

P:<LIST> - باید یکی از بسته‌های فهرست‌شده باشد، جایی که فهرست متناظر با شماره بسته در فایل ضبط است.

-x P:1-5,9,15,72-
بسته‌های ۱ تا ۵، بسته نهم و پانزدهم، و بسته‌های ۷۲ تا انتهای فایل را پردازش می‌کند

F:'<bpf>' - فیلتر BPF. برای قواعد دستوری، به صفحه راهنمای tcpdump(8) مراجعه کنید.


مستثنی کردن هر بسته‌ای که با این قاعده مطابقت دارد. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر استفاده شود: include.

بازنویسی حالت پیش‌فرضِ پردازش تمام بسته‌های ذخیره‌شده در فایل ضبط و تنها ارسال/ویرایش بسته‌هایی که با قاعده تعیین‌شده مطابقت ندارند. قواعد می‌توانند یکی از موارد زیر باشند:

S:<CIDR1>,... - IP مبدا نباید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشد

D:<CIDR1>,... - IP مقصد نباید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشد

B:<CIDR1>,... - هر دو IP مبدا و مقصد نباید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشند

E:<CIDR1>,... - هیچ‌یک از IPهای مبدا یا مقصد نباید با CIDR(های) تعیین‌شده IPv4/v6 مطابقت داشته باشند

P:<LIST> - نباید یکی از بسته‌های فهرست‌شده باشد، جایی که فهرست متناظر با شماره بسته در فایل ضبط است.

-x P:1-5,9,15,72-
بسته‌های ۱ تا ۵، بسته نهم و پانزدهم، و بسته‌های ۷۲ تا انتهای فایل را نادیده می‌گیرد

فایل کَش خروجی. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

فایل pcap ورودی برای پردازش. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

چاپ توضیحات تعبیه‌شده در فایل کَش تعیین‌شده. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

چاپ اطلاعات پایه از فایل کَش تعیین‌شده. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

چاپ اطلاعات آماری پیرامون فایل کَش تعیین‌شده. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

بارگذاری فایل سرویس‌ها برای پورت‌های سرور. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه باید در ترکیب با گزینه زیر استفاده شود: port.

از فهرستی از پورت‌های مورداستفاده سرورها با همان قالب فایل /etc/services استفاده می‌کند: <service_name> <port>/<protocol> # comment

مثال: http 80/tcp


ارسال ترافیک غیر IP از رابط شبکه سرور. این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

به‌طور پیش‌فرض، ترافیک غیر IP که نمی‌تواند به عنوان سرویس‌گیرنده یا سرور دسته‌بندی شود، در دسته «سرویس‌گیرنده» قرار می‌گیرد. تعیین --nonip ترافیک غیر IP را مجدداً به عنوان «سرور» دسته‌بندی می‌کند. توجه داشته باشید در صورت استفاده از --reverse معنای این فلگ معکوس می‌شود.


نسبت بسته‌های سرویس‌گیرنده به سرور. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه باید در ترکیب با گزینه زیر استفاده شود: auto. مقدار پیش‌فرض string برای این گزینه برابر است با:
2.0

از آنجا که یک میزبان ممکن است ترافیک ارسالی و دریافتی از هر دو نوع سرویس‌گیرنده و سرور داشته باشد، tcpprep از یک نسبت برای وزن‌دهی به این بسته‌ها استفاده می‌کند. اگر مایلید نسبت پیش‌فرض ۲ به ۱ بسته‌های سرور به سرویس‌گیرنده را که برای دسته‌بندی یک میزبان به عنوان سرور لازم است تغییر دهید، آن را به عنوان یک مقدار ممیز شناور تعیین کنید.


حداقل طول ماسک شبکه در حالت خودکار. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه باید در ترکیب با گزینه زیر استفاده شود: auto. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار number محدود به موارد زیر است:
در محدوده 0 تا 32

مقدار پیش‌فرض number برای این گزینه برابر است با:
30

به‌طور پیش‌فرض، حالت‌های خودکار از حداقل طول ماسک شبکه ۳۰ بیتی برای ایجاد شبکه‌های حاوی سرویس‌گیرنده‌ها و سرورها استفاده می‌کنند. این گزینه امکان بازنویسی این مقدار را فراهم می‌کند. مقادیر بزرگتر کارایی را افزایش می‌دهند اما ممکن است نتایج نامعتبری ارائه دهند.


حداکثر طول ماسک شبکه در حالت خودکار. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه باید در ترکیب با گزینه زیر استفاده شود: auto. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار number محدود به موارد زیر است:
در محدوده 0 تا 32

مقدار پیش‌فرض number برای این گزینه برابر است با:
8

به‌طور پیش‌فرض، حالت‌های خودکار از حداکثر طول ماسک شبکه ۸ بیتی برای ایجاد شبکه‌های حاوی سرویس‌گیرنده‌ها و سرورها استفاده می‌کنند. این گزینه امکان بازنویسی این مقدار را فراهم می‌کند. مقادیر بزرگتر کارایی و دقت را کاهش می‌دهند، اما شانس موفقیت بالاتری فراهم می‌کنند.


چاپ بسته‌های رمزگشایی‌شده از طریق tcpdump در خروجی استاندارد (STDOUT). این گزینه می‌تواند حداکثر ۱ بار مشخص شود.

آرگومان‌های ارسالی به رمزگشای tcpdump. این گزینه می‌تواند حداکثر ۱ بار مشخص شود. این گزینه باید در ترکیب با گزینه زیر استفاده شود: verbose.

هنگام فعال‌سازی حالت پرجزئیات (-v) می‌توانید یک یا چند آرگومان اضافی را برای ارسال به tcpdump تعیین کنید تا نحوه رمزگشایی بسته‌ها تغییر کند. به‌طور پیش‌فرض، -n و -l استفاده می‌شوند. دقت کنید که آرگومان‌ها را درون علامت نقل‌قول قرار دهید تا توسط tcprewrite تفسیر نشوند. آرگومان‌های زیر معتبر هستند:
[ -aAeNqRStuvxX ]
[ -E spi@ipaddr algo:secret,... ]
[ -s snaplen ]


چاپ اطلاعات نسخه برنامه.

نمایش اطلاعات کاربرد کمتر و خروج.

این گزینه به طور کامل مستندسازی نشده است.


جلوگیری از چاپ پیام‌های هشدار.

نمایش اطلاعات نحوه استفاده و خروج.
-!, --more-help

ارسال اطلاعات کامل راهنما از طریق صفحه‌بندی‌کننده (pager).

ذخیره وضعیت گزینه‌ها در cfgfile. مقدار پیش‌فرض آخرین فایل پیکربندی فهرست‌شده در بخش پیش‌تنظیم‌های گزینه (OPTION PRESETS) در ادامه است. دستور پس از به‌روزرسانی فایل پیکربندی خارج خواهد شد.

بارگذاری گزینه‌ها از cfgfile. حالت no-load-opts بارگذاری فایل‌های پیکربندی قبلی config/rc/ini را غیرفعال می‌کند. گزینه --no-load-opts پیش از سایر گزینه‌ها و خارج از نوبت پردازش می‌شود.

هر گزینه‌ای که به عنوان not presettable علامت‌گذاری نشده باشد می‌تواند با بارگذاری مقادیر از فایل(های) پیکربندی ("RC" یا ".INI") از پیش تنظیم شود. فایل homerc برابر با «$$/» است، مگر اینکه یک دایرکتوری باشد. در آن صورت، فایل «.tcppreprc» درون آن دایرکتوری جستجو می‌شود.

برای فایل‌های پیکربندی بخش پیش‌تنظیم‌های گزینه (OPTION PRESETS) را ببینید.

یکی از مقادیر خروج زیر بازگردانده خواهد شد:

0 (EXIT_SUCCESS)

اجرای موفقیت‌آمیز برنامه.
1 (EXIT_FAILURE)

عملیات ناموفق بود یا ساختار دستوری نامعتبر بود.
66 (EX_NOINPUT)

فایل پیکربندی مشخص‌شده بارگذاری نشد.
70 (EX_SOFTWARE)

کتابخانه libopts با یک خطای داخلی مواجه شد. لطفاً آن را به autogen-users@lists.sourceforge.net گزارش دهید. با تشکر.

حق نشر ۲۰۱۳-۲۰۲۵ Fred Klassen - AppNeta حق نشر ۲۰۰۰-۲۰۱۲ Aaron Turner برای پشتیبانی لطفاً از فهرست پستی tcpreplay-users@lists.sourceforge.net استفاده کنید. آخرین نسخه این نرم‌افزار همواره از نشانی زیر در دسترس است: http://tcpreplay.appneta.com

حق نشر (C) ۲۰۰۰-۲۰۲۵ متعلق به Aaron Turner و Fred Klassen است، کلیه حقوق محفوظ است. این برنامه تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) نسخه ۳ یا جدیدتر منتشر شده است.

لطفاً گزارش‌های اشکال را به نشانی tcpreplay-users@lists.sourceforge.net ارسال کنید.

این صفحه راهنما توسط AutoGen از تعاریف گزینه‌های tcpprep تولید شده است.

26 Aug 2025 tcpprep