1
计算机网络技术理论与实践
1.6.2.1 5.2.1 静态路由原理及实验

5.2.1 静态路由原理及实验

静态路由是路由器配置中常用的一种路由。对于一些小范围的网络来说,如果路径非常清楚、简单,就可以通过人工的方式来配置这些路由。此外,静态路由也常用在终端的配置上。

1.静态路由配置

静态路由一旦配置好后具有最高的优先级,所以配置时要特别注意,一旦与其他路由信息冲突时,会优先选择静态路由。

静态路由信息配置有两种方式:

(1)指定下一跳路由器IP地址的配置方式。

在配置静态路由时,可以通过为目的网络指定下一跳路由器的IP地址来完成配置,当然这个IP地址是下一跳路由器与该路由器相连端口的IP地址。

在这种配置方式中,数据包选择这条静态路由转发时需要执行下述步骤。

如果该设备与下一跳路由器之间采用的是点对点网络,该设备直接根据该网络中的数据帧格式进行封装,然后将封装好的数据帧从对应接口中发送出去即可。

如果该设备与下一跳路由器之间采用的是广播网络,该设备需要先采用地址解析协议,将下一跳路由器的IP地址解析为该端口的物理地址,然后按照该网络中的数据帧格式进行封装,并将该端口的物理地址填入数据帧头部作为目的地址,然后从对应的接口中发送出去。

在解析完下一跳路由器的IP地址对应的物理地址后,在本路由器中的ARP缓存表中填写的是下一跳路由器的IP地址与该接口物理地址的对应关系。

采用这种配置方式,路由器会自动将该路由器与下一跳路由器相连的接口填入到路由表的对应路由项中。

以Cisco的路由器为例,这种配置方式的配置命令如下:ip route 2.0.0.0 255.0.0.0 1.0.0.2其中2.0.0.0是目的网络地址,255.0.0.0为目的网络的子网掩码,1.0.0.2为下一跳路由器的IP地址。若IP地址1.0.0.2对应接口的MAC地址为00-21-6a-00-00-01,该路由器要向2.0.0.2发送数据包时,需要向1.0.0.2发送数据,所以要解析出1.0.0.2对应的MAC地址,相应地,该设备的ARP表中保存的表项为:

1.0.0.2 00-21-6a-00-00-01

当该设备要向2.0.0.3发送数据时,也需要将数据包转发到IP地址1.0.0.2,而要解析的IP地址1.0.0.2已经存在ARP缓存表中,就不需要再进行ARP解析了。

(2)指定转发接口的配置方式。

在配置静态路由时,也可以通过为目的网络指定本设备的转发接口来配置。在这种配置方式中,数据包选择这条静态路由转发时需要执行下面步骤。

如果该设备与下一跳路由器之间采用的是点对点网络,该设备直接根据该网络中的数据帧格式进行封装,然后将封装好的数据帧从所配置的转发接口中发送出去。

如果该设备与下一跳路由器之间采用的是广播网络,这个时候由于该设备并不知道下一跳路由器的IP地址,所以进行地址解析时,解析的是目的主机的IP地址。该设备发出ARP请求包,其中请求解析的IP地址为目的主机的IP地址,当下一跳的路由器接口收到这个ARP请求包后,发现自己的路由表中有到达该目的主机所在网络的路由项,则将接收到这个数据包接口的物理地址作为解析的结果返回给本设备。该设备按照该网络中的数据帧格式进行封装,并将解析得到的物理地址填入数据帧头部作为目的地址,然后从对应的接口中发送出去。

以Cisco的路由器为例,这种配置方式的配置命令如下:ip route 2.0.0.0 255.0.0.0f0/0其中2.0.0.0是目的网络地址,255.0.0.0为目的网络的子网掩码,f0/0为转发接口。若该路由器要向2.0.0.2发送数据包,而与该路由器f0/0相连的下一跳路由器接口的MAC地址是00-21-6a-00-00-01,需要先解析目的IP地址2.0.0.2,这个IP地址会解析为下一跳路由器接口的MAC地址,解析后该设备ARP缓存表中保存的表项为:

