SNMPTEST(1) Net-SNMP SNMPTEST(1)

snmptest - برقراری ارتباط با یک موجودیت شبکه با استفاده از درخواست‌های SNMP

snmptest [COMMON OPTIONS] AGENT

snmptest یک برنامهٔ منعطف SNMP است که می‌تواند اطلاعات روی یک موجودیت شبکه را پایش و مدیریت کند.

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

شناسهٔ AGENT یک کارگزار SNMP هدف را مشخص می‌کند که برای پایش اشیای مشخص‌شده آماده‌سازی شده است. در ساده‌ترین حالت، مشخصات AGENT شامل یک نام میزبان یا یک نشانی IPv4 خواهد بود. در این وضعیت، دستور تلاش خواهد کرد تا با استفاده از UDP/IPv4 روی پورت ۱۶۱ میزبان هدفِ ارائه‌شده با کارگزار ارتباط برقرار کند. برای فهرست کاملی از قالب‌های ممکن برای AGENT، به snmpcmd(1) مراجعه کنید.

به‌محض اجرای snmptest، مفسر خط فرمان اعلان زیر را نمایش می‌دهد:

Variable:

در این مرحله می‌توانید یک یا چند نام متغیر را، هر کدام در یک خط، وارد کنید. یک خط خالی ورودی پارامترها را پایان می‌دهد و درخواست (متغیرهای وارد شده) را در قالب یک بستهٔ واحد به موجودیت دوردست ارسال خواهد کرد. نام هر متغیر در قالبی مشخص‌شده در variables(5) ارائه می‌شود. برای مثال:

snmptest -c public -v 1 zeus
Variable: system.sysDescr.0
Variable:

اطلاعاتی دربارهٔ بسته‌های درخواست و پاسخ، و همچنین اطلاعات زیر را برمی‌گرداند:

requestid 0x5992478A errstat 0x0 errindex 0x0
system.sysDescr.0 = STRING: "Unix 4.3BSD"

مقدار errstatus کد وضعیت خطای مربوط به فراخوانی را نشان می‌دهد. مقادیر ممکن برای errstat در فایل سرآیند snmp.h قرار دارند. مقدار errindex متغیری را مشخص می‌کند که دچار خطای مذکور شده است. مقادیر اندیس به تمام متغیرهای وارد شده در اعلان "Variable:" اختصاص داده می‌شوند. به نخستین مقدار، اندیس ۱ اختصاص می‌یابد.

در هنگام راه‌اندازی، برنامه به‌طور پیش‌فرض اقدام به ارسال بستهٔ درخواست GET می‌کند. نوع درخواست را می‌توان با تایپ یکی از دستورهای زیر در اعلان "Variable:" تغییر داد:

$G - ارسال یک درخواست GET
$N - ارسال یک درخواست GETNEXT
$S - ارسال یک درخواست SET
$B - ارسال یک درخواست GETBULK
     توجه: GETBULK در SNMPv1 در دسترس نیست
$I - ارسال یک درخواست Inform
$T - ارسال یک درخواست SNMPv2 Trap

سایر مقادیری که می‌توان در اعلان "Variable:" وارد کرد عبارتند از:

$D - تغییر وضعیت ثبت و تخلیه (دامپ) بسته‌های ارسالی و دریافتی
$QP - تغییر وضعیت به حالت خروجی سریع‌تر و کوتاه‌تر
$Q - خروج از برنامه

انواع درخواست‌ها:

درخواست GET:

هنگامی که در حالت «درخواست GET»‏ ($G یا پیش‌فرض) هستید، کاربر می‌تواند یک OID را در اعلان "Variable:" وارد کند. کاربر می‌تواند چندین OID را، هر کدام در یک اعلان، وارد نماید. کاربر برای ارسال درخواست GET یک خط خالی وارد می‌کند.

درخواست GETNEXT:

حالت «درخواست GETNEXT»‏ ($N) مشابه حالت «درخواست GET» است که در بالا توضیح داده شد.

درخواست SET:

هنگامی که در حالت «درخواست SET»‏ ($S) هستید، اعلان برای هر متغیر اطلاعات بیشتری درخواست می‌کند. اعلان:

Type [i|s|x|d|n|o|t|a]:
درخواست می‌کند که نوع متغیر وارد شود. بسته به نوع مقداری که می‌خواهید تنظیم کنید، می‌توانید یکی از موارد زیر را وارد نمایید:
i - عدد صحیح (integer)
u - عدد صحیح بدون علامت (unsigned integer)
s - رشته هشت‌بیتی در ASCII
x - رشته هشت‌بیتی در قالب بایت‌های هگزادسیمال، جدا شده با فاصله
d - رشته هشت‌بیتی در قالب بایت‌های ده‌دهی، جدا شده با فاصله
a - نشانی IP در قالب نقطه‌دار
o - شناسه شیء (object identifier)
n - تهی (null)
t - تیک‌های زمانی (timeticks)
در این مرحله مقداری درخواست خواهد شد:

