يوضح هذا المستند كيفية إستخدام بروتوكول إدارة الشبكة البسيط (SNMP) للحصول على رقم المنفذ على محول Cisco Catalyst الذي تعرف منه عنوان MAC.
يجب أن يكون لدى قراء هذا المستند معرفة بالمواضيع التالية:
كيفية الحصول على شبكات VLAN من محول Catalyst Switch باستخدام بروتوكول SNMP
كيفية إستخدام فهرسة سلسلة المجتمع مع SNMP
الاستخدام العام لأمر الحصول على SNMP والمشي
يطبق هذا وثيقة إلى مادة حفازة مفتاح أن يركض عادي مادة حفازة os (CatOS) أو cisco IOS® برمجية. يدعم البرنامج Bridge-MIB وIF-MIB.
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
مادة حفازة 3524xl أن يركض cisco ios برمجية إطلاق 12.0(5)WC5a
Net-SNMP، الإصدار 5.0.6
ملاحظة: للحصول على هذا البرنامج، ارجع إلى Net-SNMP .
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.
للحصول على مزيد من المعلومات حول اصطلاحات المستندات، ارجع إلى اصطلاحات تلميحات Cisco التقنية.
لمزيد من المعلومات حول كيفية الاستعلام عن جدول الذاكرة القابلة للتوجيه (CAM) وشبكات VLAN وجميع قواعد معلومات الإدارة (MIB) ذات الصلة مثل Cisco-VTP-MIB و Bridge-MIB، ارجع إلى قسم الخلفية في المستند كيفية الحصول على إدخالات CAM الديناميكية (جدول CAM) لمحولات Catalyst باستخدام SNMP.
.1.3.6.1.2.1.17.4.3.1.1 dot1dTpFdbAddress OBJECT-TYPE -- FROM BRIDGE-MIB -- TEXTUAL CONVENTION MacAddress SYNTAX OCTET STRING (6) MAX-ACCESS read-only STATUS Mandatory DESCRIPTION "A unicast MAC address for which the bridge has forwarding and/or filtering information." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) dot1dBridge(17) dot1dTp(4) dot1dTpFdbTable(3) dot1dTpFdbEntry(1) 1 } .1.3.6.1.2.1.17.4.3.1.2 dot1dTpFdbPort OBJECT-TYPE -- FROM BRIDGE-MIB SYNTAX Integer MAX-ACCESS read-only STATUS Mandatory DESCRIPTION "Either the value "0", or the port number of the port on which a frame having a source address equal to the value of the corresponding instance of dot1dTpFdbAddress has been seen. A value of "0" indicates that the port number has not been learned, but that the bridge does have some forwarding/filtering information about this address (that is, in the StaticTable). Implementors are encouraged to assign the port value to this object whenever it is learned, even for addresses for which the corresponding value of dot1dTpFdbStatus is not learned(3)." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) dot1dBridge(17) dot1dTp(4) dot1dTpFdbTable(3) dot1dTpFdbEntry(1) 2 } .1.3.6.1.2.1.2.2.1.1 ifIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "A unique value, greater than zero, for each interface. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re- initialization." ::= { ifEntry 1 } .1.3.6.1.2.1.17.1.4.1.2 dot1dBasePortIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The value of the instance of the ifIndex object, defined in MIB-II, for the interface corresponding to this port." ::= { dot1dBasePortEntry 2 } .1.3.6.1.2.1.31.1.1.1.1 ifName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The textual name of the interface. The value of this object should be the name of the interface as assigned by the local device and should be suitable for use in commands entered at the device's `console'. This might be a text name, such as `le0' or a simple port number, such as `1', depending on the interface naming syntax of the device. If several entries in the ifTable together represent a single interface as named by the device, then each will have the same value of ifName. Note that for an agent which responds to SNMP queries concerning an interface on some other (proxied) device, then the value of ifName for such an interface is the proxied device's local name for it. If there is no local name, or this object is otherwise not applicable, then this object contains a zero-length string." ::= { ifXEntry 1 }
أتمت ال steps في هذا قسم in order to استعملت SNMP أن يحصل الرقم أيسر على أي {upper}mac address يتلقى يكون علمت. اعتبرت أن الميناء رقم في VLAN1.
ملاحظة: في الأوامر الواردة في هذا القسم:
عامة هي سلسلة مجتمع القراءة.
@1 هو جزء VLAN 1 من سلسلة مجتمع القراءة.
crumpy هو اسم مضيف الجهاز.
ملاحظة: يمكنك أيضا إستخدام عنوان IP لاسم المضيف هذا.
ملاحظة: يستخدم قسم الخاتمة القيم التي تظهر في الخط المائل في إخراج الأمر.
استرد شبكات VLAN. أستخدم الأمر snmpwalk على كائن vtpVlanState (.1.3.6.1.4.1.9.46.1.3.1.1.2 ):
%snmpwalk -c public crumpy .1.3.6.1.4.1.9.9.46.1.3.1.1.2 CISCO-VTP-MIB::vtpVlanState.1.1 = INTEGER: operational(1) CISCO-VTP-MIB::vtpVlanState.1.3 = INTEGER: operational(1) CISCO-VTP-MIB::vtpVlanState.1.7 = INTEGER: operational(1) CISCO-VTP-MIB::vtpVlanState.1.10 = INTEGER: operational(1) ...
ملاحظة: يستخدم هذا الأمر فهرسة سلسلة المجتمع. يستخدم الأمر أيضا vtpVlanState، والذي يحتوي على OID .1.3.6.1.4.1.9.46.1.3.1.1.2. إذا كنت قد قمت بتحميل MIBs إلى نظام إدارة الشبكة (NMS)، يمكنك إستخدام اسم الكائن بدلا من OID. أصدرت هذا أمر بدلا من:
%snmpwalk -c public@1 crumpy vtpVlanState
ملاحظة: يمكنك أيضا إستخدام أسماء الكائنات في الخطوات من 2 إلى 6.
أصدرت هذا أمر in order to نلت ال mac عنوان طاولة ب يعتبر أن الميناء ينتسب إلى VLAN1:
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.1 17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08 17.4.3.1.1.0.1.2.27.80.145 = Hex: 00 01 02 1B 50 91 17.4.3.1.1.0.1.3.72.77.90 = Hex: 00 01 03 48 4D 5A 17.4.3.1.1.0.1.3.72.221.191 = Hex: 00 01 03 48 DD BF ...
ملاحظة: قم بتوفير رقم شبكة VLAN المناسب بعد سلسلة المجتمع. في هذا مثال، هو VLAN1.
يسرد الأمر كل ماك عنوان أن يتلقى يكون علمت على كل ميناء أن ينتسب إلى VLAN 1.
أصدرت هذا أمر أن يحدد الجسر ميناء رقم ل VLAN 1:
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.2 17.4.3.1.2.0.0.12.7.172.8 = 13 17.4.3.1.2.0.1.2.27.80.128 = 13 17.4.3.1.2.0.1.2.27.80.145 = 13 17.4.3.1.2.0.1.2.163.145.225 = 13 ...
ملاحظة: VLAN 1 هو dot1dTpFdbPort، أو .1.3.6.1.2.1.17.4.3.1.2.
قم بإصدار هذا الأمر لتعيين منفذ الجسر إلى ifIndex، OID.1.3.6.1.2.2.1.1:
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.1.4.1.2 17.1.4.1.2.13 = 2 17.1.4.1.2.14 = 3 17.1.4.1.2.15 = 4 17.1.4.1.2.16 = 5
يستعلم هذا الأمر dot1dBasePortIfIndex، والذي يحتوي على OID .1.3.6.1.2.17.1.4.1.2.
أستخدم الأمر walk مع ifName لربط قيمة ifIndex باسم منفذ صحيح.
قم بإصدار هذا الأمر:
ملاحظة: يحتوي ifName على OID .1.3.6.1.2.1.31.1.1.1.1.
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.31.1.1.1.1 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.1 = VL1 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.3 = Fa0/2 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.4 = Fa0/3 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.5 = Fa0/4 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.6 = Fa0/5 ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.7 = Fa0/6 ...
أربط عنوان MAC بالمنفذ الذي تم تعلم العنوان عليه.
من الخطوة 1، عنوان MAC:
17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08
من خطوة 2، الجسر يخبر ميناء أن ال mac عنوان ينتسب إلى جسر ميناء رقم 13:
17.4.3.1.2.0.0.12.7.172.8 = 13
من الخطوة 3، يحتوي منفذ الجسر رقم 13 على ifIndex رقم 2:
17.1.4.1.2.13 = 2
من خطوة 4، ال ifIndex 2 يماثل إلى ميناء إثرنيت سريع 0/1:
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1
علمت ال MAC عنوان 00 00 0C 07 AC 08 على ميناء Fa0/1.
قارن هذا الاستنتاج مع ناتج من:
العرض حدبة أمر حركي لمحولات CatOS
الأمر show mac لمبدلات برنامج Cisco IOS Software
هنا إخراج النموذج:
crumpy# show mac Dynamic Address Count: 58 Secure Address Count: 2 Static Address (User-defined) Count: 0 System Self Address Count: 51 Total MAC addresses: 111 Maximum MAC addresses: 8192 Non-static Address Table: Destination Address Address Type VLAN Destination Port ------------------- ------------ ---- ------------------- 0000.0c07.ac08 Dynamic 1 FastEthernet0/1 0001.021b.5091 Dynamic 1 FastEthernet0/1 0001.0348.4d5a Dynamic 1 FastEthernet0/1 0001.0348.ddbf Dynamic 1 FastEthernet0/1 0001.972d.dfae Dynamic 1 FastEthernet0/1 0002.55c6.cfe7 Dynamic 1 FastEthernet0/1 0002.7d61.d400 Dynamic 1 FastEthernet0/1 …