2.0.0.2 00-21-6a-00-00-01

当该设备要向2.0.0.1发送数据包时,由于要解析的IP地址变为2.0.0.1,ARP缓存表中没有该表项,这时候需要再次发起ARP解析过程,会将IP地址2.0.0.1还解析为下一跳路由器接口的MAC地址,解析后,本设备的ARP缓存表中保存的表项为:

2.0.0.2 00-21-6a-00-00-01 2.0.0.1 00-21-6a-00-00-01

可以看到虽然向两个IP地址发送的数据包都要发送给下一跳路由器的接口,MAC地址一样,但是解析的目的IP地址是不同的。

2.默认路由配置

当一台设备想把所有到达不认识网络的数据包都转发到某台路由器上,或者把所有发送到不是与该设备直接相连网络的数据包都转发到某台路由器上时,可以为该设备配置默认路由。

默认路由的优先级最低,只有当路由表中所有表项都无法匹配时,才会按照默认路由项进行转发。

默认路由的配置也有两种方式:配置下一跳路由器IP地址方式和配置转发接口方式,这两种配置方式的区别与普通静态路由一样。

例如,Cisco路由器上的静态路由可以配置如下:ip route 0.0.0.0 0.0.0.0 1.0.0.2其中目的网络地址和目的网络的子网掩码都是0.0.0.0,表示所有到达不知道该怎么走的网络的数据包都向1.0.0.2这台路由器转发。

也可以配置为:

ip route 0.0.0.0 0.0.0.0f0/0表示所有到达不知道该怎么走的网络的数据包都从本设备的f0/0接口转发出去,具体该发给谁,并不知道。

默认路由与日常使用的PC上配置网关的效果是一样的。比如一台设备的IP地址是1.0.0.2,它的网关是1.0.0.1,这就表示当这台设备要向不在同一个网络的其他设备发送数据包时,需要将数据包先发送给1.0.0.1这台网关设备,由其负责寻找到目的网络的路由并转发出去。这就相当在PC上配置了一条默认路由:

ip route 0.0.0.0 0.0.0.0 1.0.0.1

3.静态路由配置实验

本实验主要是学会使用路由器进行网络间的互联,并且能够通过配置静态路由,完成路由器的选路功能,此外,在本次实验中还要学习各种不同路由器的扩展槽和不同种类的扩展模块,以便自行设计更加复杂的拓扑结构。

(1)实验目的

掌握路由器的网络互联方法,能够在模拟环境中进行路由器的静态路由配置,并学会使用不同的路由器和扩展模块搭建网络拓扑。

(2)实验环境

采用Dynamips仿真环境,Dynamips仿真软件的前端可以采用Dynagen进行文本网络拓扑设计,也可以使用GNS3进行图形网络拓扑设计。

(3)实验网络拓扑

在本实验中,采用的网络拓扑结构如图5-12所示。其中采用两台路由器RT1和RT2将两台主机PC1、PC2互相连接在一起,两台路由器之间采用串口进行连接,两台主机与路由器之间都采用以太网进行连接。

img143

图5-12 静态路由实验拓扑图

(4)实验拓扑文件

img144

img145

在这个拓扑结构中可以看到我们使用了两种扩展模块:PA-C7200-IO-FE和PA-4T,PA-C7200-IO-FE扩展模块表示其上有一个快速以太网接口,在本例中将它插在slot0上,所以这个以太网接口的名称为Fastethernet0/0。PA-4T扩展模块表示其上有4个串口,它插在slot1上,所以这四个串口的名称分别为Serial1/0~Serial1/3。

下面对于Dynamips仿真软件中常用的路由器,和这些路由器上支持的扩展模块进行简单的介绍。Cisco扩展模块的命名是有一定含义的。其中FE表示快速以太网接口即百兆以太网接口,GE表示千兆以太网接口,E表示标准以太网接口即10兆以太网接口,T表示串口。接口类型前面的数字表示有几个这种类型的接口,如果只有一个通常将1省略。

