.\" $Id$ .\" .\" Copyright (c) 2001 Dug Song .\" .Dd October 17, 2001 .Dt DNET 8 .Os .Sh "نام (NAME)" .Nm dnet .Nd برنامه آزمایشی کتابخانه شبکه‌سازی dumb .Sh "خلاصه دستور (SYNOPSIS)" .Nm dnet Ar command Ar args Op ... .Sh "توضیحات (DESCRIPTION)" .Nm یک برنامه آزمایشی ساده برای کتابخانه .Xr dnet 3 است. می‌توان از آن برای ایجاد و ارسال دیتگرام‌های شبکه در قالب یک فیلتر به سبک یونیکس (مانند خواندن از یا نوشتن در فایل‌ها و لوله‌ها) یا تغییر پیکربندی شبکه سیستم محلی (شامل حافظه موقت ARP، مجموعه قوانین دیواره آتش، رابط‌های شبکه و جدول مسیریابی) استفاده کرد. .Pp .Ss "دستورات تولید بار مفید (Payload generation commands)" .Bl -tag -width "foo" .It Nm addr Ar address Op ... تبدیل .Ar address (مشخص‌شده به صورت نام میزبان، نشانی IP یا نشانی MAC) به نمایش باینری آن در خروجی استاندارد. .It Nm hex Ar string Op ... تبدیل .Ar string اسکیپ‌شده به سبک C (برای نمونه shellcode) به نمایش باینری آن در خروجی استاندارد. .It Nm rand Ar len نوشتن .Ar len بایت تصادفی در خروجی استاندارد. .El .Ss "دستورات کپسوله‌سازی بسته‌ها (Packet encapsulation commands)" .Bl -tag -width "foo" .It Xo .Nm eth .Op Nm type Ar type .Op Nm src Ar mac .Op Nm dst Ar mac .Xc افزودن سرایند اترنت به ابتدای داده‌های خوانده‌شده از ورودی استاندارد در خروجی استاندارد. نوع اترنت .Ar type می‌تواند به صورت .Ql arp , .Ql ip , یا به عنوان یک عدد هگزادسیمال، اکتال یا ده‌دهی مشخص شود. .It Xo .Nm arp .Op Nm op Ar op .Op Nm sha Ar mac .Op Nm spa Ar host .Op Nm tha Ar mac .Op Nm tpa Ar host .Xc افزودن سرایند ARP به ابتدای داده‌های خوانده‌شده از ورودی استاندارد در خروجی استاندارد. عمل ARP .Ar op می‌تواند به صورت .Ql req , .Ql rep , .Ql revreq , .Ql revrep , یا به عنوان یک عدد هگزادسیمال، اکتال یا ده‌دهی مشخص شود. .It Xo .Nm ip .Op Nm tos Ar num .Op Nm id Ar num .Op Nm off Ar offset .Op Nm ttl Ar num .Op Nm proto Ar protocol .Op Nm src Ar host .Bk -words .Op Nm dst Ar dst .Ek .Xc افزودن سرایند IP به ابتدای داده‌های خوانده‌شده از ورودی استاندارد در خروجی استاندارد. مقدار افست قطعه‌بندی .Ar offset می‌تواند به عنوان یک عدد ده‌دهی (اختیاراً پیوست‌شده با .Ql + برای نشان دادن قطعات بیشتر) یا به عنوان یک عدد هگزادسیمال مشخص شود. پروتکل .Ar protocol می‌تواند با نام، یا به عنوان یک عدد هگزادسیمال، اکتال یا ده‌دهی مشخص گردد. .It Xo .Nm icmp .Op Nm type Ar num .Op Nm code Ar num .Xc افزودن سرایند ICMP به ابتدای داده‌های خوانده‌شده از ورودی استاندارد در خروجی استاندارد. .It Xo .Nm tcp .Op Nm sport Ar port .Op Nm dport Ar port .Op Nm flags Ar flags .Op Nm seq Ar num .Op Nm ack Ar num .Op Nm win Ar num .Op Nm urp Ar num .Xc افزودن سرایند TCP به ابتدای داده‌های خوانده‌شده از ورودی استاندارد در خروجی استاندارد. یک .Ar port می‌تواند با نام یا به صورت یک عدد هگزادسیمال، اکتال یا ده‌دهی مشخص شود. پرچم‌های TCP در .Ar flags می‌توانند به صورت ترکیبی از نویسه‌ها در مجموعه .Ql SAFRPU یا به صورت یک عدد هگزادسیمال مشخص شوند. .It Xo .Nm udp .Op Nm sport Ar port .Op Nm dport Ar port .Xc افزودن سرایند UDP به ابتدای داده‌های خوانده‌شده از ورودی استاندارد در خروجی استاندارد. یک .Ar port می‌تواند با نام یا به صورت یک عدد هگزادسیمال، اکتال یا ده‌دهی مشخص شود. .El .Ss "دستورات ارسال بسته (Packet transmission commands)" .Bl -tag -width "foo" .It Nm send Op Ar device خواندن یک بسته از ورودی استاندارد و ارسال آن در شبکه. اگر هیچ .Ar device مشخص نشده باشد، فرض می‌شود که بسته یک دیتگرام IP است و به سمت مقصدش مسیریابی می‌شود. در غیر این صورت، بسته یک فریم اترنت در نظر گرفته شده و روی رابط مشخص‌شده ارسال می‌شود. .El .Ss "دستورات واسط کرنل (Kernel interface commands)" .Bl -tag -width "foo" .It Nm arp show نمایش حافظه موقت ARP کرنل. .It Nm arp get Ar host نمایش مدخل ARP کرنل برای .Ar host . .It Nm arp add Ar host Ar mac افزودن یک مدخل ARP برای نگاشت نشانی .Ar mac برای .Ar host . .It Nm arp delete Ar host حذف مدخل ARP برای .Ar host . .Pp .It Nm fw show نمایش مجموعه قوانین دیواره آتش کرنل. .It Xo .Nm fw add Ns \&| Ns Nm delete .Ar action Ar direction Ar device .Ar protocol .Ar src Ns Op \&: Ns Ar port[-max] .Ar dst Ns Op \&: Ns Ar port[-max] .Op Ar type Ns Op /code .Xc افزودن یک قانون به یا حذف یک قانون از مجموعه قوانین فعال دیواره آتش. عمل .Ar action باید .Ql allow یا .Ql block باشد. جهت باید .Ql in یا .Ql out باشد. .Ar device می‌تواند یک نام رابط، یا .Ql any را مشخص کند. .Ar protocol می‌تواند با نام، یا به صورت یک عدد ده‌دهی مشخص شود. برای پروتکل‌های TCP و UDP، یک .Ar port (یا بازه در صورت مشخص شدن با مقدار .Ar max ) می‌تواند به صورت ده‌دهی مشخص شده و به نشانی مبدأ یا مقصد پیوست شود. برای ICMP، یک .Ar type (و .Ar code اختیاری) می‌تواند به صورت ده‌دهی مشخص گردد. .It Nm intf show نمایش پیکربندی تمام رابط‌های شبکه. .It Nm intf get Ar device نمایش پیکربندی برای رابط مشخص‌شده توسط .Ar device . .It Xo .Nm intf set .Ar device .Op Nm alias Ar host .Op Nm dst Ar host .Op Nm inet Ar host .Op Nm link Ar mac .Op Nm up Ns \&| Ns Nm down .Op Nm arp Ns \&| Ns Nm noarp .Xc پیکربندی رابط مشخص‌شده توسط .Ar device . .It Nm route show نمایش جدول مسیریابی کرنل. .It Nm route get Ar dst نمایش مسیر برای مقصد .Ar dst , مشخص‌شده به صورت نام میزبان، نشانی IP یا پیشوند شبکه در قالب نمادگذاری CIDR. .It Nm route add Ar dst Ar gw افزودن یک مسیر برای مقصد .Ar dst از طریق دروازه .Ar gw . .It Nm route delete Ar dst حذف مسیر برای مقصد .Ar dst . .El .Sh "مثال‌ها (EXAMPLES)" ارسال یک دیتگرام UDP حاوی کد شل (shellcode) تصادفی: .Bd -literal -offset indent dnet hex "\\xeb\\x1f\\x5e\\x89\\x76\\x08\\x31\\xc0\\x88\\x46\\x07\\x89" \\ "\\x46\\x0c\\xb0\\x0b\\x89\\xf3\\x8d\\x4e\\x08\\x8d\\x56\\x0c\\xcd\\x80" \\ "\\x31\\xdb\\x89\\xd8\\x40\\xcd\\x80\\xe8\\xdc\\xff\\xff\\xff/bin/sh" | \\ dnet udp sport 555 dport 666 | \\ dnet ip proto udp src 1.2.3.4 dst 5.6.7.8 | dnet send .Ed .Pp ذخیره یک درخواست ARP در یک فایل و ارسال دوباره آن: .Bd -literal -offset indent dnet arp op req sha 0:d:e:a:d:0 spa 10.0.0.3 tpa 10.0.0.4 | \\ dnet eth type arp src 0:d:e:a:d:0 dst ff:ff:ff:ff:ff:ff > arp.pkt dnet send fxp0 < arp.pkt dnet send fxp0 < arp.pkt .Ed .Pp ارسال یک بسته پینگ قطعه‌بندی‌شده: .Bd -literal -offset indent # ایجاد بسته پینگ با سرایند IP برای تنظیم جمع کنترلی ICMP echo "monkey monkey monkey monkey" | dnet icmp type 8 code 0 | \\ dnet ip proto icmp src 1.2.3.4 dst 5.6.7.8 > ping.pkt # برش و حذف سرایند IP dd if=ping.pkt of=ping.data bs=20 skip=1 # قطعه‌بندی بار مفید IP split \-b 24 ping.data p. # ارسال قطعات dnet ip id 1 off 0+ proto icmp src 1.2.3.4 dst 5.6.7.8 < p.aa | \\ dnet send dnet ip id 1 off 24 proto icmp src 1.2.3.4 dst 5.6.7.8 < p.ab | \\ dnet send .Ed .Sh "همچنین ببینید (SEE ALSO)" .Xr dnet 3 .Sh "نویسندگان (AUTHORS)" Dug Song .Aq dugsong@monkey.org Oliver Falk .Aq oliver@linux-kernel.at