以下内容是摘自笔者即将于今年10月份上市的新书——《路由器配置与管理完全手册——CIsco篇》。该书目前正接受前300名7折预订(同时购买Cisco和H3C篇两本的还将赠送专门定做的十周年纪念台历),需要的联系我。

       本篇介绍的是Cisco路由器中的DM×××(动态多点×××)中的HUb路由器配置方法,在上一试读中介绍的是H3C路由器的D×××(动态×××)的配置示例。具体参见:http://winda.blog.51cto.com/55153/362351。Cisco DM×××与H3C的D×××功能是一样的,但实现方式和配置方法不一样,这可以在两本书中介绍的原理基础知识和配置方法中得到印证。

13.3.1 DM××× hub路由器的配置步骤及示例

    要在Hub路由器上配置mGREIPSec集成,需要先配置上节的IPSec配置文件,然后按照表13-4所示步骤进行配置。
从表13-4中可以看出,DM×××上的hub路由器配置步骤还是比较多的,但只要我们掌握了其基本配置思路也就比较简单了。它的配置思路如下:
1)使用interface tunnel number命令创建一个用于DM×××mGRE隧道接口,并使用ip address ip-address mask [secondary]”命令为它分配IP地址。
2)使用ip nhrp authentication string命令配置与对spoke路由器请求连接进行身份认证的密码,所有hubspoke路由器必须配置相同的认证密码。
3)使用ip nhrp map multicast dynamic命令启用hub路由器上自动添加spoke路由器到NHRP映射中,实现动态×××连接。
4)使用unnel source {ip-address | type number}”命令指定隧道接口所关联的物理接口,也就是隧道源。
5)使用ip nhrp network-id number命令配置一个网络ID标识DM×××所连接的NBMA网络。
6)使用tunnel source {ip-address | type number}”命令为同一个DM×××网络中的所有hubspoke配置相同的隧道ID
7)使用tunnel mode gre multipoint命令配置隧道封装模式为mGRE
8)使用tunnel protection ipsec profile name命令引用上节所创建的IPSec配置文件,用来保护DM×××通信。
13-4   DM×××hub路由器的配置步骤

Routerconfiginterface tunnel 5
键入要进行×××连接的隧道(tunnel)接口号,进入接口配置模式。隧道接口是一个虚拟接口。参数number用来指定要创建或者配置的隧道接口号。可以创建的隧道接口号没有限制。
示例中创建的隧道接口号为5 
ip address ip-address mask [secondary]
Routerconfig-if# ip address 10.0.0.1 255.255.255.0
为隧道接口配置主要或者辅助IP地址。所有在同一个DM×××网络中的hubspoke必须在同一个IP子网中。
示例中指定的隧道接口IP地址为:10.0.0.1 255.255.255.0
ip mtu bytes
Routerconfig-if# ip mtu 1400
设置上述隧道接口可以发送IP数据包的MTUMaximum Transmission Unit,最大传输单元)大小,以字节为单位。
Routerconfig-if# ip nhrp authentication donttell
为上述隧道接口配置用于NHRP的身份认证字符串。在同一个DM×××网络中的所有hubspoke路由器必须配置相同的NHRP身份认证字符串。示例中设置的认证字符串为donttell
Routerconfig-ifip nhrp map multicast dynamic
允许NHRP自动添加spoke路由器到组播NHRP映射中。
Routerconfig-ifip nhrp network-id 99
在上述隧道接口上启动NHRP,并指定一个网络ID。参数number用来指定一个在NBMANonBroadcast MultiAccess,非广播多路访问)网络中全局惟一的32位网络ID。取值范围为1~4294967295
tunnel source {ip-address | type number}
Routerconfig-if# tunnel source Ethernet0
tunnel key key-number
Routerconfig-if# tunnel key 100000
(可选)为上述隧道接口启用一个ID密钥(ID key)。参数key-number用来指定用来标识隧道密钥的号码,取值范围为0~ 4,294,967,295。在同一个DM×××网络中的所有hubspoke路由器必须配置相同的ID密钥。但如果你使用的是Cisco 6500系列交换机或者Cisco 7600系列路由器,则不要配置这个ID密钥。示例中的隧道密钥号为100000
Routerconfig-iftunnel mode gre multipoint
Routerconfig-iftunnel protection ipsec profile ***prof
指定一个与上述隧道接口关联的IPSec配置文件。参数name用来指定IPSec配置文件名称。这个名称必须与上节介绍的,在crypto ipsec profile name命令中指定的配置文件名一样。示例中引用的IPSec配置文件名为***prof
bandwidth kbps
Routerconfig-if# bandwidth 1000
设置上述隧道接口当前的带宽值。参数kbps是以Kbps为单位指定隧道接口带宽值。默认值为9,建议值为1000,甚至更高。如果在隧道接口上启用了EIGRP路由协议,则这个带宽值至少为1000。带宽值的大小主要依据hub所支持的spoke数量。
ip tcp adjust-mss max-segment-size
Routerconfig-ifip tcp adjust-mss 1360
调整TCP包通过路由器时的MSSMaximum Segment Size,最大数据段大小)。参数max-segment-size是以字节为单位指定MSS,取值勤范围为500 ~ 1460。当IP MTU值设置为1400时,建议MSS值设置为1360
Routerconfig-if# ip nhrp holdtime 450
改变NHRP NBMA地址作为在权威NHRP响应有效通告的时间,也就是改变NHRP NBMA地址可以在多长时间内被通告才算有效。参数seconds是以秒为单位指定NBMA地址有效通告的时间,建议的取值范围为300~600秒。示例中设置的NHRP响应保持时间为450秒。
delay number
Routerconfig-ifdelay 1000
(可选)为在隧道接口上学习的路由修改EIGRP路由度量。参数number用来以秒为单位指定延时,建议值为1000