一般高端路由器默认是不带任何扩展模块的,所以初始没有任何接口,需要安装扩展模块后才可以使用,比如路由器C7200系列,而有些低端路由器本身的slot0上默认是有接口模块的,如C2600系列的slot0上的接口模块默认有两个快速以太网接口。

①路由器C7200系列

这一系列的路由器通常包含两种扩展槽:slot0和slot1-5,这两种扩展槽支持的扩展模块不同,而且不能互换。

Slot0上支持的扩展模块包括以下几种。

·C7200-IO-FE:这种扩展模块上有1个Fastethernet接口;

·C7200-IO-2FE:这种扩展模块上有2个Fastethernet接口(有些Dynamips版本不支持);

·C7200-IO-GE-E:这种扩展模块上有1个Ethernet接口和1个GigabitEthernet接口;Slot1-5上所支持的常用扩展模块包括以下几种。

·PA-2FE-TX:这种扩展模块上有2个Fastethernet接口;

·PA-FE-TX:这种扩展模块上有1个Fastethernet接口;

·PA-4E:这种扩展模块上有4个Ethernet接口;

·PA-4T:这种扩展模块上有4个Serial接口;

·PA-8E:这种扩展模块上有8个Ethernet接口;

·PA-8T:这种扩展模块上有8个Serial接口;

·PA-GE:这种扩展模块上有1个GigabitEthernet接口。

②路由器C2600系列

这一系列的路由器有2610/2611/2620/2621/2610XM/2620XM/2650XM,通常只包含一种扩展槽,其上支持的扩展模块包括以下几种。

·NM-16ESW:这种扩展模块上有16个Fastethernet交换接口,可以充当交换机使用;

·NM-1E:这种扩展模块上有1个Ethernet接口;

·NM-1FE-TX:这种扩展模块上有1个Fastethernet接口;

·NM-4E:这种扩展模块上有4个Ethernet接口;

·CISCO2600-MB-2E:这种扩展模块上有2个Ethernet接口;

·CISCO2600-MB-2FE:这种扩展模块上有2个Fastethernet接口。

③路由器C3600系列

这一系列的路由器有3620/3640/3660,默认没有扩展模块,必须插上扩展模块才能使用。这一系列路由器中3620只能使用2个扩展槽,3640可以使用4个扩展槽。其上支持的扩展模块包括以下几种。

·NM-16ESW:这种扩展模块上有16个Fastethernet交换接口,可以充当交换机使用;

·NM-1E:这种扩展模块上有1个Ethernet接口;

·NM-1FE-TX:这种扩展模块上有1个Fastethernet接口;

·NM-4E:这种扩展模块上有4个Ethernet接口;

·NM-4T:这种扩展模块上有4个Serial接口;

·Leopard-2FE:这种扩展模块上有2个Fastethernet接口(3660专用,并且只能插在slot 0上)。

④路由器C3725/C3745/C2691

这一系列的路由器有C3725/C3745/C2691,通常只包含一种扩展槽,其上支持的扩展模块包括以下几种。

·GT96100-FE:这种扩展模块上有2个Fastethernet接口(只能插在slot 0上);

·NM-16ESW:这种扩展模块上有16个Fastethernet交换接口,可以充当交换机使用;

·NM-1FE-TX:这种扩展模块上有1个Fastethernet接口;

·NM-4T:这种扩展模块上有4个Serial接口。

(5)配置步骤

步骤1

首先用start命令将路由器RT1、RT2和两台主机PC1、PC2启动起来;

步骤2

用idlepc get命令获取到RT1、RT2、PC1、PC2的idlepc值;

步骤3

打开四个控制台窗口,每个窗口都使用Telnet客户端分别登录到RT1、RT2、PC1和PC2设备上。

步骤4

配置路由器RT1与RT2之间的串口连接。配置时从底层向高层配置,先配置物理层的时钟信息,再配置数据链路层协议,最后配置网络层的IP协议。

在配置串口时,一端需要配置成为DCE端,另一端需要配置为DTE端。DCE端提供时钟,而DTE端跟随时钟。所以只要在DCE端配置时钟即可,配置了时钟的那端就是DCE端,没有配置时钟的那端是DTE端。

