1.本文檔的狀態
本RFC是RFC1065的改進,同時修正了一些印刷上的錯誤,技術內容并未作改變。
本文檔提供了基于TCP/ip網絡的治理結構和標記的普通定義。非凡的,除了描述了治理信息庫和網絡治理協議,本文檔還提供了一種簡單、可行的架構和系統來治理基于TCP/IP的網絡,非凡是INTERNET。
因特網活動組織建議所有的IP和TCP實現應該是可網絡治理的。這意味著要實現因特網治理信息庫MIB(RFC-1156)和SNMP(RFC1157)或CMOT(RFC1095)這兩種建議的治理協議中至少一種。值得一說的是,現在SNMP已經是完全的INTERNET標準,而CMOT還是個草案。可以從HostandGatewayRequirementsRFCs中獲得該標準得更多的信息。
請參考最新版的“Internet正式協議標準”來獲得本協議的標準化程度和狀態。
本文檔的發布不受任何限制。
2.介紹
本文描述的是用于治理TCP/IP網絡的一般結構和方法,網絡治理的對象信息模型和一系列用來描述治理信息的普通類。結構的正式描述使用了抽象語法描述(ASN.1)。
本文不說明具體的解決方法,也不是什么協議和數據結構,假如需要這方面的內容請參閱SNMP和MIB的說明。
在IEEE中有文章是關于Internet治理結構和方法的,本文基本上來自于這篇文章,但在以下幾方面有所不同:那篇文章主要說明OSI類型網絡的治理,對于SNMP并不適用。
本文要達到兩個目標:簡單性和可擴展性,雖然網絡治理的研究已經開展了許多年,但是對這方面問題的理解的深度和廣度不見得有多好。通過給出一個通用的SMI,可以為未來的發展打好一個基礎。
3.治理信息的結構和標記
治理對象通過虛擬信息存儲訪問,我們稱這一結構為治理信息庫或MIB。MIB中的對象以ASN.1定義。
每個對象有自己的名字,語法和編碼。名字就象對象標記,它是一個治理治理用的名字。
對象類型的請求定義了和對象類型相一致的抽象數據結構。雖然這可以通過ASN.1進行定義,但在本文中還是加以了限制。這種限制是為了定義的結果更為一般。
對象類型的編碼說明對象類型的實例如何通過對象的類型語法表示。通常將對象的語法和編碼通過對象的定義進行連結,這也是對象在網絡上傳輸的形式。
至于定義MIB或治理協議,這不是本文的工作,本文只是通過一個綱領性的說明陳述一般性的原則。當然,在有些時候,定義也加以了限制,這是為某種特定的治理而加的,在具體實現時可以不用管這些限制。
3.1名字
名字用于標記治理對象。對象標記概念用于進行定義。無論對象是什么語義,對象標記是確定某些對象的方法。對象標記是根據全局樹而來的整數串。這個樹和一些標記過的結點相連。每個結點還有子結點。我們對對象標記的理解應該是建立在對這個全局樹進行遍歷的基礎上的。一個標記就是一個簡單的文本描述和一個整數。
根結點不標記,它至少要有三個子結點,一個子結點由國際標準化組織治理,標記為iso(1);另一個由CCITT治理,標記為ccitt(0);第三個由兩者共同治理,標記為:joint-iso-ccitt(2)。
在iso(0)下,ISO有一個子樹用于其它國際組織,org(3),對于子結點來說,兩個留給美國國家標準和技術局,另一個由NIST轉給美國國防部,dod(6)。
就本文來說,DoD未指明它如何治理自己的對象標記子樹。本文假設DoD將給Internet分一個區,它由IAB由下面的方式治理:
internetOBJECTIDENTIFIER::={isoorg(3)dod(6)1}
也就是說,對象標記的Internet子樹以1.3.6.1開始。本文作為IAB同意的標準,說明治理對象標記子樹的策略。開始時,四個結點是這樣的:
DirectoryOBJECTIDENTIFIER::={internet1}
mgmtOBJECTIDENTIFIER::={internet2}
eXPerimentalOBJECTIDENTIFIER::={internet3}
PRivateOBJECTIDENTIFIER::={internet4}
3.1.1.目錄
directory(1)子樹留作以后OSI目錄如何被用作Internet目錄。
3.1.2.Mgmt
mgmt(2)子樹用于標記定義在IAB文件中的對象。例如,假如定義初始Internet標準MIB的RFC被指定為治理文檔號1,此RFC可以被用作對象標記:{mgmt1}或1.3.6.1.2.1來定義Internet標準的MIB。本文的后半部分將定義新的MIB標準。
3.1.3.Experimental
experimental(3)子樹定義用于Internet實驗的對象。例如實驗者可能接收到定義號17,那可用的對象標記就是:{experimental17}或1.3.6.1.3.17。IANA對如何使用此子樹提出要求。
3.1.4.Private
private(4)子樹用于定義其它對象。此子樹最初只有一個孩子:
enterprisesOBJECTIDENTIFIER::={private1}
使用enterprises(1)時可以答應提供網絡子系統的機構來注冊它們產品的模型。
在接收到子樹時,一個企業可以在子樹中定義新的MIB對象。而且此企業也應該在此子樹下注冊它的網絡子系統,這樣可以在治理協議中進行有效地治理。例如,假如"Flintstones,Inc."生產網絡子系統,它會要求一個在企業子樹下的結點,這樣的結點可能進行如下編號:
1.3.6.1.4.1.42,它可能在此下面注冊它自己的路由器為:1.3.6.1.4.1.42.1.1
3.2.語法
語法是根據對象類型定義對象結構,定義時使用ASN.1,但ASN.1中的一些通用化需要加以限制。
在ASN.1中ObjectSyntax定義可用于不同對象類型的語法。
3.2.1.原始類型
ASN.1中的原始類型包括INTEGER,OCTETSTRING,OBJECTIDENTIFIER和NULL。
3.2.1.1.枚舉整數的指導方針
如枚舉整數列為一個對象類型,擁有值0的命名號不應該出現在枚舉列表中,而且不能使用此值。
3.2.2.構造類型
ASN.1中的SEQUENCE可用,使用它可以建立對于列或表。
對于列,語法如下:SEQUENCE{<type1>,...,<typeN>}
其中<type>是原始類型。
對于表,語法如下:SEQUENCEOF<entry>
其中<entry>指向列。
3.2.3.定義的類型
答應在一個新應用產品的范圍內定義新類型,新類型必須能夠分解為基本類型,列,表或其它新類型。
3.2.3.1.NetworkAddress
此類型代表多個可能的協議族中的一個地址格式。當前只有只答應Internet協議族。
3.2.3.2.IpAddress
這種定義的類型代表32位的IP地址,它表示為長度為4的字符串。在ASN.1類型使用ASN.基本編碼規則進行編碼時,只能使用原始編碼形式。
3.2.3.3.Counter
這種定義的類型代表一個非負整數,它只能增加,直到最大值。當達到最大值后,它會返回0重新開始。本文指定它的最大值為2^32-1,也就是4294967295。
3.2.3.4.Gauge
此類型代表一個非負整數,它可以可以增加或減少,但在最大值時停止。本文指定它的值為2^32-1,也就是4294967295。
3.2.3.5.TimeTicks
此類型為非負整數,用于記錄從一時間點起經過了多少個百分之一秒的時間。
3.2.3.6.Opaque
此類型支持對ASN.1語法進行擴充的能力。只類型只要求接收方能夠對數據進行解密,并沒有要求接收方一定要理解其內容。
3.3.編碼
在對象類型的實例實編碼以后,它的值可以將ASN.1的基本編碼規則用于對象類型的語法而進行傳輸。
4.治理對象
本文不定義MIB對象,但本文指定一種可被其它文章使用的的格式。一個對象定義通常包括下面五個域:
*OBJECT:是一個字符串名,它叫OBJECTDESCRIPTOR,它指定對象類型,這個類型和OBJECTIDENTIFIER相對應。
*語法:對象類型的抽象語法。它必須可以解析到ASN.1類型ObjectSyntax的一個實例上。
*定義:對對象類型語義的文本描述。實現中必須保證對象的實例滿足這個定義,因為這個MIB是用于多廠商環境中的,要照顧到它們的情況。對象在不同的機器上有相同的意義是很重要的。
*訪問:取只讀,讀寫,只寫或不能訪問這四個值。
*狀態:強制(mandatory),可選(optional)或過時的(obsolete)。
以后的文檔中可能會定義其它域。
4.1.對象名
在Internet標準中的MIB中的對象名中不能有0,此值留作擴展。每個和對象類型相對應的OBJECTDESCRIPTOR應該有獨一無二的,可記憶和打印的字符串名。這對于人們的閱讀和開發對象用戶接口的表機制很有好處。
4.2.對象類型和實例
一個對象類型就是一類可治理的對象的定義,而對象實例就是一個對象類型的實例,而這個實例已經有值了。例如,路由表入口的定義在MIB中已有定義,這個定義和一個對象類型相關,給定路由表的單個入口中的那個存在一會兒的值就是對象類型的實例。
MIB中定義了許多對象類型,每個類型通過OBJECTIDENTIFIER標記,同時也有一個文本名,稱為OBJECTDESCRIPTOR。這標明MIB中的數據假如被訪問是由特定協議決定的,而不在MIB中規定。
一個對象類型可以定義在MIB中,這樣一個對象類型的實例可以代表一些信息的集合,也被一些次要對象類型號的實例所代表。例如,假設下面的對象是定義在MIB中的:
OBJECT:atIndex{atEntry1}
Syntax:INTEGER
Definition:物理地址的接口號
access:read-write.
Status:mandatory.
OBJECT:atPhysAddress{atEntry2}
Syntax:OCTETSTRING
Definition:與介質相關的物理地址
Access:read-write.
Status:mandatory.
OBJECT:atNetAddress{atEntry3}
Syntax:NetworkAddress
Definition:與介質相關物理地址相對應的網絡地址
Access:read-write.
Status:mandatory.
第四個對象類型也可能被定義在MIB中:
OBJECT:atEntry{atTable1}
Syntax:
AtEntry::=SEQUENCE{
atIndex
INTEGER,
atPhysAddress
OCTETSTRING,
atNetAddress
NetworkAddress
}
Definition:地址映射表中的入口
Access:read-write.
Status:mandatory.
每個對象類型的實便包括由前三個對象類型實例表示的信息。把這種定義出的對象類型稱為列表(list)。同樣的,列表類型的集合可以組成表(table)。例如,第五個對象的定義如下:
OBJECT:atTable{at1}
Syntax:SEQUENCEOFAtEntry
Definition:地址映射表
Access:read-write.
Status:mandatory.
上面的地址映射表就是由AtEntry的集合構成的。讓我們想一下如何獲得表中的對象。下面我們看一個例子,下面是一個對象類型:
{atPhysAddress}
而下面是與協議相關的對象實例:
{atNetAddress}={internet"10.0.0.52"}
這兩個量組成的偶對將可以參照atPhysAddress的實例。這里的atPhyAddress是任何與atNetAddress相關值為{internet"10.0.0.52}的地址映射表入口的一部分。下來我們看看如何訪問一個包中的集合對象(list),將對象類型命名為:
{atEntry}
然后指定與協議相關的對象實例:
{atNetAddress}={internet"10.0.0.52"}
上面的對象實例訪問表中入口的所有實例,其中表與atNetAddress的值{internet"10.0.0.52"}相關。
每個治理協議均提供了訪問非集合對象類型的機制,每個治理協議也說明了它是否支持訪問集合對象類型。而且,協議必須指定當一個對象類型/實例對訪問多個類型的實例時會返回哪個實例。為支持不同的治理協議,所有能夠使對象能夠區分的信息由對象類型的實例定義在MIB中。
4.3.治理對象宏
可以使用OBJECT-TYPE宏來處理MIB中的定義。這個宏答應一個對象類型的主要訪問采取統一的表示方式。
OBJECT-TYPEMACRO::=
BEGIN
TYPENOTATION::="SYNTAX"type(TYPEObjectSyntax)
"ACCESS"Access
"STATUS"Status
VALUENOTATION::=value(VALUEObjectName)
Access::="read-only"
"read-write"
"write-only"
"not-accessible"
Status::="mandatory"
"optional"
"obsolete"
END
根據上面定義的對象類型,我們可以看到下面定義在MIB中的定義:
atIndexOBJECT-TYPE
SYNTAXINTEGER
ACCESSread-write
STATUSmandatory
::={atEntry1}
atPhysAddressOBJECT-TYPE
SYNTAXOCTETSTRING
ACCESSread-write
STATUSmandatory
::={atEntry2}
atNetAddressOBJECT-TYPE
SYNTAXNetworkAddress
ACCESSread-write
STATUSmandatory
::={atEntry3}
atEntryOBJECT-TYPE
SYNTAXAtEntry
ACCESSread-write
STATUSmandatory
::={atTable1}
atTableOBJECT-TYPE
SYNTAXSEQUENCEOFAtEntry
ACCESSread-write
STATUSmandatory
::={at1}
AtEntry::=SEQUENCE{
atIndex
INTEGER,
atPhysAddress
OCTETSTRING,
atNetAddress
NetworkAddress
}
5.MIB擴展
每個Internet標準MIB文檔都將前面文檔標記為過時的。在下面標記處標記的名字是在改變版本時沒有進行過改變的:
{mgmtversion-number}
新版本可以會
(1)公布老的對象類型過時,但不刪除它們的名字;
(2)通過添加非集合對象類型到列表(list)中對象類型而擴展一個對象類型的定義;
(3)要么就索性定義新的對象。
新版本不能在未改變對象名字的情況下改變對象的語義。這樣就保證了相同的名字在不同的版本下會有相同的語義,這樣在實現起來就比較方便。
但是,治理代表可能會返回一個對象,它是需要對象的一個超集。考慮到健壯性,治理程序應該忽略掉這些附加信息。但是我們要注重:假如一個實例沒有和希望的對象類型相同的語法,控制將會失敗。在監視和控制的情況下,由一個操作返回的對象名必須和操作要求的對象名一致。
6.定義
RFC1155-SMIDEFINITIONS::=BEGIN
EXPORTS--EVERYTHING
internet,directory,mgmt,
experimental,private,enterprises,
OBJECT-TYPE,ObjectName,ObjectSyntax,SimpleSyntax,
applicationSyntax,NetworkAddress,IpAddress,
Counter,Gauge,TimeTicks,Opaque;
--thepathtotheroot
internetOBJECTIDENTIFIER::={isoorg(3)dod(6)1}
directoryOBJECTIDENTIFIER::={internet1}
mgmtOBJECTIDENTIFIER::={internet2}
experimentalOBJECTIDENTIFIER::={internet3}
privateOBJECTIDENTIFIER::={internet4}
enterprisesOBJECTIDENTIFIER::={private1}
--definitionofobjecttypes
OBJECT-TYPEMACRO::=
BEGIN
TYPENOTATION::="SYNTAX"type(TYPEObjectSyntax)
"ACCESS"Access
"STATUS"Status
VALUENOTATION::=value(VALUEObjectName)
Access::="read-only"
"read-write"
"write-only"
"not-accessible"
Status::="mandatory"
"optional"
"obsolete"
END
--namesofobjectsintheMIB
ObjectName::=
OBJECTIDENTIFIER
--syntaxofobjectsintheMIB
ObjectSyntax::=
CHOICE{
simple
SimpleSyntax,
--notethatsimpleSEQUENCEsarenotdirectly
--mentionedheretokeepthingssimple(i.e.,
--preventmis-use).However,application-wide
--typeswhichareIMPLICITlyencodedsimple
--SEQUENCEsMayappearinthefollowingCHOICE
application-wide
ApplicationSyntax
}
SimpleSyntax::=
CHOICE{
number
INTEGER,
string
OCTETSTRING,
object
OBJECTIDENTIFIER,
empty
NULL
}
ApplicationSyntax::=
CHOICE{
address
NetworkAddress,
counter
Counter,
gauge
Gauge,
ticks
TimeTicks,
arbitrary
Opaque
--otherapplication-widetypes,astheyare
--defined,willbeaddedhere
}
--application-widetypes
NetworkAddress::=
CHOICE{
internet
IpAddress
}
IpAddress::=
[APPLICATION0]--innetwork-byteorder
IMPLICITOCTETSTRING(SIZE(4))
Counter::=
[APPLICATION1]
IMPLICITINTEGER(0..4294967295)
Gauge::=
[APPLICATION2]
IMPLICITINTEGER(0..4294967295)
TimeTicks::=
[APPLICATION3]
IMPLICITINTEGER(0..4294967295)
Opaque::=
[APPLICATION4]--arbitraryASN.1value,
IMPLICITOCTETSTRING--"double-wrapped"
END
7.感謝
本文檔的完成要感謝三方面提供的草案:
首先是MITRE公司的LeeLabarre,他是NETMANSMI[4]的作者。
其次是許多對本文檔的原始版本提供了有價值建議的一些個人:
JamesR.Davin,Proteon
MarkS.Fedor,NYSERNet
CraigPartridge,BBNLaboratories
MartinLeeSchoffstall,RensselaerPolytechnicInstitute
WengyikYeong,NYSERNet
最后是IETFMIB工作組:
KarlAuerbach,EpilogueTechnology
K.RameshBabu,Excelan
LawrenceBesaw,Hewlett-Packard
JeffreyD.Case,UniversityofTennesseeatKnoxville
JamesR.Davin,Proteon
MarkS.Fedor,NYSERNet
RobbFoster,BBN
PhillGross,TheMITRECorporation
BentTorpJensen,ConvergentTechnology
LeeLabarre,TheMITRECorporation
DanLynch,AdvancedComputingEnvironments
KeithMcCloghrie,TheWollongongGroup
DaveMackie,3Com/Bridge
CraigPartridge,BBN(chair)
JimRobertson,3Com/Bridge
MarshallT.Rose,TheWollongongGroup
GregSatz,cisco
MartinLeeSchoffstall,RensselaerPolytechnicInstitute
LouSteinberg,IBM
DeanThroop,DataGeneral
UnniWarrier,Unisys
8.參考
[1]Informationprocessingsystems-OpenSystemsInterconnection,
"SpecificationofAbstractSyntaxNotationOne(ASN.1)",
InternationalOrganizationforStandardization,International
Standard8824,December1987.
[2]McCloghrieK.,andM.Rose,"ManagementInformationBasefor
NetworkManagementofTCP/IP-basedInternets",RFC1156,
PerformanceSystemsInternationalandHughesLANSystems,May
1990.
[3]Case,J.,M.Fedor,M.Schoffstall,andJ.Davin,TheSimple
NetworkManagementProtocol",RFC1157,UniversityofTennessee
atKnoxville,PerformanceSystemsInternational,Performance
SystemsInternational,andtheMITLaboratoryforComputer
Science,May1990.
[4]LaBarre,L.,"StrUCtureandIdentificationofManagement
InformationfortheInternet",InternetEngineeringTaskForce
workingnote,NetworkInformationCenter,SRIInternational,
MenloPark,California,April1988.
[5]Cerf,V.,"IABRecommendationsfortheDevelopmentofInternet
NetworkManagementStandards",RFC1052,IAB,April1988.
[6]Cerf,V.,"ReportoftheSecondAdHocNetworkManagementReview
Group",RFC1109,IAB,August1989.
[7]Informationprocessingsystems-OpenSystemsInterconnection,
"SpecificationofBasicEncodingRulesforAbstractNotationOne
(ASN.1)",InternationalOrganizationforStandardization,
InternationalStandard8825,December1987.
9.安全的考慮:
本文檔并未考慮安全問題。
10.作者地址:
MarshallT.Rose
PSI,Inc.
PSICaliforniaOffice
P.O.Box391776
MountainView,CA94039
Phone:(415)961-3380
EMail:mrose@PSI.COM
KeithMcCloghrie
TheWollongongGroup
1129SanAntonioRoad
PaloAlto,CA04303
Phone:(415)962-7160
EMail:sytek!kzm@HPLABS.HP.COM
新聞熱點
疑難解答