13.3.2 DM××× hub路由器的配置命令
    本节要介绍在上节介绍的DM××× hub路由器配置步骤中的一些主要配置命令,以便更深入地理解这些命令功能和应用。
1. “ip mtu”命令
     “ip mtu bytes接口配置模式命令用来设置在接口上可以传输的最大IP包大小,单位为字节。默认大小为128KB。如果设置了MTU,则当数据包超过这个大小时会对数据包分段,然后在接收方再进行重新组装。如果要恢复到默认的MTU值,则可使用no ip mtu命令。 
    以下示例是为s0接口设置MTU值为300Byte
interface serial 0
 ip mtu 300
2. “ip nhrp authentication”命令
       “ip nhrp authentication string接口配置模式命令用来为接口配置使用NHRP进行身份认证的字符串(最多8个字符)。可使用前面带no关键字的该命令删除原来使用该命令所做的这个认证字符串配置。这个认证字符串要在源和目的站点同时配置,而且必须一样,以控制只有经过认证的NHRP站点可以与之进行通信。在同一个逻辑NBMA网络中的所有配置了NHRP的路由器必须共享相同的认证字符串。
以下示例是在启用了NHRP的接口配置NHRP认证字符串为specialxx
ip nhrp authentication specialxx
3. “ip nhrp map multicast dynamic”命令
      “ip nhrp map multicast dynamic接口配置模式命令用来设置允许NHRP自动添加spoke路由器到组播NHRP映射中。要禁止这种功能,可使用前面带no关键字的该命令。
    在spoke路由器需要发起mGREIPSec隧道,并注册它们的单播NHRP映射时需要使用该命令。该命令需要启用动态路由协议与mGREIPSec一起工作,因为IGP路由协议使用组播包。这个命令就避免了hub路由器为每个spoke路由器在组播映射中需要配置一个单独的配置行。
以下示例显示了如何在hub路由器上启用这个ip nhrp map multicast dynamic命令,使hub路由器自动添加spoke路由器到组播NHRP映射中。
crypto ipsec profile ***prof
 set transform-set trans2
!
interface Tunnel0
 bandwith 1000
 ip address 10.0.0.1 255.255.255.0
 ip mtu 1436
 ip nhrp authentication test
 ip nhrp map multicast dynamic
 ip nhrp network-id 100000
 ip nhrp holdtime 600
 no ip split-horizon eigrp 1
 delay 1000
 tunnel source Ethernet0
 tunnel mode gre multipoint
 tunnel key 100000
 tunnel protection ipsec profile ***prof
!
interface Ethernet0
 ip address 10.17.0.1 255.255.255.0
4. “ip nhrp network-id”命令
     “ip nhrp network-id number接口配置模式命令用来在接口上启用NHRP。要在接口上禁用NHRP,则可以使用前面带no关键字的该命令。参数用来指定要一个NBMA网络中惟一的32位网络ID,取值范围为1~4294967295。通常在一个逻辑NBMA网络中的所有站点必须配置相同的网络ID
5. “tunnel source”命令
       “tunnel source {ip-address | interface-type interface-number}”接口配置模式命令用来设置隧道接口源地址,也就是它关联的物理接口。要删除隧道接口的源地址,则可使用前面带no关键字的该命令。参数ip-address用来指定在隧道中使用该IP地址作为包的源地址。参数interface-type interface-number用来指定在隧道中使用该接口作为包的源地址。默认是没有设置隧道接口源地址。但不能有两个使用相同封装模式,且具有相同源和目的地址的隧道。
    以下示例显示了如何为GRE隧道设置一个隧道源地址