进入RT1的s1/1接口配置界面,配置时钟为115200:RT1(config-if)#ClockRate 115200

然后将两端的串口在数据链路层都配置成PPP协议,如果不配置,默认的数据链路层采用的是HDLC协议。

进入RT1的s1/1接口配置界面和RT2的s1/0接口配置界面,配置PPP协议:

RT1(config-if)#Encapsulation PPP

在两端的串口上各配置一个IP地址和子网掩码,保证这两个IP地址在同一个网段。

RT1(config-if)#ip address 1.1.1.1 255.0.0.0

RT2(config-if)#ip address 1.1.1.2 255.0.0.0

将这两个串口都启动起来,这样两台路由器就可以通过串口进行互通了。

步骤5

路由器RT1与PC1之间采用的是以太网连接,以太网不用配置物理层和数据链路层,只要配置网络层IP协议即可。

进入RT1的以太网接口F0/0配置界面,配置IP地址和子网掩码:

RT1(config-if)#ip address 2.1.1.1 255.0.0.0

进入PC1的以太网接口F0/0配置界面,配置IP地址和子网掩码:

PC1(config-if)#ip address 2.1.1.2 255.0.0.0

RT2和PC2的以太网接口进行同样配置,一个配置为3.1.1.1 255.0.0.0,一个配置为3.1.1.2 255.0.0.0。此外,这四个接口都要启动起来。

配置到这里,RT1与RT2、RT1与PC1、RT2与PC2这些网络内部的设备之间都已经可以进行数据传输了。但是不同网络之间的设备还是不能够进行通信,这需要配置静态路由。

步骤6

配置路由器R1、R2和主机PC1、PC2上的静态路由,使得PC1与PC2之间可以互相通信。

首先要在PC1和PC2上分配配置一个默认路由,这样这两台PC向不在同一网络中的设备发送数据包时,会根据默认路由发送给自己的网关,由网关进行路由选择和转发。

在PC1和PC2的配置界面下配置默认路由:

PC1(config)#ip route 0.0.0.0 0.0.0.0f0/0

或者

PC1(config)#ip route 0.0.0.0 0.0.0.0 2.1.1.1

当然如果只想和PC2实现互通的话,也可以不配置默认路由,而是配置一个到PC2所在网络的静态路由:

PC1(config)#ip route 3.0.0.0 255.0.0.0 2.1.1.1

PC2上可以进行相似配置。

RT1上只知道与自己直连的网络1.0.0.0和2.0.0.0,不知道网络3.0.0.0的路径,所以需要在RT1上配置一条到达网络3.0.0.0的静态路由:

RT1(config)#ip route 3.0.0.0 255.0.0.0 1.1.1.2

或者

RT1(config)#ip route 3.0.0.0 255.0.0.0serial 1/1

RT2上只知道与自己直连的网络1.0.0.0和3.0.0.0,不知道网络2.0.0.0的路径,所以需要RT2上配置一条到达网络2.0.0.0的静态路由:

RT2(config)#ip route 2.0.0.0 255.0.0.0 1.1.1.1

或者

RT2(config)#ip route 2.0.0.0 255.0.0.0serial 1/0

步骤7

测试PC1是否能够与PC2互相ping通,可以在PC1上ping 3.1.1.2。

(6)问题和分析

问题1:当PC1配置到3.0.0.0网络的静态路由时,PC1是否能够与RT2的接口1.1.1.2互通?

解释:不行,PC1上配置到3.0.0.0网络的静态路由时,PC1只知道到网络3.0.0.0应该怎么转发,不知道到网络1.0.0.0应该怎么转发,所以不能互通,解决的方法如下。

①再配置一条到网络1.0.0.0的静态路由:

PC1(config)#ip route 1.0.0.0 255.0.0.0 2.1.1.1

②在PC1上配置默认路由。

问题2:当配置完成后在PC1上ping PC2时,会出现丢包的现像,这是为什么?

解释:在路由器上ping的工作原理与PC上不太相同,由于Dynamips中采用的是路由器来模拟PC,所以PC1发送ping命令按照的是路由器的方式,即当不知道目标MAC地址时会先将本包丢弃,再触发ARP解析过程,所以每次需要进行ARP解析时就会丢弃一个数据包。

