<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

安全问题是一个重要问题,其中就要求对各方面进行认证,MPLS ×××实际应用中认证是必须配置的.

RIPv2 认证配置(明文-MD5)

RIPv2 认证:

rip 最早是由施乐(Xerox)开发的,其为距离矢量协议,不需要建立邻居关系, ripv1不支持认证,只有v2rip支持认证,ripv2的认证是单向的(即自己在认证另一方时,不代表自己能被另一方认证),由此在只做了单向认证的时候,认证方可以接收被认证方的路由,反之则不行.

配置认证的同时结合service password-encryption命令,此命令会首先生效.

1.1    R1R2的串行链路上进行明文认证

ripv2 eigrp做认证时,要先定义认证用的钥匙链,ospfbgp不支持钥匙链认证方式,isis支持钥匙链和老式口令认证.

ripv2 eigrpisis中当定义了钥匙链时,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    R1R2的串行链路上进行MD5认证

ripv2 MD5认证也是单向的, MD5认证类型下被认证方发送最低ID值的key时携带了key ID,认证方接收到key,先是在自己key chain中查找是否具有相同key IDkey,如果有并且key也相同就通过认证,如果key不同就拒绝通过认证。如果没有相同key IDkey,就顺序查找该key ID往后的最近key IDkey, 如果有就继续比对,直到认证通过,如果后续没有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 IDkey值完全相同才能通过认.

当使用钥匙链时其只是使用排在最前面的那个key,keyid 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 R1R2的串行链路上进行明文认证:

   首先在R1上做如下配置(ripv2eigrp不同,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 是明文认证, type2MD5认证

R2上配置匹配认证,使邻居关系恢复.

int s1/0

ip ospf authentication

ip ospf authentication-key superbackbone

1.2 R2R3的串行链路上进行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 修改R2R3上串行链路的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 R2R3的区域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 R2R3的区域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的虚链路认证是和area0R3(ABR)路由器做认证,和经过的area4虚链路的邻居路由器R4没有关系.

ISIS 认证配置(明文-MD5)

ISIS 认证:

isis 支持neighbordomainarea认证,分为老式明文口令认证和使用key-chain的明文或MD5 认证, 其中老式认证只支持是明文认证;

邻居级别isis pass中指定的密码是在hello包中携带的,于邻居关系的认证;

区域级别area-pass中指定的密码是在所有L1 lsp报文,csnppsnp报文中携带的,用于L1链路状态信息交换的认证;

L2 骨干domain-pass中指定的密码是在所有L2 lsp报文,csnppsnp报文中携带的,用来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]