isis详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Kennedy Clark,
Jeff Doyle,
Bassam Halabi,
Andrew Bruce Caslow
Valeriy Pavlichenko. Get
ISIS是一个分级的链接状态路由协议,基于DECnet PhaseV 路由算法。
ISIS可以在不同的子网上操作,包括广播型的LAN、WAN和点到点链路。
ISIS是一个链接状态协议,实际上与OSPF非常相似,它也使用Hello协议寻找毗邻节点,使用一个传播协议发送链接信息。
ISIS消息使用序列号,但它只是一个简单的加法计数器。
当计数器计到最大值时,一个ISIS路由器没有别的选择,只能伪造一个错误触发对所有旧信息的刷新。
然而,因为序列号有3 2 比特长,使得到达最大值之前有很大的序列号空间,所以这不是什么问题。
但是,至少存在两个技术问题:ISIS 使用一个小的度量值(6 比特),严重限制了能与它进行转换的信息;而且链接状态也只有8 比特长,路由器能通告的记录只有256个。
一个非技术问题是ISIS受OSI约束,使得与OSPF相比它的发展比较缓慢。
这个限制的原因是由于SPF的要求;但现在的Wide-metric使这个范围变成24位的扩展解决了这个问题。
一个非技术问题是ISIS受OSI约束,使得以前与OSPF相比它的发展比较缓慢。
但现在的ISIS在非OSI即RFC方面(Integrated)ISIS有了很多的扩展使得他的发展比OSPF更容易实现对新的要求的支持如IPV6或者TE而且更简单易实现
一个路由器是intermediate system(IS),一个主机就是end system(ES),在一个主机和路由器之间运行的协议叫ES-IS,路由器与路由器之间运行的协议是IS-IS
一个subnetwork属下的接口叫:subnetwork point of attachment(SNPA),它只是一个概念上的东西,实际上它是一个subnetwork提供的服务点,由SPNA定义的,不是实际的物理界面,SNPA的概念特性对应于子网的概念特性。
PDU:就是一个OSI层上的一个节点到它的另一端(peer)的对应层上的节点,所以一个帧也叫做Date Link PDU(DLPDU),也因此一个网络层的packet也叫做network PDU(NPDU),这个date unit功能类拟于OSPF的LSA,我们称它为Link State PDU(LSP),与LSA不同的是它封装在OSPF报头之后,然后才到IP数据包。
an LSP is itself a packet.
=====================
ISIS AREAS
=====================
ISIS和OSPF一样建立一个双层分级结构拓扑,但和OSPF不同的是ISIS划分area 是连接中,也就是说两台路由器中间来划分area
L1_Router---------|----------L2_Router
以上的竖线就是ISIS划分的area的地方,而OSPF则不是,它是在一个路由器当中划分的,一个路由器中只要有两个接口接到不同的area,这个路由器就叫做ABR
area0-------ABR_Router------area1
ISIS中对路由器的称呼又和OSPF又所不同,它只有三类,一个是完全在一个area 内的,OSPF叫内部路由器,ISIS叫L1,而OSPF的ABR在ISIS中叫做L1/L2,还有一类是backbone里的路由器,全都叫做L2,这样,L1/L2路由器就会维护两个line state datebase,而与ABR不同的是,L1/L2路由器不通告L2的路由给L1,因此所有的L1路由器永远不会知道area外的路由,这种情况和OSPF的tutally stubby area是非常像的,如果L1内的路由目的地是在自已的area以外,这个
L1路由将被转发到一个L1/L2路由器上,而L1/L2路由器传送一个L1的路由到另一个area时,它在LSP设置一个bit叫Attached(ATT) bit9来告诉别的L1路由器这条路由可以到达。
OSPF用spf算法来计算一个area内的路由器,而ISIS在这一点上也是不同的,它在内部area (inter-area) 时所使用的方法是distance vector算法。
ISIS中L1/L2路由器维护两个分离的L1和L2的link state datebase,将计算完全独立的L1和L2拓扑自已SPF tree。
ISO 10589 中说ISIS路由器可以使用virtual link来连接物理分离的area到backbone,这和OSPF是一样的,但是这个功能CISCO就做不到的,反而别的路由器生产商可以做到。
=================
AREA ID
=================
一个L1,也就是说完全在一个area内的路由器,它的area ID或者说area address 是与该路由器的全部参数有关,也就是说不是什么一个接口的最高IP地址就能决定一个area ID,这和OSPF又是大大的不同。
ISIS可以有上限为三个的area address,这在area transitions的是候是很有用的。
在一个domain中,一个ISIS的路由器一定要有一个唯一标识,这可以用system ID 来完成,这个system ID与OSPF的router ID是一样的,area ID和sytem ID可以用一个地址,==========both the area ID and the system ID are defined on an ISIS router by a single address the network entrigy title。
注:system ID就是router ID,在area内的时候做识别用,area ID则在area 之间做识别用。
=================
Network Entity Titles
=================
虽然ISIS使用TCP/IP,但它仍然是CLNP协议,因而ISIS中跑的数据包叫CLNS PDUs,这样子就算一个完全是IP环境,一个ISIS的路由器也一定有ISO地址,ISO地址就是一个network address,ISO 8348.10 描述network entity titles,长度可以是8-20 字节(octetes)它描述该设备area ID and system ID,
注:NET是为一个ISIS路由进程指定的区域地址和系统标识。
该参数可以是一个地址,也可以是一个名字。
ISO为不同的系统设计了很多东西给Network entity titles,这个NET的地址格式可以有很大的灵活性和扩展性。
NET可长可短,包含的信息可多可少,这要视忽你的需要,但是有一点要记住,在一个routing domain里,system ID的长度一点一样!一般来说是6个字节,也一般使用标识的接口的MAC的地址。
当然,system ID在一个routing domain一定要是是独一无二的。
==================
ISIS Functionla Organization
==================
OSI model 中的network layer是由两小layer组成的,一个是subnetwork independetn sublayer, 下面的半层是subnetwork dependent sublayer,根据名字来看就知道dependent sublayer与下面的date link layer有着莫大的关系,而independent layer则独立的layer。
当然,network layer要再细分会分成更复杂,但这时太不细讲了。
subnetwork dependent functions
它把不同类型的date link的帧规律化,再上交给dependent layer
下面是它的具体功能:
-从指定的不同的subnetwork接收或者发送PDUs。
-在subnetwork交换ISIS的hellp PDUs来发现邻居和建立adjacentcies,
-维护adjacencies
-链路信号分离,或者说传送OSI的PDUs的过程和传送IP数据包的过程
OSPF中定义了四种网络类型,而ISIS中只有两个,呵呵,这就太好了,总算看到比OSPF简单的东西了,以前在看OSPF四种拓扑时曾晕倒数次,这下对这里应该快速浏览一下就行了吧。
:)
ISIS只有两种类型,一种是broadcast subnetwork 和 point to point 或者说是 general topology subnetworks,
broadcast subnetwork 就算于OSPF的multi-access
p to p 就是nonbroadcast, subnewwork 可以是 PVC,像T1,又或者用动态来建立,如x.25的SVCs。
好了,这里拓扑就已经讲完了 :)
======================
neighbors and adjacencies
======================
ISIS用交换ISIS hello PDUs发现邻居,10秒发一次,这和OSPF又是一样的 :),改这个参数用 isis hello-interval 命令
虽然这个hello PDUs在broadcast和p to p 这两种拓扑中略有一点不同,但是本质信息却是相同的,如自已的识别,能力,发heloo的接口参数。
如果两个邻居各自能力和接口参数协商好了,那他们就成为adjacent了。
ISIS的L1和L2的邻居是分开来========isis froms separate adjacencies for L1 and L2 neighbors. L1 router from L1 adjacencies with L1 and L1/L2 neighbors, and L2 router from L2 adjacencies with L2 and L1/L2 neighbors. neighboring L1/L2 router from both an L1 adjcacnecy and an L2 adjacency. 一个L1和L2路由器不会adjacent关系
一旦adjacency的关系建立后,hello PDUs就扮演keepalive的角色,呵呵,好熟悉喔 :)
关于hold time 的概念下面举一个例子,A路由器在hello中还有一个hold time 的参数,通知它的邻居B在宣告A路由器完蛋前需要等等下一个hello的时间有多久,如果我没记错的话OSPF好像是4次。
这么说他比OSPF收敛要快10秒了。
改这个参数用 isis hello-multiplier,呵呵,命令太多,比较难记,不过很多命令都有规律,一般改OSPF的东西前面的命令是 ip ospf,不懂时打个?号就行了,而改ISIS的东西用 isis ? 试试
如果想看ISIS的neighbor表可以用:show clns is-neighbors
在这个命令中
system id 和 interface就不说了,state 可以是 init 表明邻居是adjacent,priority参数是选DR时用的(broadcast network)
circuit ID的意思是这样的,它的第一个字节说的是ISIS接口的唯一标识,如果这个接口是在一个broadcast multiacess network里,那ciscuit ID 将与DR的system ID并置,就是接在一起的意思。
和这个全部东西加起来就是大家所知的LAN ID,(又来一个新的ID,faint)或者叫它pseudonde(匿名)ID更好一些,下面兴个例子
circuit ID是0000.0c76.5b7c.02
system ID是0000.0c76.5b7c
pseudonode ID是02
最后一个是adjacency的格式:
intergrated ISIS的格式永远是phase v
OSI/DECnet phase V.
indicating OSI/DECnet phase v. the only other adjacency format is DECnet phase IV.
今天状态不错,看了好多,虽然ISIS看过一次,但是这样细看时才发现,原来很多好东西都漏掉了,这样看真是很慢,但是很扎实,以后只要略复习一两次就可以记得很牢,看来磨刀不误砍柴功是有点道理的,cisco的东西好像很多,多得不可能看完,但其实很多东西都是重复的,只是高级的东西往往要把初级的先讲一
次,所以厚厚的资料往往令人心底发寒,还加上网络的东西不是独立的,所以讲某些知识点的时候常要涉及到别的知识,虽然这些别的知识可能已经讲过,但为了能完整的介绍该知识点,只好把所有涉及的东西都讲一遍,所以这也是造成书厚的原因,所以学一个就要吃掉一个,这样以后就可以跳跳跳了。
否则基础不好,以后动则牵动你那不牢的根基,学习来会倍感无趣,最终变成为了该死的前钱途而学,这样本来看书的享受时间会变成强迫式的恶性循环,那你的路就难走了。
不过我觉得我说的比转适合有一定路由器操作经验的人,没有这类经验的人最需要的就是实验环境,否则很难吃掉知识点,就算是吃了也消化不了,所以转化知识成为身体的一部份,这才是最最最紧迫的。
========================
Designated Routers
========================
在broadcast multi-access中,ISIS选举一个DR,这和OSPF是一样的,ISIS定义一个路由器为一个虚的点(pseudonode), 这个虚的点和OSPF的DR是一样的,所二的路由器都向这个点发送通告,也就是说所有的路由器都是隶属于虚点的。
ISIS在broadcast multiaccess里和所有的neighbor 建立adjacendies关系(不止和DR)。
每一个路由器multicasts它LSPs给自已的所有的neighbor,DR使用一个叫做Sequence number PDUs (SNPs)的PUDs系统来确保LSPs的flooding的可靠传达。
ISIS的DR选择很简单,接口有一个L1的priority和L2的priority,范围是从0到127,cisco的缺省是64,要改这个参数用 isis priority 命令
路由器在它的hello里塞入priority,L1的塞进给L1 hello,L2的塞给L2的hello,如果priority设置为0,那这个路由器永远不能成为DR,又因为一个接口有两个priority,所以他可能成为L1的DR,而在L2只是普通角色,又或者成为L2的DR,在L1只是普通角色。
把circuit ID附到system ID上是很有必要的,因为一个路由器可以做为几个area 内的DR,加上这个后才能保证到LAN ID是网络内唯一标识。
ISIS的DR选择非常简单,比OSPF要简单得多,首先,ISIS没有BDR,如果DR完蛋,新的DR会马上选举,而且OSPF中DR一旦产生就不会更改(failed除外),就算是后加的路由器的优先权比原来的DR要高,也不能篡位,但是ISIS就不同了,只要加一个优先权更高的,甚至优先权一样,但是system ID高一点点,都将夺取DR的位置,随着这个新的DR的产生,新的LSPs就会flooded,这就是所谓的一朝君主一朝臣了。
========================
subnetwork independent functions
========================
这个层定义一个CLNS如何传送数据包贯穿CLNP的网络和这些服务是如何被提交到传输层的。
这一共是四个过程,update,decision,forwarding和receive
process
forwarding 和 receice process 没有什么好说的了,只是转发和接收PDUs而已,没有什么希奇的。
the update process
------------------------
update负责建立最新的L1和L2 link state datebase,L1 LSPs flooded到整个area,L2 LSPs flooded给所有的L2的adjacencies,这个范围在 IS-IS PDU formats 里有描述的。
每一个LSP包括一个 remaining lifetime, a sequence number and Checksum. remaining lieftime和OSPF中有所不同的是,LSA是从0开始增加到最大的数,而LSP是从最大的数减少到0,ISIS的最大数为1200,也就是20分钟,这个数字放在link state datebase,这个值会周期性更新,refresh时间是15分种,在lifetime还没有expire就Refresh,前后约25%左右的lifetime就reflesh,如果两个时间相差太大,LSP的lifetime到了0,还没有reflesh,那LSP在link state datebase中会保持到60秒,这中做ZeroAgeLifetime.
这段话说当一个router收到的LSP的Checksun是错误的时候,他会更新/清除这条他的datebase中的LSP-通过把这个LSP的Remain Lifetime值设置为0并把这条LSP flooding出去。
这个purge的行为使得产生这个LSP的Router收到这条remain-lifetime 置0的LSP后发出一条新的LSP。
这是ISIS与OSPF Purge的一个区别,在OSPF中只有产生这条LSA的Router才能Purge这个LSA,而在ISIS 中任何收到这个checkSum错误的router都可以Purge 这个错误的LSA by set remain-lifetime=0(这一段是playfair翻译的,在我学ISIS的过程中,得过他很多帮助)
a error-prone subnetwork, 允许接收的路由器开启清洗这个动作会大大增加越LSP traffic,为了克服这种事,加入ignore-lsp-error命令,这样接收的路由器就会忽视这个错误的LSP,而不是take the action of purge。
因为LSP中有SNP(Sequence Number)所以接收路由器知道有一个LSP没有收到。
sequence number是一个无符号的,32 bit 线性号码,当一个路由器开始启动一个LSP,一个sequence number设成 1 , 同时,每一个随后的LSP都以加 1 来增长,当增长到最大的时候(0xFFFFFFFF),ISIS 会关闭它最少21分钟(maxage+ZeroAgeLifetime),这样来冼掉在datebase里的旧的LSP。
p to p 时,路由器直接传L1和L2 LSPs到邻居,broadcast subnetwork, LSPs 使用multiast到所有的邻居,frame 携带的L1 LSPs有一个MAC目标地址0180.c200.0014,叫做All1ISs,L2的是0180.c200.0015,叫做All2ISs.
ISIS使用SNPs来承认和接收LSPs来维护link state datebase的同步。
一共有两类SNPs,一个叫partial SNPs(PSNPs), 另一个叫 complete SNP(CSNPs).点对点使用PSNPs来明确(explicitly)承认收到LSPs,这包括下面内容:
The LSPs ID
The LSP's Sequence Number
The LSP's Checksum
The LSP's Remaining Lifetime
在p to p subnetwork, 当一个路由器传送一个LSP时,它设置一个周期性的timer 叫minimum LSP Transmission intervval. 如要在路由器接收到一个PSNP的承认之前timer expire,一个新的LSP将被送出,CISCO的这个timer缺省值是5秒,更改这个timer用: isis retrnsmit-interval。
在broadcast subnetworks, 路由器不会对LSPs发送承认包,只是周期性multicasts一个CSNP来描述每一个在link state datebase 的LSP. 缺省的CSNP 周期性间隔为10秒,更改这个timer用:isis csnp-interval, L1 CSNPs multicast 到allL1lSs(0180.c200.0014), L2 CSNPs multicast 到AllL2lSs(0180.c200.0015)
当一个路由器收到一个CSNP,它比较PDU里面的LSPs summarized,如果路由器有一个LSP和CSNP不匹配或者一个更新的LSP,路由器multicasts这个LSP到网络,如果另一个路由器先传送一个LSP,那它就不会发送和这个(收到)LSP一样的LSP出去了,如果一个路由器的datebase没有包括所有的CSNP内的LSP列表,或者如果datebase的LSP比较老,路由器multicase一个PSNP,列出它需要的LSPs,虽然PSNP是multiaccess, 却只有DR才会回复。
ISIS有一项有趣的能力,如果它的内存不足或者不能继续记录完全的link state base,它会发出信号通知别的路由器,这种内存超载的情况也许是因为area允许的网络过大的结果,如果一个路由器不能完成全部的link state datebase,它将设置一个自已的LSP的bit来标示,这就叫做OverLoad(OL)bit
The OL bit 告诉路由器可能无法做出正确的路由决定,因为它的datebase还没有完成,而别的路由器仍然传输数据包给这个路由器,但是不使用它来传输数据,除非这个OL的bit被清除掉,因为OL bit令到路由器的hop along不能继续,也就是说被标识为OL的路由器不能做为下一跳,因此这个OL bit常常被人叫做hippiby bit.
内存的分配应该够L1和L2的datebase用,但是一个路由器可以一层(L1或者L2)在超载环境,而正另一层在正常的环境,如果你想设置ISIS为一个终端节点,你可以手动设置手动设置OL,命令是:set-overload-bit
show isis database 显示ISIS的link state database汇总
===========================
The Decision Process
===========================
一旦update process建立了link state database, decision process就使用datebase里的信息来计算shortest path tree, 然后这条最短路径树来建立一个forwarding database(route table). L1路由和L2路由在这里是分开来计算的。
===========================
ISIS metrics
===========================
ISO 10589指定下列metrics(一个是必需的,三个是可选的)做为ISIS来计算最短路径
Default: 这个metric一定要被所有的ISIS支持和明白
Delay: 这个可选的metric显示一个subnetwork的通过延迟
Expense:这个可选metric显示一个subnetwork的代价
Error: 这个可选metric显示subnetwork的剩余错误问题,这有点像IGRP/EIGRP 的reliability metric
每一个metric用0-63来表达,每一种metric都是用分开的单独路由来计算的,因此,如果一个系统支持所有的四种metrics,SPF就要L1和L2计算四次,每一个到目的地的路由器SPF可能被反复计算,cisco只支持defualt metric。
cisco分配一个default metric 10 到所有的接口,不管是哪一类的接口,isis metric可以更改这个值,L1和L2可以分别被更改。
全部的路由代价是一个outgoing接口的各个metric的总和,最大可设为1023, this small maximum is frequently pointed out as a limitation of ISIS because it leave little room for metric granularity in largo internetworks. the flip side of this criticism, however, is that limiting the metric to 1023 makes the SPF algorithm more efficient
ISIS不止把路由器分成L1和L2,还分成internal or external。
内部路由的意思是目标在同一个ISIS routing domain内,外部路由的意思就是目标在ISIS routing domain以外,所以L2路由器总可以做internal or external,而L1只能永远做interna.
如果有多个到某个目的地的可行性路由,L1路径优先于L2的路径,如果路径支持可选的metric,则优先于缺省metric,(记住,cisco只支持缺省metric,因此这一条对CISCO不适用),在metric 支持的level,最低的优先,如果有多个同等cost的路径在route table,CISCO的ISIS可以使用load balancing,最多可以是六条。
在刚才update process提到的LSP ID的最后一个octet,叫做LSP number,用来跟踪LSP的碎块,decision process之所以要留意LSP number主要是因为以下几点
首先,如果一个datebase中没有描述带有LSP number 为0 的LSP 和一个非0的lifetime,decision process将不会处理任何从相同系统来的,带有非0的LSP number,以下举个例子,如果一个LSP ID是0000.0c76.5b7c.00-01,和0000.0c76.5b7c.00-02存在datebase中,但是datebase没有LSP ID 为0000.0c76.5b7c.00-00的LSP,那前面的两个LSPs就不会被处理,这个方法确保残缺不全的LSP破坏routing decision的精确性。
decision 只接受那些来自带有LSP number 为 0 的LSP,如下面的信息可被接受datebase Overload bit的设置
IS type field的设置
area address option field的设置
就是说如果收到的LSP的第一个包如果不是第一个FRAGMENT的话,就会被忽略, 例如 49.0001.0010.0100.1001.02-00 (01,02....ff) 这个LSP就是被Fragment 的因为这个LSP里的内容大于MTU的话就会被fragment. 只有第一个即最后一位是-00的LSP的fragment的setting才被接受(this section from playfair)
ISIS supports VLSM
ISIS也是一个基于SPF的路由协议,随着IPv6的发展,ISIS也开始支持IPv6。
和EIGRP相同,由于ISIS拥
有TLV字段,而且ISIS对不认识的TLV作忽略处理,故升级支持IPv6非常容易。
ISIS路由协议现通常用在高端的ISP和运营商网络中实施,因为L1/L2架构相对于OSPF的区域灵活很多,
同时,CLNS协议可以对区域进行平滑割接,由于TLV扩展方便,MPLS等众多新特性在ISIS中实施更为便利,是
否支持ISIS,已经成为路由设备提供商是否能够冲击高端领域的一个象征。
37.1.1 ISIS扩展属性
ISIS通过TLV提供了众多的扩展属性:
1.三方握手
OSPF可以根据对方路由器发送的报文中含有自己的RID确立连接关系建立。
ISIS 一样,它使用
IS邻居TLV来实现。
在LAN链路中,IS-IS路由器通过收到的LAN hello报文中的IS邻居TLV来查看自
己的SysID是否在对方发来的邻居TLV列表中,从而确认双向通讯状态已经确立。
但是对于点到点链
路,Hello数据报不携带IS邻居TLV。
所以只能建立双向握手,而且要求点到点传输介质是可靠的。
但是现实中,点到点链路通常不可靠,所以ISIS在扩展的时候实现了一种3方握
手的机制,来
确保双向连接的可靠性。
点到点邻居TLV格式如下:
在这个TLV中,列出了发起它的路由器所知道的所有邻居SysID,并且它也指出了始发路由器
在该链路上可能的邻接关系状态,正常,初始化或失效。
2.扩展度量
在MPLS中,TE是一个非常重要的功能。
在MPLS网络中的数据包的一些子集能够以来用户指定
的约束条件以不同的方式进行转发,也就是说可以不使用IGP那样的总是选择单一最短路径的方式
进行转发,这样可以在同一个网络上对不同的业务流,进行区分传送,例如确保时延敏感的流失用
最短路径,其它数据流使用较长路径等。
ISIS的良好TLV特性,使得它对MPLS的支持非常容易,首先,流连工程的一个关键是需要使用
比度量更为详细的接口参数进行通讯,使用用于共享路径设计的IGP协议和用于共享这些TE接口参
数的借口信息变得有意义,
ISIS通过两种新的TLV来支持
扩展的IS可达性
扩展的IP可达性
报文格式如下:
扩展IS可达性报文如下,当启用新的扩展度量后,扩展的IS可达性TLV使用32位的
度量字段,修复了以前6位字段不能使用在大型网络中的缺点。
同时,扩展的IS 可达性
TLV替代了LSP中的类型2的IS邻居TLV。
而且它还允许TLV的嵌套,这样对于开发人员实
现新的功能十分方便
扩展IP可达性TLV用于代替IP内部可达性信息和IP外部可达性信息TLV,它可以出现
在L1和L2的LSP中,同样它也采用一个32位的Metric。
同时也支持子TLV功能,并通过子
TLV实现了流量工程
在IOS中,仅需要使用 metric-style wide来实现扩展度量的支持
37.1.2 ISIS IPv6支持
ISIS通过加入两种新的TLV支持IPv6,它们分别是 IPv6可达性TLV和IPv6借口地址TLV
IPv6可达性TLV如下图,
他用于同时通告内部和外部的前缀信息,同时包含了一个32位的Metric字段支持扩展的
Metric。
对于每一个前缀都有一个32位的Metric,同时从L2向L1路由泄露的Up/Down位也被支持。
同时X位支持了内部始发和外部始发的选项。
S位表明了子TLV是否存在。
关于路由泄露,在此做一下补充:
起初,L1/L2型结构定义了L2区域默认不向L1区域通告任何前缀,但是如果存在很多的L1/L2
路由器,为了选择到达目的地最近的L1/L2路由器,这就意味着,必须要把前缀从L2区域通告到L1
区域,在ISIS中这种行为被称为路由泄露(Route leaking),
但是这样做会产生路由选择环路,如图所示,192.168.1.0/24网段,因为Rotterdam 不识别这
样的路由条目,被再次从L1通告到L2区域中,为了解决这样的问题,在LSP中设置了U/D位,保证这
样的路由泄露行为不产生路由环路。
IPv6接口地址TLV如下:
和132型的IPV4接口地址TLV相似,并且可以同时被Hello数据包和LSP数据包携带。
被
Hello包携带时使用链路本地地址,被LSP携带是,那么通告的地址是地区或全球地址。
37.1.3 ISIS多拓扑结构
在实现ISIS支持ipv6的时候,有多种考虑方式,首先,从节约内存方面考虑,可以使ip和ipv6公用
一种拓扑结构,这样的结构被称为单拓扑结构。
但是必须要求Ipv4和Ipv6拓扑结构完全相同,也就是说
需要每个接口要同时启用Ipv4/v6。
随着路由器的发展,内存和flash容量逐渐加大,ISIS则实现了一种多拓扑结构(MT)。
每一个拓扑
自行运行一个SPF计算进程。
对于不同的拓扑,通过MT ID来识别,一个接口可
以拥有多个MT ID。
用于
MT ISIS的多拓扑ID如下:
ISIS通过4中TLV支持多拓扑结构:
多拓扑中间系统
多拓扑
多拓扑可达IPv4前缀
多拓扑可达IPv6前缀
在多拓扑结构实现的国成中,对于一个点到点链路,可以通过识别对方的MT ID 来决定是否建立邻
接关系,但在广播型链路上,即使没有任何共同的MT ID,邻居之间也会形成一个邻接关系,这是因为
DR选举独立于所有的扩展特性。
多拓扑TLV不仅Hello报文可以携带,也可以用LSP携带。
对于多拓扑中间系统TLV,格式如下:
多拓扑可达IPv6前缀TLV格式如下:
37.2 ISISv6配置
37.2.1 ISIS IPv6基本配置
集成ISIS对于IPv4和IPv6协议只需要计算单个SPF来创建单个拓扑,如果在网络中配置了IPv4和
IPv6,那么所有的接口和所有的路由器都必须配置者两种协议。
例如,如下拓扑:
首先在全局模式,开启ipv6单播转发
Router(config)#ipv6 unicast-routing
如果需要使用单拓扑的ISIS需要首先在接口上启动ISIS。
如Geneva路由器Hostname Geneva
ipv6 unicast-routing
!
interface FastEthernet0/0
ip address 172.16.4.1 255.255.255.0
ip router isis
ipv6 address 2001:db8:0:4::1/64
ipv6 router isis
!
interface s 0/0.1 point-to-point
ip address 172.16.21.1 255.255.255.0
ip router isis
ipv6 address 2001:db8:0:15::1/64
ipv6 router isis
!
interface FastEthernet0/3
ip address 172.16.3.1 255.255.255.0
ipv6 address 2001:db8:0:3::1/64
ip router isis
ipv6 router isis
!
router isis
net 01.0004.c150.f1c0.00 37.2.2 ISIS IPv6地址汇总
在路由器模式下,通过如下方法,可以对地址进行汇总:
router isis
address-family ipv6
summary-prefix 2001:db8:0:10::/62
察看路由表结果:
Madrid#show ipv6 route
IPv6 Routing Table - 12 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B BGP
U - Per-user Static route
I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS sum O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
I2 2001:DB8::/62 [115/20]
via FE80::204:C1FF:FE50:F1C0, Serial0/0.3
I2 2001:DB8:0:4::/64 [115/20]
via FE80::2B0:64FF:FE30:1DE0, Serial0/0.1
via FE80::204:C1FF:FE50:F1C0, Serial0/0.3
C 2001:DB8:0:8::/64 [0/0]
via ::, Serial0/0.1
L 2001:DB8:0:8::1/128 [0/0]
via ::, Serial0/0.1
C 2001:DB8:0:9::/64 [0/0]
via ::, Serial0/0.2
L 2001:DB8:0:9::1/128 [0/0]
via ::, Serial0/0.2
C 2001:DB8:0:15::/64 [0/0]
via ::, Serial0/0.3
L 2001:DB8:0:15::2/128 [0/0]
via ::, Serial0/0.3
I2 2001:DB8:0:10::/62 [115/20]
via FE80::205:5EFF:FE6B:50A0, Serial0/0.2
L FE80::/10 [0/0]
via ::, Null0
L FF00::/8 [0/0]
via ::, Null0
Madrid#
37.2.3 ISIS 宽度量使用
ISIS通过扩展属性支持新的宽Metric模式,通过Metric-style可以修改,修改前
Zurich#show clns protocol
IS-IS Router: <Null Tag>
System Id: 0000.0C76.5B7C.00 IS-Type: level-1-2
Manual area address(es):
01
Routing for area address(es):
01
Interfaces supported by IS-IS:
Serial0/0.1 - IP - IPv6
Ethernet0/0 - IP - IPv6
Redistribute:
static (on by default)
Distance for L2 CLNS routes: 110
RRR level: none
Generate narrow metrics: level-1-2
Accept narrow metrics: level-1-2
Generate wide metrics: none
Accept wide metrics: none
Metric-style 支持3种参数 wide, Transition, wide transation.但有区别,wide模式仅
发送和接收宽模式。
Translation可以同时发送和接收宽模式和窄模式。
而wide Translation 能
时生成和接收宽模式和窄模式。
router isis
metric-style transition
address-family ipv6
summary-prefix 2001:db8::/62
Zurich#show clns protocol
IS-IS Router: <Null Tag>
System Id: 0000.0C76.5B7C.00 IS-Type: level-1-2
Manual area address(es):
01
Routing for area address(es):
01
Interfaces supported by IS-IS:
Serial0/0.1 - IP - IPv6
Ethernet0/0 - IP - IPv6
Redistribute:
static (on by default)
Distance for L2 CLNS routes: 110
RRR level: none
Generate narrow metrics: level-1-2
Accept narrow metrics: level-1-2
Generate wide metrics: level-1-2
Accept wide metrics: level-1-2
Zurich#
37.2.4 ISISv6 多拓扑模式
ISISv6可以支持多拓扑模式,这样就可以让IPv4和IPv6流量使用不同的拓扑结构。
在内存
资源相对宽松的情况下,建议使用多拓扑模式,并且Cisco在IOS软件中提供了过渡模式,可以平
滑的从单拓扑模式过渡到多拓扑模式。
多拓扑配置如下
router isis
metric-style wide transition
address-family ipv6
multi-topology transition
配置后
Bonn#show clns is-neighbors detail
System Id Interface State Type Priority Circuit
Id Format
Madrid Se0/0.1 Up L2 0 00 Ph ase V
Area Address(es): 03
IP Address(es): 172.16.9.1*
IPv6 Address(es): FE80::204:C1FF:FE50:E700
Uptime: 00:23:14
NSF capable
Frankfurt Fa0/0 Up L1 64 Bonn.01 Ph ase
Area Address(es): 03
IP Address(es): 172.16.19.2*
Uptime: 00:23:17
Bonn#
37.2.5 ISIS修改Metric
在接口上可以通过如下命令修改Metric
interface Ethernet 0/0/1
isis ipv6 metric 20
37.2.6 ISIS等价负载均衡
Router(config-router-af)# maximum-paths 3
37.2.7 ISIS安全和认证
ISIS可以在接口上配置密码,配置方法如下:
Router(config-if)#isis password kaka
ISIS可以在接口上配置认证,配置方法如下:
key chain fairy
key 1
key-string dust
!
Interface Ethernet 1
isis authentication mode text
isis authentication key-chain fairy level-2
ISIS认证:
router isis
net 01.0004.c150.f1c0.00
authentication mode md5
authentication key-chain forest
37.2.8 ISISv6 默认路由
Router(config-router-af)# default-information originate
37.2.9 ISISv6 L1/L2重分布
Router(config-router-af)# redistribute isis level-1 into level-2。