问题3:当配置完成后PC1ping PC2时,为什么至少会丢两包?当PC1和PC2上配置的路由项分别采用下一跳路由器IP地址方式和转发接口方式时,丢包的个数有什么区别,为什么?

解释:当PC1ping PC2时,PC1在使用ARP解析RT1与其相连端口的MAC地址时会丢失一包,RT2使用ARP解析PC2的MAC地址时会丢失一包,所以至少丢失两包。

当PC1和PC2上配置的路由项分别采用下一跳路由器IP地址方式和转发接口方式时,在从PC2向PC1发送ping响应包的过程中,会有所区别。如果均采用下一跳路由器IP地址方式配置路由项,从PC2向PC1发送ping的响应包不会丢包,如果均采用转发接口方式配置路由项,从PC2向PC1发送ping的响应包时,在PC2处会因为要将PC1的IP地址解析为RT2与其相连的端口的MAC地址而再丢一包,具体原因可以参考前面“静态路由配置”内容。

问题4:同一物理网络内,当两个PC分别配置到不同的网段时,它们之间不通过路由器的话是否能够互通?如何互通?

解释:是可以互通的,比如PC1配置为1.0.0.1 255.0.0.0,PC2配置为2.0.0.1 255.0.0.0,如果PC1上配置一条静态路由:

ip route 2.0.0.0f0/0

PC2上配置一条静态路由:

ip route 1.0.0.0f0/0

这样就可以互通了,互通的原理是PC1上ping 2.0.0.1时,由于不在同一个网段,会根据静态路由将数据包从f0/0接口转发出去,而PC1不知道下一跳路由器的IP地址,所以ARP解析时的IP地址为2.0.0.1,这时候PC2会收到PC1的ARP请求包,因为它们在一个物理网络内。PC2会向PC1回复自己的IP地址和MAC地址,这时候PC1就会根据PC2的MAC地址组建以太网帧发送给PC2,同样的过程,PC2会将响应回复给PC1,所以能够ping通。

4.单臂路由配置实验

使用路由器完成VLAN之间的互通,并使用单臂路由通过一个物理接口就完成多个VLAN的互通。

(1)实验目的

掌握通过路由器实现不同VLAN间互通的方法,学会使用单臂路由通过交换机的Trunk接口完成多个VLAN间的互通。

(2)实验环境

采用Dynamips仿真环境,Dynamips仿真软件的前端可以采用Dynagen进行文本拓扑设计,也可以使用GNS3进行图形拓扑设计。

(3)实验拓扑

在本实验中,采用的拓扑结构如图5-13所示。交换机SW1将主机PC1和PC2组成局域网,SW2将主机PC3组成局域网,SW1与SW2之间都通过Trunk接口相连,并都连接到一台路由器RT1的两个以太网接口上。

img146

图5-13 VLAN间的互通拓扑结构图

(4)配置过程

与前面相似的操作过程就不再详细描述了。

在这个实验中将SW1的f1/11接口配置为VLAN 2,f1/12接口配置为VLAN 3;SW2不配置,所有的接口就默认为VLAN1。由于PC1归属于VLAN2,PC2归属于VLAN 3,PC3归属于VLAN1,所以3台PC上的IP地址都需要配置为不同的网段,分别是1.1.1.2 255.0.0.0、3.1.1.2 255.0.0.0、2.1.1.2 255.0.0.0。这三台PC要想相互通信就必须经过路由器才能够完成。

经过路由器有两种互通方法,第一种是每个VLAN连一根单独的线路到路由器的一个物理接口,比如SW2与路由器的连接方法,这时PC3发送的数据包是可以直接到达路由器的接口,发送过程是PC3发送的数据包经过SW2的f1/11接口进入SW2中,进入时打上了VLAN 1的标签,当从f1/1接口出来时会删除VLAN 1的标签发送到路由器的f1/1接口上,这样路由器就可以识别PC3发送出来的数据包,只需将路由器的f1/1接口上配置为与PC3在同一个网段的IP地址,并且将PC3的网关配置为路由器的f1/1接口就可以了。