Routerconfig# interface tunnel 0
Routerconfig-iftunnel source ethernet0 !---配置隧道源地址为ethernet0接口所对应的IP地址
Routerconfig-iftunnel destination 131.108.164.19 !---配置隧道目的地址为131.108.164.19
Routerconfig-if# tunnel mode gre ip
6. “tunnel key”命令
       “tunnel key key-number接口配置模式命令用来为隧道接口启用一个ID密钥,仅应用于GRE。参数key-number用来指定隧道接口ID密钥号,取值范围为0~4294967295。这个命令可作为一种弱的安全保护措施,预防非法配置,或者来自外部的包注入。一旦配置了隧道ID密钥,则所有包都将携带这个ID密钥,不建议使用这个意义并不大的安全配置。要删除原来配置的这个密钥,则可使用无参数和可选项的no tunnel key命令。默认是没有启用隧道ID密钥的。
   【注意】当配置了隧道ID密钥,则IP组播通信将不能支持,除非这个组播通信是进程交换(process-switching)方式(还有一种交换方式就是快速交换——Fash Switching)。另外,在组播通信中,如果配置了隧道ID密钥,你必须在接口上配置no ip mroute-cache接口配置命令。但要注意,这仅应用于Cisco IOS 12.0及以前版本中。
以直示例显示如何设置隧道ID密钥为3
Routerconfig-if# tunnel key 3
7. “tunnel mode”命令
       “tunnel mode gre multipoint接口配置模式命令用来为隧道接口配置封装模式为mGRE(多点GRE),默认为GRE隧道封装模式。要恢复到默认模式,可以使用无参数和可选项的no tunnel mode命令。
在启用mGRE隧道后,你可以启用隧道保护命令,允许你与一个IPSec配置文件进行关联。这样组合mGREIPSec加密技术,就允许一个mGRE接口支持多个IPSec隧道,简化配置的大小和复杂性。
8. “tunnel protection”命令
       “tunnel protection ipsec profile name [shared]”接口配置模式命令用来使隧道接口与一个IPSec配置文件进行关联。默认是没有与IPSec配置文件关联的。要禁止该隧道接口与指定IPSec配置文件关联,则要使用前面带no关键字的该命令。命令中的参数和可选项说明如下:
*              ipsec profile:通过IPSec启用GRE隧道加密。
*              Name:指定用于隧道加密的IPSec配置文件。这个文件名必须与crypto ipsec profile命令中指定的IPSec配置文件名一致。
*              Shared:(可选)允许隧道保护IPSec SADBSecurity Association Database,安全关联数据库)共享相同的动态加密映射,取代在每个隧道接口上所创建的加密映射。
【注意】使用tunnel protection命令所指定的IPSec加密将在GRE封装后执行,而在隧道接口上配置的一个加密映射所指定的加密将在GRE封装前执行。
    使用tunnel protection命令用来指定在GRE被添加到隧道包后,IPSec将进行加密。该命令可以应用于mGRE(多点GRE)和p-pGRE(点对点GRE)隧道中。对于p-pGRE,隧道目的地址将用作IPSec peer地址;对于mGRE隧道,可能是多点IPSec peer,这时,相应的NHRP映射NBMA目的地址来作为IPSec peer地址。
如果你希望在配置了相同本地端点(隧道源)的同一个路由器上配置两个DM××× mGREIPSec隧道,你必须选择shared关键字。
8. “ip tcp adjust-mss”命令
ip tcp adjust-mss max-segment-size接口配置模式命令用来调整通过路由器的TCP SYN包的MSS(最大分段大小),单位为字节。取值范围为500~1460字节。MSS是由发起主机确定的。当一个主机发起一个与服务器TCP会话,它通过使用在TCP SYN包中的MSS选项字段协商IP分段大小。MSS字段的值由主机上配置的MTU确定,MSS值一般要小于MTU值。默认MSS值为1500个字节。可以通过前面带no关键字的该命令恢复到默认MMS设置。
10. “ip nhrp holdtime”命令
      “ip nhrp holdtime seconds接口配置模式命令用来改变NHRP NBMA地址作为权威NHRP响应被有效通告的时间。参数就是指出这个保持时间长短,单位为秒。默认为7200秒,即2个小时。
该命令的配置仅影响权威响应。在Cisco IOS系统中,被通告的保持时间是告诉其他路由器保持在权威NHRP响应中的信息的时间长短。在保持时间过期后,缓存的IP-to-NBMA地址映射条目将丢弃。在NHRP缓存中可以包含静态和动态条目,静态条目永远不会过期,而动态条目会过期的,不管它是权威的,还是非权威的。
以下的示例中,NHRP地址在1个小时内在权威NHRP响应中可以有效被通告。
ip nhrp holdtime 3600