session 1 ISIS
IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO(the International Organization for Standardization,国际标准化组织)为CLNP(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。
IS-IS属于内部网关路由协议,用于自治系统内部。IS-IS是一种链路状态协议,与TCP/IP网络中的OSPF协议非常相似,使用最短路径优先算法进行路由计算。
ISO网络和IP网络的网络层地址的编址方式不同。IP网络的三层地址是常见的IPv4地址或IPv6地址,IS-IS协议将ISO网络层地址称NSAP(Network Service Access Point,网络服务接入点),用来描述ISO模型的网络地址结构,地址结构如下:这种NSEL字段为00的地址编制又叫NET编制算是一种特殊的NSAP地址,专用于ip网络(现在ip网络内使用的is-si是一种集成的isis,以前的叫做基础isis是提供给OSI协议栈的,而现在的TCP/IP协议栈是集成的isis,专门跑ip协议的)
以上NSAP格式是用于OSI网络的标准ISIS地址格式,而现在使用的集成tcp/ip的isis是使用NET地址格式
这个NET编制格式就是49.xxxx.xxxx.xxxx.00,表示私有isis地址,(同一个AS内isis1表示AS1)区域area49(表示私有,39是公有),sys-id为xxxx.xxxx.xxxx.xxxx,nesl为00专用ip网络
area-address system-ID NESL
49 xxxx.xxxx.xxxx. 00
运行IS-IS协议的网络包含了终端系统(End System)、中间系统(Intermediate System)、区域(Area)和路由域(Routing Domain)。一个路由器是Intermediate System(IS),一个主机就是End System(ES)。主机和路由器之间运行的协议称为ES-IS,路由器与路由器之间运行的协议称为IS-IS。区域是路由域的细分单元,IS-IS允许将整个路由域分为多个区域,IS-IS就是用来提供路由域内或一个区域内的路由。
现在的isis都是集成ip网络的,说isis的扩展性好是因为他的TLV框架,最早只支持osi,后来在tlv加上了ip就支持ip了,在加上ipv6就支持ipv6了,所以扩展性强,不像ospf要支持ipv6就要开发新的lsa。。。使用ospfv3协议。
二、IS-IS的PDU数据报文
在路由器之间通讯时,IS-IS使用的是ISO定义的协议数据单元(PDU)。IS-IS中使用的PDU类型主要有:IS-IS Hello PDU(IIH PDU)、链路状态PDU(LSP)、完全序列号数据包(CSNP)、部分序列号数据包(PSNP)。
IIH PDU类似于OSPF协议中的hello报文,负责形成路由器间的邻居关系,发现新的邻居,检测是否有邻居退出。
LSP类似于OSPF协议中的LSA,用于描述本路由器中所有的链路状态信息。
CSNP包含了网络中每一个LSP的总结性信息,当路由器收到一个CSNP时,它会将该CSNP与其链路状态数据库进行比较,如果该路由器丢失了一个在CSNP中存在的LSP时, 它会发送一个组播PSNP,向网络中其它路由器索要其需要的LSP。
PSNP在点对点链路中用于确认接收的LSP;在点对点链路和广播链路中用于请求最新版本或者丢失的LSP。
IS-IS利用这些PDU与周围的路由器进行信息收集和交换,用来计算出IS-IS路由条目。
三、IS-IS的路由等级和角色
在OSI的标准ISIS中有4中路由:
level0,负责在OSI中连接路由器与终端(ES)的路由类型
level1,负责在OSI中连接同一个AS内的同一个区域的路由器的路由类型
level2,负责在OSI中连接同一个AS内的区域间路由器的路由类型
level3,负责在OSI中连接AS外部路由类型
而在集成tcp/ip的ISIS中只有level1和leve2类型的路由了,level0在tcp/ip中被arp替代,level3被BGP协议取代。
isis的骨干网是在链路上(同一个AS内),并且每个路由器只能属于一个area,上图拓扑中的骨干网就是ARR8-AR9的这条链路
虽然集成isis使用的地址是NET,但是报文仍然是封装在NSAP协议L2层报文中而不是ip报文中
四、ISIS的路由器角色
当Level级别为Level-1时,为普通区域路由器,设备只与属于同一区域的Level-1和Level-1-2设备形成邻居关系,并且只负责维护Level-1的链路状态数据库LSDB。
当Level级别为Level-2时,为骨干路由器,设备可以与同一或者不同区域的Level-2设备或者其它区域的Level-1-2设备形成邻居关系,并且只维护一个Level-2的LSDB。
当Level级别为level-1-2时,为过渡路由器ABR,设备会为Level-1和Level-2分别建立邻居,分别维护Level-1和Level-2两份LSDB。
五、IS-IS安全认证
IS-IS的认证只限于明文口令,Cisco的IOS支持3个级别的认证:
1.邻居认证——相互连接的路由器接口必须配置相同的口令,同时必须为L1和L2类型的邻居关系配置各自的认证,L1邻居认证的密码和L2邻居的认证的密码可以不同。邻居认证通过命令“isis password”配置。
2.区域认证——区域内的每台路由器必须执行认证,并且必须使用相同的口令。区域认证通过命令“area-password”配置。
3.域认证——域内的每一个L2和L1/L2类型的路由器必须执行认证,并且必须使用相同的口令。域认证通过命令“domain-password”配置。
拓扑中只有一个AS1自治系统,划分为三个区域area10、area20、area30,AR2、AR3是level1-2路由器,AR4、AR5是level1路由器,AR1、AR6是level2路由器,其中红色线是骨干网链路(L2与L1-2链接的),AR4上loopback0口加入area20,AR5上loopback0重分布进is-is的area30,AR6上loopback0加入area10,现在要配置ISIS使得全网互通。配置如下:
AR6的配置
isis 1 创建ISIS的AS1
is-level level-2 配置AR6为level-2路由器
network-entity 10.0000.0000.0006.00 配置area10,sys-id为0000.0000.0006,nest位固定为00
#
interface GigabitEthernet0/0/0
ip address 16.1.1.6 255.255.255.0
isis enable 1 接口启用isis划分入area10
#
interface LoopBack0
ip address 6.6.6.6 255.255.255.255
isis enable 1 将接口划入isis的area10
AR1上的配置
isis 1
is-level level-2 配置为level-2路由器
network-entity 10.0000.0000.0001.00 配置area10,sys-id是0000.0000.0001,nest为00
import-route direct 重分布直连路由到isis中
#
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/1
ip address 13.1.1.1 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/2
ip address 16.1.1.1 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
AR2上的配置
isis 1 level1-2类型是默认的路由类型不用配置
network-entity 20.0000.0000.0002.00 ............配置area20,sys-id 0000.0000.0002,nest00
#
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
isis enable 1 接口运行isis在area20
#
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/2
ip address 24.1.1.2 255.255.255.0
isis enable 1
#
AR4上的配置
isis 1
is-level level-1
network-entity 20.0000.0000.0004.00
#
interface GigabitEthernet0/0/0
ip address 24.1.1.4 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
isis enable 1
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
isis enable 1
#
AR3上的配置
isis 1
network-entity 30.0000.0000.0003.00
#
interface GigabitEthernet0/0/0
ip address 13.1.1.3 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/1
ip address 23.1.1.3 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/2
ip address 35.1.1.3 255.255.255.0
isis enable 1
#
AR5上的配置
isis 1
is-level level-2
network-entity 30.0000.0000.0005.00
import-route direct
#
interface GigabitEthernet0/0/0
ip address 35.1.1.5 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 5.5.5.5 255.255.255.255
#
检查配置,在所有的L1路由器上查看路由及lsdb数据库,及用L1路由相互ping
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
0.0.0.0/0 10 NULL GE0/0/0 24.1.1.2 A/-/-/- L1路由器会自动生成默认路由指向L1-2路由器
12.1.1.0/24 20 NULL GE0/0/0 24.1.1.2 A/-/-/-
23.1.1.0/24 20 NULL GE0/0/0 24.1.1.2 A/-/-/-
24.1.1.0/24 10 NULL GE0/0/0 Direct D/-/L/-
4.4.4.4/32 0 NULL Loop0 Direct D/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
PING 5.5.5.5: 56 data bytes, press CTRL_C to break
Reply from 5.5.5.5: bytes=56 Sequence=1 ttl=253 time=80 ms
Reply from 5.5.5.5: bytes=56 Sequence=2 ttl=253 time=40 ms
--- 5.5.5.5 ping statistics ---
2 packet(s) transmitted
2 packet(s) received
0.00% packet loss
round-trip min/avg/max = 40/60/80 ms
PING 6.6.6.6: 56 data bytes, press CTRL_C to break
Reply from 6.6.6.6: bytes=56 Sequence=1 ttl=253 time=40 ms
Reply from 6.6.6.6: bytes=56 Sequence=2 ttl=253 time=30 ms
--- 6.6.6.6 ping statistics ---
2 packet(s) transmitted
2 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/35/40 ms
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database L1路由器只有L1的lsdb没有L2的lsdb,只能发给L1-2
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0002.00-00 0x00000019 0xf472 796 100 1/0/0
0000.0000.0002.03-00 0x00000015 0xc2ae 796 55 0/0/0
0000.0000.0004.00-00* 0x00000009 0x2530 1053 84 0/0/0
Total LSP(s): 3
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0000.0000.0002 GE0/0/0 0000.0000.0002.03 Up 9s L1 64
Total Peer(s): 1
在L1-2路由器上查看路由和lsdb
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table L1-2维护的L1的lsdb表项,L1-2维护L1和L2的lsdb
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
12.1.1.0/24 10 NULL GE0/0/0 Direct D/-/L/-
23.1.1.0/24 10 NULL GE0/0/1 Direct D/-/L/-
24.1.1.0/24 10 NULL GE0/0/2 Direct D/-/L/-
4.4.4.4/32 10 NULL GE0/0/2 24.1.1.4 A/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
ISIS(1) Level-2 Forwarding Table L1-2维护的L2的lsdb表项
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
6.6.6.6/32 20 NULL GE0/0/0 12.1.1.1 A/-/-/-
5.5.5.5/32 20 0 GE0/0/1 23.1.1.3 A/-/-/-
1.1.1.1/32 10 0 GE0/0/0 12.1.1.1 A/-/-/-
12.1.1.0/24 10 NULL GE0/0/0 Direct D/-/L/-
13.1.1.0/24 20 NULL GE0/0/1 23.1.1.3 A/-/-/-
GE0/0/0 12.1.1.1
16.1.1.0/24 20 NULL GE0/0/0 12.1.1.1 A/-/-/-
23.1.1.0/24 10 NULL GE0/0/1 Direct D/-/L/-
24.1.1.0/24 10 NULL GE0/0/2 Direct D/-/L/-
35.1.1.0/24 20 NULL GE0/0/1 23.1.1.3 A/-/-/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0002.00-00* 0x00000019 0xf472 693 100 1/0/0
0000.0000.0002.03-00* 0x00000015 0xc2ae 693 55 0/0/0
0000.0000.0004.00-00 0x00000009 0x2530 948 84 0/0/0
Total LSP(s): 3
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00 0x00000063 0x6abc 877 122 0/0/0
0000.0000.0001.00-01 0x00000017 0x206f 877 41 0/0/0
0000.0000.0002.00-00* 0x00000070 0xad29 693 123 0/0/0
0000.0000.0002.01-00* 0x000008dd 0xd2d2 693 55 0/0/0
0000.0000.0003.00-00 0x00000023 0xad54 698 122 0/0/0
0000.0000.0003.01-00 0x00000014 0x87ed 698 55 0/0/0
0000.0000.0003.02-00 0x00000016 0x98d8 698 55 0/0/0
0000.0000.0003.03-00 0x00000014 0xe985 698 55 0/0/0
0000.0000.0005.00-00 0x00000017 0x8944 1176 68 0/0/0
0000.0000.0005.00-01 0x00000015 0x9ce0 1176 41 0/0/0
0000.0000.0006.00-00 0x0000000e 0x85d2 1109 84 0/0/0
0000.0000.0006.01-00 0x00000008 0xbac0 1109 55 0/0/0
Total LSP(s): 12
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
在L2上查看lsdb和路由
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-2 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
6.6.6.6/32 10 NULL GE0/0/2 16.1.1.6 A/-/-/-
5.5.5.5/32 20 0 GE0/0/1 13.1.1.3 A/-/-/-
12.1.1.0/24 10 NULL GE0/0/0 Direct D/-/L/-
13.1.1.0/24 10 NULL GE0/0/1 Direct D/-/L/-
16.1.1.0/24 10 NULL GE0/0/2 Direct D/-/L/-
23.1.1.0/24 20 NULL GE0/0/1 13.1.1.3 A/-/-/-
GE0/0/0 12.1.1.2
24.1.1.0/24 20 NULL GE0/0/0 12.1.1.2 A/-/-/-
35.1.1.0/24 20 NULL GE0/0/1 13.1.1.3 A/-/-/-
4.4.4.4/32 20 NULL GE0/0/0 12.1.1.2 A/-/-/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
ISIS(1) Level-2 Redistribute Table
---------------------------------
Type IPV4 Destination IntCost ExtCost Tag
-------------------------------------------------------------------------------
D 1.1.1.1/32 0 0
Type: D-Direct, I-ISIS, S-Static, O-OSPF, B-BGP, R-RIP, U-UNR
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database L2路由器只有L2的lsdb,没有L1的lsdb,只能发给L1-2
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000063 0x6abc 801 122 0/0/0
0000.0000.0001.00-01* 0x00000017 0x206f 801 41 0/0/0
0000.0000.0002.00-00 0x00000070 0xad29 616 123 0/0/0
0000.0000.0002.01-00 0x000008dd 0xd2d2 616 55 0/0/0
0000.0000.0003.00-00 0x00000023 0xad54 622 122 0/0/0
0000.0000.0003.01-00 0x00000014 0x87ed 622 55 0/0/0
0000.0000.0003.02-00 0x00000016 0x98d8 622 55 0/0/0
0000.0000.0003.03-00 0x00000014 0xe985 622 55 0/0/0
0000.0000.0005.00-00 0x00000017 0x8944 1101 68 0/0/0
0000.0000.0005.00-01 0x00000015 0x9ce0 1101 41 0/0/0
0000.0000.0006.00-00 0x0000000e 0x85d2 1034 84 0/0/0
0000.0000.0006.01-00 0x00000008 0xbac0 1034 55 0/0/0
Total LSP(s): 12
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
session 3 ISIS的其他配置
一、控制L1连接L1-2时是否产生默认路由
在L1路由器上配置
[AR4]isis 1
[AR4-isis-1]attached-bit avoid-learning 在AR4上不产生默认路由
[AR4-isis-1]quit
二、控制ISIS路由过滤
在本地路由器上配置,影响发布或接受的路由条目
[AR5]acl 2999
[AR5-acl-basic-2999]rule 1 deny source 5.5.5.5 0 匹配禁止5.5.5.5这个条主机路由
[AR5-acl-basic-2999]q
[AR5]isis 1
[AR5-isis-1]filter-policy 2999 export 在发出的路由中过滤掉ACL2999匹配的路由
或 [AR5-isis-1]filter-policy 2999 import 在收到的路由中过滤掉ACL2999匹配的路由
[AR5-isis-1]quit
三、ISIS负载均衡路由控制
在有等价路由的路由器上配置
[AR2]isis 1
[AR2-isis-1]maximum load-balancing 2 允许最大产生2条负载路由
[AR2-isis-1]nexthop 23.1.1.3 weight 100 下一跳为23.1.1.3的路由优先级为100,值越小越优,默认为255
[AR2-isis-1]quit
四、ISIS路由选路控制
在有负载路由的路由器上配置
[AR2]interface g0/0/0
[AR2-GigabitEthernet0/0/0]isis cost 9 将接口的cost改为9,默认10,值越小越优先
[AR2-GigabitEthernet0/0/0]quit
五、ISIS的路由渗透
默认情况下L1区域的路由会渗透到L2区域,因此L2和L1/2了解整个网络的拓扑,但是L1只有L1的lsdb没有L2和L1/2的lsdb(只有L1/2传给L1的默认路由),当L1区域有多个L1/2连接其他L2区域时,那么L1的默认路由下一跳默认情况下会选择最近的L1/2,但是并不代表离L1最近的L1/2到达其他区域的目的地址就是最近最优的,有离L1次近的L1/2反而是到达目的最优的,这样在默认情况下L1就不能利用spf算法计算出到达目的地址最有路径了,所以需要使用路由渗透技术将L2区域的路由渗透给L1路由器,让L1路由知道到L2区域目的地址的路由然后自己选择最有路径。渗透可以从L2渗透给L1,也可以控制L1将路由渗透给L2,可以使用ACL抓取需要渗透的路由,而没有ACL匹配的就不渗透,不加ACL参数就是默认全部渗透。
在L1/2路由器上配置渗透
[AR2]acl 2999
[AR2-acl-basic-2999]rule 1 permit source 4.4.4.4 0.0.0.0
[AR2-acl-basic-2999]quit
[AR2]isis 1
[AR2-isis-1]import-route isis level-1 into level-2 filter-policy 2999 只将ACL2999中匹配的路由从L1区域渗透给L2区域
或 [AR2-isis-1]import-route isis level-2 into level-1 将L2区域的所有路由渗透给L1区域
[AR2-isis-1]quit
六、ISIS的认证
1、接口认证
[AR5]interface g0/0/0
[AR5-GigabitEthernet0/0/0]isis authentication-mode md5 cipher 123 配置接口认证,加密MD5密文,两端接口需配置一致
[AR5-GigabitEthernet0/0/0]quit
2、区域认证
[AR5]isis 1
[AR5-isis-1]area-authentication-mode md5 cipher 123 配置区域认证,区域内所有路由器都要配置
[AR5-isis-1]quit
[AR4]isis 1
[AR4-isis-1]summary 4.4.4.0 255.255.255.0 将子路由4.4.4.4/32聚合成4.4.4.0/24的路由
[AR4-isis-1]quit