第二种方式是用一条物理线路来互联多个VLAN,比如SW1中,f1/2接口配置为Trunk模式,并允许所有VLAN的数据包通过,这时从PC1和PC2向路由器发送的数据包,路由器是接收不到的。这是因为PC1发送出来的数据包在经过SW1的f1/11接口进入SW1时会打上VLAN 2的标签,而在通过Trunk模式的f1/2接口到达路由器时,VLAN 2的标签不会被删除,而带VLAN标签的数据包路由器是不能识别的,所以不能互通。

在第二种方式下要想让交换机能够与路由器互通就需要对路由器进行特殊的配置,将与SW1的f1/2接口相连的路由器的f1/0接口划分出两个子接口f1/0.1和f1/0.2,并在这两个子接口上分别封装dot1q 2和dot1q3,由于dot1q就是VLAN的标签的协议,所以封装dot1q 2就意味着能够进行VLAN 2标签的添加和删除,可以接收带有VLAN 2标签的数据帧,并把帧中的VLAN 2标签删除后发到路由器内部,从此接口发出的数据帧也会带上VLAN 2的标签。这样将子接口f1/0.1与PC1配置到一个网段,它就可以直接与PC1进行通信,将子接口f1/0.2与PC2配置到一个网段,它就可以与PC2进行通信,将PC1和PC2的网关分别配置为子接口f1/0.1和子接口f1/0.2,它们就能够通过这两个子接口与其他网络互通。

这样配置好后,路由器上会有到达VLAN1、VLAN2和VLAN3这三个网络的三条直连路由,对应的转发接口分别是f1/1,f1/0.1和f1/0.2。路由器通过这三条路由可以将这三个网络进行互联,PC1、PC2和PC3之间就能够互相通信了。

步骤1

路由器的f1/1接口与PC3配置到一个网段,并且将PC3的网关配置为路由器的f1/1接口。

进入路由器的f1/1接口配置模式,配置IP地址:

Router(config-if)#ip address 2.1.1.1 255.0.0.0

PC3的IP地址配置为2.1.1.2 255.0.0.0配置方式同上。

进入PC3的配置模式,配置默认路由:

PC3(config)#ip route 0.0.0.0 0.0.0.0 2.1.1.1

这个默认路由起到与配置网关相同的作用。

步骤2

将SW1的f1/2接口配置为Trunk模式,并且允许所有VLAN通过。

为路由器的f1/0配置子接口f1/0.1和f1/0.2,并分别封装dot1q 2和dot1q 3,然后分别与PC1和PC2配置到一个网段,并将PC1和PC2的网关分别配置为f1/0.1和f1/0.2。

进入路由器的f1/0.1配置模式,封装dot1q,并配置IP地址:

RT1(config)#interface f1/0.1

RT1(config-if)#encapsulation dot1q 2

RT1(config-if)#ip add 1.1.1.1 255.0.0.0

进入路由器的f1/0.2配置模式,封装dot1q,并配置IP地址:

RT1(config)#interface f1/0.2

RT1(config-if)#encapsulation dot1q 3

RT1(config-if)#ip add 3.1.1.1 255.0.0.0

PC1和PC2的IP地址分别配置为1.1.1.2 255.0.0.0和3.1.1.2 255.0.0.0。

进入PC1和PC2的配置模式,配置默认路由:

PC1(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1

PC2(config)#ip route 0.0.0.0 0.0.0.0 3.1.1.1

步骤3

测试看PC1是否能够与PC2和PC3互相通信,在PC1上ping 3.1.1.2是否通畅,ping 2.1.1.2是否通畅。

(5)问题和分析

问题1:在路由器的子接口中,no shutdown后路由器仍然不能与对应PC互相ping通?

解释:子接口中no shutdown不起作用,要到物理接口中no shutdown才行。

问题2:能否在物理接口中封装dot1q协议?

解释:不行。

问题3:能否在子接口中不封装dot1q就配置IP地址?

解释:不行,不封装dot1q就不是一个真正支持VLAN标签的子接口,所以不能配置IP地址。