<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
安全问题是一个重要问题,其中就要求对各方面进行认证,MPLS ×××实际应用中认证是必须配置的.
RIPv2
认证配置(明文-MD5)
RIPv2
认证:
rip
最早是由施乐(Xerox)开发的,其为距离矢量协议,不需要建立邻居关系, ripv1不支持认证,只有v2版rip支持认证,ripv2的认证是单向的(即自己在认证另一方时,不代表自己能被另一方认证),由此在只做了单向认证的时候,认证方可以接收被认证方的路由,反之则不行.
配置认证的同时结合service password-encryption命令,此命令会首先生效.
1.1
在R1和R2的串行链路上进行明文认证
ripv2
和eigrp做认证时,要先定义认证用的钥匙链,ospf、bgp不支持钥匙链认证方式,isis支持钥匙链和老式口令认证.
ripv2
、eigrp、isis中当定义了钥匙链时,key chain的名字只是本设备有效,即不同名字不影响认证
密钥链中可以指定一系列的密钥,路由器可以轮转实用,这些密钥都可以配置生命期:accept-lifetime 和send-lifetime (指明使用某个key的有效时间),当一个密钥过期后可以激活下一个密钥.
当配置了带生命期的钥匙链时,两端必须同步时间,一般是使用网络时间协议NTP同步时间.
配置如下:
R1_CE1
key chain ce-neighbor
key 10
key-string rip_ripv2 //
注意密码中空格也是有效字符
accept-lifetime 07:00:00 Mar 20 2008
duration 36000
//
接收此密码有效时间设置为10小时
send-lifetime 07:00:00 Mar 20 2008
duration 36000
//
发送此密码有效时间设置为10小时
key 15
key-string auth_ripv2
accept-lifetime 07:00:00 Mar 21 2008 24:00:00 Mar 21 2008
send-lifetime 07:00:00 Mar 21 2008 24:00:00 Mar 21 2008
key 20
key-string pe-ce-ripv2
accept-lifetime 07:00:00 Mar 22 2008
infinite
//
永久有效
send-lifetime 07:00:00 Mar 22 2008
infinite
//
永久有效
router rip validate-update-source
R1(config)#int s1/0 //
明文认证是在接口下进行,先选择认证方式后指定要使用的钥匙链
R1(config-if)#ip rip authentication mode authentication text
//ripv2
中启用认证后缺省是明文认证,可不配置
R1(config-if)#ip rip authentication key-chain rip-key-chain ce-neighbor
//
明文认证中被认证方发送key chian中的key时,是先发送具有最低key ID值的key,但并不携带ID,认证方接收到key后,和自己key chain中的全部key顺序比较,只要有一个key匹配就通过认证.
R2_PE1
key chain pe-neighbor
key 10
key-string rip_ripv2
accept-lifetime 07:00:00 Mar 20 2008
duration 43200
send-lifetime 07:00:00 Mar 20 2008
duration 43200
key 15
key-string auth_ripv2
accept-lifetime 07:00:00 Mar 21 2008 24:00:00 Mar 21 2008
send-lifetime 07:00:00 Mar 21 2008 24:00:00 Mar 21 2008
key 20
key-string pe-ce-ripv2
accept-lifetime 07:00:00 Mar 22 2008 infinite
send-lifetime 07:00:00 Mar 22 2008 infinite
int s1/0
ip rip authentication mode authentication text
ip rip authentication key-chain rip-key-chain pe-neighbor
1.2
在R1和R2的串行链路上进行MD5认证
ripv2
的MD5认证也是单向的, 但MD5认证类型下被认证方发送最低ID值的key时携带了key ID,认证方接收到key后,先是在自己key chain中查找是否具有相同key ID的key,如果有并且key也相同就通过认证,如果key不同就拒绝通过认证。如果没有相同key ID的key,就顺序查找该key ID往后的最近key ID的key, 如果有就继续比对,直到认证通过,如果后续没有key ID了,则认证失败。
与明文认证类似,指定认证方式为MD5认证即可(实用的就是MD5认证), 配置如下:
R1_CE1
int s1/0
ip rip authentication mode md5 //
为此接口启用MD5认证
ip rip authentication key-chain rip-key-chain ce-neighbor //
指定要使用的钥匙链
R2_PE1
int s1/0
ip rip authentication mode md5 //
为此接口启用MD5认证
ip rip authentication key-chain rip-key-chain pe-neighbor //
指定要使用的钥匙链
EIGRP
认证配置(MD5)
EIGRP
认证:
eigrp
为cisco私有单播路由协议,其只支持md5认证,eigrp需要建立邻居关系,eigrp认证时,被认证方会发送最低的key ID(携带key ID),认证中只有key ID和key值完全相同才能通过认.
当使用钥匙链时其只是使用排在最前面的那个key,和key的id number没有关系.
eigrp
的认证信息包涵在hello包里,但在一方配置完认证,另一方还没有配置认证时,在重启或用clear ip eigrp nei前,邻居关系不会中断,此时debug ip eigrp packet看到认证信息已经收到了,但却被忽略掉了.
R2_PE1
key chain pe-neighbor //
定义认证用的钥匙链
key 10
key-string auth_eigrp
key 20
key-string auth_eigrp
int s1/0
ip authentication mode eigrp 15 md5 //
启用认证
ip authentication key-chain eigrp 15 eigrp-key-chain pe-neighbor
OSPF-
链路-区域-虚链路各认证配置(明文-MD5)
OSPF
认证:
ospf
的认证有3种类型:其中type0表示无认证,type1表示明文认证,type2表示MD5认证。明文认证发送密码进行认证,而MD5认证发送的是消息摘要。
有关MD5的详细信息,可以参阅RFC1321.
ospf
的认证可以在链路上进行,也可以在各区域内进行认证,虚链路也可以进行认证。
1
、链路认证配置:
1.1
在R1和R2的串行链路上进行明文认证:
首先在R1上做如下配置(与ripv2和eigrp不同,ospf不支持钥匙链方式)
int s1/0
ip ospf authentication //
启用认证
ip ospf authentication-key superbackbone //
明文认证类型中密码只能有一个
用show ip ospf interfaces s1/0认证对端口加入认证的状态
当在R1配置完认证R2还没有配置认证时邻居关系马上会中断,通过debug ip ospf events可以看到提示认证key不匹配,通过debug ip ospf adj可以看到提示接收到的认证类型为type0(表示对方没有启用认证),因为ospf的认证加密信息携带在hello包里,邻居关系的要素:hello时间间隔,死亡时间间隔,区域id,根区域标识,认证信息,网络掩码)
type1
是明文认证, type2是MD5认证
在R2上配置匹配认证,使邻居关系恢复.
int s1/0
ip ospf authentication
ip ospf authentication-key superbackbone
1.2
在R2和R3的串行链路上进行MD5认证的:
R2
int s1/1
ip ospf authentication message-digest //
定义认证类型为MD5
ip ospf message-digest-key 1 md5 superbackbone //
定义key和密码,只写此句就能正常
R3
int s1/1
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 superbackbone
// key ID
就是两边用来识别是同一对密码的密钥,两边要一致,此例中用的均为1,当有多句认证命令存在时,key ID不能相同,但密码可以相同
1.3
修改R2和R3上串行链路的MD5认证的密码:
在R2原有的配置上加上下面这条命令:
R2(config-if)#ip ospf message-digest-key 2 md5 super_backbone
R2#sho ip ospf neighbor //
可以看到两个key都在使用。
此功能在修改链路的MD5认证密码过程中不使邻居关系发生中断(先将新的密码已另一个编号的key配置到启用认证的路由器两端后,在将原来旧的密码删除,这样可保证在修改链路认证配置的时候邻居关系依然存在)
2
、在area0或其它区域上进行区域认证:
注意:ospf区域认证中使用的密钥和MD5算法是由接口命令ip ospf message-digest-key指定的,即区域认证正常时都需要接口下的认证语句作附加命令,但实验测试时不在接口上配置密码认证也能通过,不过此时MD5认证用的实际上是ID=0的空密码
2.1
在R2和R3的区域0上进行明文认证:
R2(config)#int s1/1
R2(config-if)#ip ospf authentication //
先启用接口上的认证
R2(config-if)#ip ospf authentication-key superbackbone
R2(config)#router ospf 10
R2(config-router)#area 0 authentication //
启用区域明文认证
用show ip ospf 认证对该区域加入认证的状态
当做区域认证时,若仅是在一端写上了要求区域认证的命令,但未配置认证用的密码,此时仍需要双方都启用认证功能才可以保持邻居关系。
如果一端做了区域认证而另一端没做,则邻居关系会断开,恢复邻居关系方法:
1.
在做了区域认证的R1的快速以太网口下关闭认证,配置如下:
R3(config)#int s1/1
R3(config-if)#ip ospf authentication null
2.
在另一端R2上也开启区域认证,邻居即可恢复邻接关系。
R3(config-router)#area 0 authentication
2.2
在R2和R3的区域0上进行MD5认证:
R2(config)#int s1/1
R2(config-if)#ip ospf authentication message-digest //
先启用接口上的MD5认证
R2(config-if)#ip ospf message-digest-key 1 md5 superbackbone
R2(config)#router ospf 10
R2(config-router)#area 0 authentication message-digest //
启用区域MD5认证
注意: 区域认证一启用就要在该区域内的所有设备上都启用,要一致.
当配置了区域认证类型后,接口下会自动继承所在区域的认证类型方式,此时可手动调整来覆盖接口下继承的认证类型方式,即接口下的认证类型可以和区域上配置的认证的类型不同(一个明文,一个用MD5),这样也可以正常工作,但建议都配置为MD5.
2.3
虚链路的区域配置
因为virtual-link属于area0,因此配置了area0的区域认证时,虚链路两端的ABR上都要配置。
R3(config)#router ospf 10
R3(config-router)#area 0 authentication
3
、虚链路的认证配置(虚链路也可以单独配置认证,同样分为Null、明文、MD5认证,配置如下):
注意:虚链路在建立后的LSA状态是DNA LSA(即DoNotAge不老化LSA)所以如果没有重启ospf进程,即使一端配置了认证,虚链路也是不会断开.
3.1
虚链路的Null认证配置:
R2(config-router)#area 1 virtual-link <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.3.3.3 authentication null
R3(config-router)#area 1 virtual-link 2.2.2.2 authentication null
3.2
虚链路的明文认证配置:
R2(config-router)#area 1 virtual-link 3.3.3.3 authentication-key superbackbone
R3(config-router)#area 1 virtual-link 2.2.2.2 authentication-key superbackbone
3.3
虚链路的MD5认证配置:
R2(config-router)#area 1 virtual-link 3.3.3.3 authentication message-digest
R2(config-router)#area 1 virtual-link 3.3.3.3 message-digest-key 1 md5 superbackbone
R3(config-router)#area 1 virtual-link 2.2.2.2 authentication message-digest
R3(config-router)#area 1 virtual-link 2.2.2.2 message-digest-key 1 md5 superbackbone
4
、ospf 区域认证的一个特例虚链路的嵌套:
当area0配置了区域认证时,所有与area0通过虚链路逻辑连接的ABR,都要配置认证,否则虚链路不能建立起来.
拓扑:R1--(area1)---R2--(area0)--R3--(area4)--R4--(area5)--R5--(area6)--R6
R4config)#router ospf 10
R4(config-router)#net 34.1.1.4.0 0.0.0.255 a 4
R4(config-router)#net 45.1.1.4.0 0.0.0.255 a 5
R4(config-router)#area 4 vi 3.3.3.3
R4(config-router)#area 0 auth message-digest
R5config)#router ospf 10
R5(config-router)#net 45.1.1.5.0 0.0.0.255 a 5
R5(config-router)#net 56.1.1.5.0 0.0.0.255 a 6
R5(config-router)#area 5 vi 3.3.3.3
R5(config-router)#area 0 auth message-digest
R5
上area6的虚链路认证是和area0的R3(ABR)路由器做认证,和经过的area4虚链路的邻居路由器R4没有关系.
ISIS
认证配置(明文-MD5)
ISIS
认证:
isis
支持neighbor、domain、area认证,分为老式明文口令认证和使用key-chain的明文或MD5
认证,
其中老式认证只支持是明文认证;
邻居级别isis pass中指定的密码是在hello包中携带的,于邻居关系的认证;
区域级别area-pass中指定的密码是在所有L1 lsp报文,csnp和psnp报文中携带的,用于L1链路状态信息交换的认证;
L2
骨干domain-pass中指定的密码是在所有L2 lsp报文,csnp和psnp报文中携带的,用来L2链路状态信息的交换认证.
isis
的结构层次分为L1(区域)和L2(骨干域),认证是分别针对层次设计的,
1、
老式口令(明文认证)
1.1
邻居认证,缺省不分层次,只认证邻居,但可指定层次
R1_PE1
interface Serial1/1.12 point-to-point
ip address 172.16.11.1 255.255.255.252
ip router isis backbone
isis password isis-nei level-2 //
邻居认证,邻居之间的认证可以指定isis级别
1.2
区域L1 area认证:
R5_CE1:
router isis pe-ce
net 51.0005.0000.0000.1000.00
area-password isis-area-auth //
区域认证,只是认证L1链路状态信息的交换,不是认证邻居
1.3
骨干域L2
domain
认证:
R2_P:
router isis backbone
net 51.0001.0000.0000.2000.00
domain-password backbone-auth //domain
认证,只是认证L2链路状态信息的交换,不是认证邻居
2、
使用key-chain的
认证:
先定义钥匙链:
key chain
backbone
key 10
key-string super_backbone
key 20
key-string sup_backbone
2.1
使用key-chain的明文和MD5邻居
认证
R2_P
interface Serial1/2.21 point-to-point
ip address 172.16.10.18 255.255.255.252
ip router isis backbone
mpls label protocol ldp
mpls ip
isis circuit-type level-2-only
isis authentication mode text
//
此两句可替代老式明文认证的area-pass功能
isis authentication key-chain backbone
frame-relay interface-dlci 21
!
interface Serial1/2.23 point-to-point
ip address 172.16.10.22 255.255.255.252
ip router isis backbone
mpls label protocol ldp
mpls ip
isis circuit-type level-2-only
isis authentication mode md5
isis authentication key-chain backbone
frame-relay interface-dlci 23
2.2
使用key-chain的明文和MD5骨干域
认证
R2_P
router isis backbone
net 51.0001.0000.0000.2000.00
is-type level-2-only
authentication mode text
//
明文
,
此两句可替代老式域认证的domain-pass功能
authentication key-chain backbone
R2_P
router isis backbone
net 51.0001.0000.0000.2000.00
is-type level-2-only
authentication mode md5
//MD5
authentication key-chain backbone
BGP
认证配置(MD5)
BGP
认证:
BGP
的认证仅仅限制于邻居之间,
设计为只使用MD5认证,启用认证后只有双方认证成功才能形成邻居关系,BGP需要建立(TCP dport 179)邻居关系后才能进行路由
R2_PE1(config)# router bgp 100
R2_PE1(config-router)# no auto-summ
R2_PE1(config-router)# neighbor 3.3.3.3 remote-as 100
R2_PE1(config-router)# neighbor 3.3.3.3 password mpls*** //
启用认证,就这一句,写上密码即可
R2_PE1(config-router)# neighbor 6.6.6.6 update-source loop0
R2_PE1(config-router)# neighbor 6.6.6.6 remote-as 100
R2_PE1(config-router)# neighbor 6.6.6.6 password mpls***
R2_PE1(config-router)# neighbor 6.6.6.6 update-source loop0
[by smcat]
转载于:https://blog.51cto.com/smcat/67983