Value:

اگر این مقدار یک عدد صحیح باشد، کافی است عدد صحیح را (در مبنای ده) وارد کنید. اگر یک رشتهٔ ده‌دهی است، اعداد ده‌دهی جدا شده با فاصله را وارد کنید، هر عدد برای یک بایت از رشته. مجدداً در اعلان نام متغیر یک خط خالی وارد کنید تا بسته ارسال شود.

درخواست GETBULK:

حالت «درخواست GETBULK»‏ ($B) مشابه حالت «درخواست SET» است. با این حال، GETBULK در SNMPv1 در دسترس نیست.

درخواست Inform:

حالت «درخواست Inform»‏ ($I) مشابه حالت «درخواست SET» است. این نوع درخواست نیز در SNMPv1 در دسترس نیست. همچنین، مقدار agent مشخص‌شده در دستور snmptest باید با کارگزار snmptrapd هدف مطابقت داشته باشد.

درخواست SNMPv2 Trap:

حالت «درخواست SNMPv2 Trap»‏ ($T) مشابه حالت «درخواست SET» است. این نوع درخواست نیز در SNMPv1 در دسترس نیست. همچنین، مقدار agent مشخص‌شده در دستور snmptest باید با کارگزار snmptrapd هدف مطابقت داشته باشد.

snmptest گزینه‌های عمومی توصیف‌شده در صفحهٔ راهنمای snmpcmd(1) را می‌پذیرد.

در ادامه مثالی از ارسال یک درخواست GET برای دو OID آورده شده است:

% snmptest -v 2c -c public testhost:9999

Variable: system.sysDescr.0
Variable: system.sysContact.0
Variable:
Received Get Response from 128.2.56.220
requestid 0x7D9FCD63 errstat 0x0 errindex 0x0
SNMPv2-MIB::sysDescr.0 = STRING: SunOS testhost 5.9 Generic_112233-02 sun4u
SNMPv2-MIB::sysContact.0 = STRING: x1111

در ادامه مثالی از ارسال یک درخواست GETNEXT آورده شده است:

Variable: SNMPv2-MIB::sysORUpTime
Variable:
Received Get Response from 128.2.56.220
requestid 0x7D9FCD64 errstat 0x0 errindex 0x0
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06
Variable:

در ادامه مثالی از ارسال یک درخواست SET آورده شده است:

Variable: $S
Request type is Set Request
Variable: system.sysLocation.0
Type [i|u|s|x|d|n|o|t|a]: s
Value: building 17
Variable:
Received Get Response from 128.2.56.220
requestid 0x7D9FCD65 errstat 0x0 errindex 0x0
SNMPv2-MIB::sysLocation.0 = STRING: building A
Variable:

در ادامه مثالی از ارسال یک درخواست GETBULK آورده شده است:

Variable: $B
Request type is Bulk Request
Enter a blank line to terminate the list of non-repeaters
and to begin the repeating variables
Variable:
Now input the repeating variables
Variable: system.sysContact.0
Variable: system.sysLocation.0
Variable:
What repeat count? 2
Received Get Response from 128.2.56.220
requestid 0x2EA7942A errstat 0x0 errindex 0x0
SNMPv2-MIB::sysName.0 = STRING: testhost
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (58) 0:00:00.58
SNMPv2-MIB::sysLocation.0 = STRING: bldg A
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
Variable:

در ادامه مثالی از ارسال یک درخواست Inform آورده شده است:

snmptest -v 2c -c public snmptrapd_host
Variable: $I
Request type is Inform Request
(Are you sending to the right port?)
Variable: system.sysContact.0
Type [i|u|sIx|d|n|o|t|a]: s
Value: x12345
Variable:
Inform Acknowledged
Variable:

میزبان snmptrapd_host خروجی زیر را نشان خواهد داد:

snmptrapd_host [<ip address>]: Trap SNMPv2-MIB::sysContact.0 = STRING: x12345

در ادامه مثالی از ارسال یک درخواست SNMPv2 Trap آورده شده است:

snmptest -v 2c -c public snmptrapd_host
Variable: $T
Request type is SNMPv2 Trap Request
(Are you sending to the right port?)
Variable: system.sysLocation.0
Type [i|u|s|x|d|n|o|t|a]: s
Value: building a
Variable:

میزبان snmptrapd_host خروجی زیر را نشان خواهد داد:

snmptrapd_host [<ip address>]: Trap SNMPv2-MIB::sys.0 = STRING:
building a

snmpcmd(1), snmpget(1), snmpset(1), variables(5)

25 Jul 2003 V5.9.5.2