簡介
在基於SNMP的網路管理應用程式中,最常用的識別符號之一是介面索引(ifIndex)值。IfIndex是與物理或邏輯介面關聯的唯一標識號。對於大多數軟體,ifIndex是介面的名稱。儘管相關RFC不要求特定ifIndex值與其介面之間的對應關係在重新啟動後維護,但裝置清單、計費和故障檢測等應用依賴此對應關係。
RFC1213(MIB2)定義初始ifIndex,如下所示:
"每個介面都由ifIndex對象的唯一值標識,並且ifIndex的說明限制其值,如下所示:其值範圍介於1和ifNumber的值之間。每個介面的值必須至少從實體的網路管理系統的一次重新初始化到下一次重新初始化之間保持恆定。」
但是,根據最新的IETF RFC 2863(介面組MIB),已更改ifIndex定義,以適應允許動態新增或刪除網路介面的裝置數量的增加。RFC 2863採用的解決方案是刪除ifIndex的值小於ifNumber的值的要求,並保留ifNumber及其當前定義。
必要條件
需求
本文件沒有特定先決條件。
採用元件
有關IOS平台和映像對此功能的最新支援資訊,您可以在Feature Navigator Tool中搜尋Interface Index Persistence。
在以下平台上從Cisco IOS版本12.1(5)T(Cisco IOS版本12.2中更高版本)開始支援此功能:
-
思科800系列
-
思科1400系列
-
Cisco 1600系列(包括1600R系列)
-
思科1700系列
-
思科2500系列
-
思科2600系列
-
思科2800系列
-
Cisco 3600系列(包括Cisco 3620、3640和3660)
-
思科3800系列
-
思科4500系列
-
思科AS5300
-
思科AS5400
-
思科AS5800
-
思科7100系列
-
Cisco 7200系列(包括Cisco 7202、7204和7206)
-
Cisco 7500系列(包括Cisco RSP7000)
在Cisco IOS版本12.0S中,從以下平台上的Cisco IOS版本12.0(11)S啟動介面索引永續性支援:
-
思科7200系列
-
思科7500系列
-
Cisco 12000 GSR系列
注意:對於CatOS裝置,IfIndex對於物理和VLAN介面是自動持續的,但對於EtherChannel介面則不持續。此功能預設處於開啟狀態,無法將其關閉。MSFC上的IOS軟體不支援ifIndex永續性。Catalyst 6000 IOS(也稱為本機模式)支援從12.1(13)E開始的ifIndex持續性。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您在即時網路中工作,請確保在使用任何命令之前瞭解其潛在影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
IfIndex永續性功能之前的問題
考慮以下情況:簡單的監控軟體(如MRTG)正在輪詢路由器特定串列介面通往Internet的介面統計資訊。
例如,重新初始化之前,您可能會有以下條件:
物理埠 |
IfIndex |
乙太網埠 |
1 |
令牌環埠 |
2 |
串列埠 |
3 |
因此,管理應用程式正在輪詢與串列埠對應的ifIndex 3。
路由器重新初始化(重新引導、重新載入等)後,條件會變更為類似以下的樣子:
物理埠 |
IfIndex |
乙太網埠 |
3 |
令牌環埠 |
1 |
串列埠 |
2 |
管理應用程式繼續輪詢ifIndex 3,它現在與乙太網埠對應。因此,如果管理應用程式未收到陷阱警告(例如,路由器已重新啟動),則輪詢的統計資訊可能完全錯誤。
IfIndex永續性概述
Cisco IOS版本增加了對可在重新引導後持續的ifIndex值的支援。介面索引永續功能通過唯一標識流量和SNMP統計資訊的輸入和輸出介面,在收集和處理網路管理資料時提供更高的準確性。由於將每個介面與已知實體(如ISP客戶)相關聯,因此介面索引永續性功能可更有效地利用網路管理資料。
IfIndex永續性意味著ifDescr(或ifName)對象值與IF-MIB生成的ifIndex對象值之間的對映在重新引導後會保留。
此功能尤其適用於:
使用ifIndex永續性值
組態
Router(config)# snmp-server ifindex persist
Router(config-if)# snmp-server ifindex persist
有關配置的詳細資訊,請參閱SNMP IfIndex永續性。
限制
不能在子介面上使用特定於介面的ifIndex persistence命令([no] snmp ifindex persistence)。應用於介面的命令將自動應用於與該介面關聯的所有子介面。
檢驗IfIndex永續性
要驗證ifIndex是否正確啟用,您可以在nvram中檢視ifIndex-table的內容。
Router # dir nvram:ifIndex-table
Directory of nvram:/ifIndex-table
2 -rw- 0 <no date> ifIndex-table
126968 bytes total (114116 bytes free)
如果長度為0,則省略執行正在運行的副本的開始,這會將ifIndexes分配複製到nvram中。執行此操作後,您將看到以下內容:
Router # dir nvram:ifIndex-table
Directory of nvram:/ifIndex-table
2 -rw- 283 <no date> ifIndex-table
126968 bytes total (114088 bytes free)
檔案的格式為:
名稱 |
類型 |
說明 |
規模 |
整數32 |
此行的大小 |
IfIndex |
整數32 |
此介面為ifIndex |
enable永續性 |
整數32 |
1(如果啟用了永續性) |
ifDescr |
八位組字串 |
介面描述 |
可以將檔案複製到ftp伺服器並檢視二進位制檔案的內容。但不要編輯該檔案:不支援所有更改。在某些平台上,檔案可能以壓縮格式儲存。
線上插入和刪除
以下是插入和移除乙太網路卡的範例清單。
-
1.取出一張卡並用同一型別的卡替換。
為新卡分配相同的ifIndexes,只要新硬體上的ifDescr與舊硬體匹配
-
2.取出一張卡並用幾乎相同的卡型別替換。
如果用八埠乙太網卡替換四埠乙太網卡,則八埠卡上的前四個埠的ifIndex值與四埠乙太網介面相同。其他四個連線埠會收到新的ifIndex值。
-
3.取出一張卡並用其它型別的卡替換。
安裝新的卡型別(如新的ifDescr)時,您將收到新的ifIndex值。上一個ifIndex未使用,並在ifIndex分配中建立一個間隙。
-
4.取出一個卡,將其放在同一路由器的不同插槽中。
將卡放入另一個插槽時,有一個新的ifDescr,因此您將收到新的ifIndex值。上一個ifIndex未使用,並在ifIndex分配中建立一個間隙。
注意:必須執行copy running starting命令才能將新分配的ifIndex值保留為示例2、3和4。
相關資訊