返回目录

CCNA实验手册

Version 3.0

By @红茶三杯

ccietea.com 敏捷的网络工程师之路

 

 

 

 

 

 

发布时间

2014-09-01

文档地址

http://ccietea.com

文档作者

红茶三杯(微博

下载手册

网盘下载地址


 

修订记录

时间

版本

内容

2011-12-01

V1.0

创建文档。

2012-04-01

V2.0

重新修订各个实验及配置描述。

2014-08-05

V2.6

增加综合实验、三层交换等。

2014-11-25

V3.0

修订上一个版本中的错误;增加综合实验2;增加GNS3等章节。

 

 

 

 

文档说明

本文档供广大网络技术爱好者学习及参考,请勿用于商业用途。作者享有版权,欢迎转载分享,转载请注明出处。在使用文档的过程中,如果发现错误,或者对文档有任何建议,欢迎联系本人,个人站点:http://ccietea.com。个人微博:http://weibo.com/vinsoney

 


 

目 录

1       实验准备... 4

1.1       通过Console接口登录设备... 4

1.2       Cisco IOS基础... 9

1.3       GNS模拟器... 12

2       路由篇... 22

2.1       路由器基础配置... 22

2.2       静态路由... 28

2.3       RIPv2. 34

2.4       EIGRP. 41

2.5       OSPF单区域... 46

2.6       OSPF多区域... 50

3       交换篇... 54

3.1       二层交换基础... 54

3.2       使用以太网子接口实现VLAN之间的互访... 57

3.3       二层交换机的管理VLAN.. 60

3.4       使用SVI实现VLAN间的互访... 66

4       安全篇... 69

4.1       标准ACL. 69

4.2       扩展ACL. 72

4.3       NAT. 74

4.4       DHCP. 80

4.5       综合实验1. 82

4.6       综合实验2. 85

5       广域网篇... 89

5.1       PPPPAP认证)... 89

5.2       PPPCHAP单向认证)... 91

5.3       PPPCHAP双向认证)... 93

5.4       帧中继基础实验... 94

5.5       帧中继Hub&Spoke模型基础实验... 97

5.6       帧中继P2P子接口实验... 101

6       综合实验... 104

6.1       综合实验1. 104

6.2       综合实验2. 115

 


 

1        实验准备

1.1      通过Console接口登录设备

11 数据网络

在网络工程领域,数据网络(Data Network),如图1-1所示,指的是由各种网络设备(例如路由器、交换机、防火墙、负载均衡器)、终端及服务器等搭建而成的一张网。数据网络的基本功能是使得网络上不同节点之间能够相互通信,从而使得各种业务系统能够在网络上正常运行。当然这些设备是需要经过我们的配置及部署之后才能够发挥作用,数通工程师(在许多场合也被称为网络工程师)根据实际的需求,对网络进行规划、设计,并最终将设备调试妥当,把网络搭建起来。

通常对于设备的调试,大多是基于命令行的。网络设备(例如路由器、交换机、防火墙等)在面板上都会有一个用于配置和管理的专用接口 —— Console口(或CON口),如图1-2所示,通过这个接口并使用专用的连接线缆将设备与管理PC进行连接,即可实现对设备的配置及管理,这是我们在工程实施中最常用的设备配置及管理方法之一。在设备开箱上电后的初次调试,通常都是通过设备的Console接口对其进行配置。现在我们通过四个步骤进行讲解:

1. 认识设备的Console接口

2. 准备好相关线缆

3. 搭建配置环境

4. 通过终端管理软件登陆设备

下面我们来看看如何使用PC通过console口对设备进行配置和管理。

1.     认识设备的Console接口

12 设备的Console接口

工业级的数据通信设备:路由器、交换机、防火墙等,一般都有配备Console口,用于设备的配置及管理,该接口会标记“Console”,或者CON字样,如下:

13 Console接口

上图所示的是一个RJ45Console口,也就是采用水晶头的Console线进行连接的接口,大部分数通设备都是RJ45Console接口。

2.     准备好相关线缆

 

14 USB-RSR232Console线缆

Console线缆(上图右)一般会随设备装箱,线缆的一端为RJ45水晶头,另一端为DB9的串口接头。RJ45接头用于连接网络设备的RJ45标准的Console口,线缆另一端的串口用于连接PC机,现在大部分台式机都有串口可以直接连接Console线缆。遗憾的是,大部分笔记本电脑上并没有配置串口,因此我们需要另一根线缆(上图左)来转接,这就是USB-RS232线缆。这根线缆可以说是数通工程师必备的工作工具,各大电子产品商铺均有销售(USB-RS232需要安装驱动才可使用,驱动程序安装包随线缆附送)。

3.     搭建配置环境

15 线缆的连接

 

如图1-5所示,将USB-RS232线缆的USB接口连接到笔记本电脑上,线缆另一头的RS232接头连接到Console线的串口,Console线的RJ45接头则连接网络设备的Console口,配置环境即可搭建完成。

4.     通过终端管理软件登录设备

在管理PC上,我们需要准备好终端管理软件用于管理和配置网络设备。常用的终端管理软件有:

l  Windows自带的终端管理工具(WIN7系统没有自带该工具)

l  SecureCRT

l  Putty

本文档以SecureCRT为例做讲解。请自行下载SecureCRT并安装。安装完成之后,打开软件。在自动弹出的Connect对话框中选择下图所示的按钮来(Qucik Connect)创建一个连接:

16 新建一个连接

在弹出的Quick Connect对话框中选择“serial”,即使用串行口:

17 选择连接类型

进一步配置如下,波特率BaudRate选择9600(有些设备可能波特率并非9600,具体值请参考设备随机文档),Data Bits选择8Stop Bits选择1

18 修改连接参数

注意在此处Port的选择,视实际情况而定,当用笔记本通过USB-RS232线缆转接Console线管理设备时,USB-RS232线缆是需要在windows系统上安装驱动程序的,这实际上是在笔记本电脑上通过USB接口来模拟COM口,因此安装完成的结果是在系统中会出现一个模拟的COM口,该COM口编号可在右键“我的电脑”-“计算机管理”-“设备管理”-“端口(COMLPT)”中看到相应的编号,该接口编号要与SecureCRTPort选项对应:

19 留意Port编号

完成后,勾选“save session”将会话保存,然后点击Connect按钮,正常的话即可登陆到设备的命令行管理界面,现在就可以开始愉快地配置设备了:

110 登陆到设备

1.2      Cisco IOS基础

Cisco IOSCisco Internetwork Operating System,思科网际操作系统)简单的说就是一套运行在Cisco网络设备上的操作系统,就像WindowsPC的操作系统。针对IOS的配置通常是通过命令行界面(Command Line InterfaceCLI)进行,因此掌握各种常用的IOS命令是从事数据网络建设的基础。当我们按照上一个小节讲述的方法搭建好配置环境后,即可通过终端管理软件登陆到网络设备上,而登录进入后看到的界面,就是IOSCLI

1.     Cisco IOS配置模式

111 Cisco IOS配置模式

IOS定义了各种各样的配置模式(如图1-11所示),要想对设备的某个模块进行配置,就要进入相应的配置模式。配置模式的设定使得命令更加模块化和层次化,而且也避免了误操作。当我们登陆一台设备的IOS命令行时,可能看到是“Router>”这样的指示符,Router是设备的名称,这是可以自定义的,而“>”这个符号则表示你当前处于“用户模式”,在用户模式下我们只能够做一些基本的查看及验证命令。在用户模式下使用“enable”命令,你会发现“Router>”变成了“Router#”,这表示你已经进入“特权模式”,在这个模式下可以执行更多的命令。而继续使用“configure terminal”命令,则可进入“全局模式”,在该模式下可以对设备的全局特性或功能做一些调试,例如修改设备名称,定义特权密码,或者开启、关闭某个服务等。而在全局模式下使用“interface”关键字加上某个接口,例如interface serial 0/0,则会进入到serial0/0这个接口的配置模式下,就可以针对该接口进行相应的配置,而且此时所做的配置只会影响这个接口。使用“exit”命令可以返回上一个模式。

2.     IOS的命令及关键字

112 命令

一条典型的IOS命令如上图所示,“ping”是关键字,“192.168.1.2”是参数,这条命令用于探测本地到192.168.1.2的连通性。再与“hostname R1”这条命令中,“hostname”是关键字,“R1”是参数,这条命令被配置后设备的名称就变成了R1。当然要注意的是特定的命令需要在正确的配置模式下完成输入才能生效,否则就有可能会报错。

3.     使用IOS的帮助功能

初学IOS的时候,你可能会感觉非常吃力,因为有太多的命令需要去记,其实不用着急,许多命令和关键字都是在重复使用中自然而然就记住了,而且IOS强大的帮助功能也使我们上手更容易。

l  命令提示及补全

当我们要输入一个关键字,但你却又忘记了这个关键字的全称而只是记得开头的几个字符,这时可以在键入头几个字符后按“?”号:

R1(config)#ho?

hostname 

上面的例子中,我想给设备改个名字,但是只记得关键字的开头是ho,于是我输入“ho?”,系统会自动弹出ho开头的所有关键字。另外,如果输入一个关键字后,后续的关键字或者参数我们不知道要再键入什么信息了,亦可在键入该关键字后,输入空格,再输入“?”号:

R1(config)#hostname ?

  WORD  This system's network name

上面的例子中,我们输入了hostname,但是hostname后面该输入啥,我忘了,于是我使用问号,即可得到提示。

另外,IOS还有命令补齐功能,也就是在你输入一个关键字的开头几个字符后,使用“[tab]”键(大小写切换键上面的那个键),系统会自动将命令补齐,例如下面的例子:

R1(config)#ho[tab]      

R1(config)#hostname

我输入ho后接着按Tab键,系统自动将关键字补齐为hostname。当然这里要求当前配置模式下ho开头的就这一个关键字。补充一点,其实IOS所有的命令,都可以采用简化的书写方式,只要不会引发歧义,例如“hostname hello”这条命令,等同于“ho hello”,也就是说关键字只输入了“ho”这两个字符,这大大提升了我们的配置效率,当然采用这种输入方式的前提是,输入的关键字不能有歧义,“ho”开头的不能存在2个或以上的关键字,如果存在,那就多输入几个字符,例如“host hello”。

 

l  命令语法检查

当输入的命令有错误时,系统会弹出相应的报错:

示例1

R1(config)#router ospf

% Incomplete command.                         !! 命令不完整

命令没输完就按了回车,router ospf后面还有其他参数。

 

示例2

R1(config)#router ospd 1

                  ^

% Invalid input detected at ‘^’ marker.      !! 箭头所指字符无法识别,可能输入有误

 

示例3

R1(config)#s

% Ambiguous command:  “s“                 !! 未知的输入

s开头的关键字太多,只输入了一个字符,系统表示不知道你想输入啥。

 

l  热键和快捷方式

常用的快捷键:

- Tab             填写命令或关键字的剩下部分。

- Ctrl-U         删除一整行

- Ctrl-Z         退出配置模式并返回到执行模式

- 向下箭头   用于在前面用过的命令的列表中向前滚动

- 向上箭头   用于在前面用过的命令的列表中向后滚动

- Ctrl-Shift-6        用于中断诸如 ping traceroute 之类的 IOS 进程

- Ctrl-C         放弃当前命令并退出配置模式

 

1.3      GNS模拟器

几乎所有知识或者技能的学习都不应该脱离实践或者应用,这条规则在网络工程领域显得更为突出,学了那么多协议或者技术,最终都应该与业务及项目相结合。但是对于大多数数据通信的爱好者、从业者而言,拥有一套由真实设备组建的实验机架是非常奢侈的事情。GNS模拟器 —— 这款经典的网络模拟软件绝对是不可多得的学习及工作的好伴侣。它能够从底层模拟包括Cisco在内的多个厂商的设备,支持的设备类型丰富多样,其中包括路由器、交换机、防火墙、终端等等,整合了抓包工具使得报文分析更加简单,支持与真实设备桥接,支持IOS导入使得对设备的仿真上升到一个新的高度,几乎是100%还原真实设备,而且操作非常简单快捷,上手容易,几乎是网络工程行业的技术工程师,或者技术爱好者必备的软件之一。

这款软件可以直接从其官方网站 http://www.gns3.com/ 免费下载。本文档以GNS3-1.2.3为例进行讲解。从官网上下载到GNS3-1.2.3-all-in-one.exe这个安装包,双击即可开始安装,安装过程比较简单,一路按Next即可。

1.3.1       实验准备

我们需要使用到的软件有:SecureCRTGNSWireshark,以及Cisco IOS

其中SecureCRT用于终端管理,Wireshark是经典的抓包工具,它被捆绑在GNS的安装包之中,可以随后者一并安装。关于Cisco IOS,请自行上网搜索,本手册涉及到的相关实验,可使用c3640-ik9o3s-mz.124-25.bin这款IOS来完成。

1.      环境调试

GNS软件安装完成后,需配置一些基本参数。打开GNS,关掉弹出的“Getting Started”,就能看到GNS的主界面,如图1-13所示:

113 GNS主界面

现在我们要对GNS做一些基本的设置。首先要创建路由器或交换机的实例,点击Edit / Preferences

114 配置首选项

选择IOS Routers(如图1-14所示),点击New添加一个实例,在弹出的对话框中,找到我们事先准备好的Cisco IOS,这里我以c3640-ik9o3s-mz.124-25.bin为例。完成后点击Next(如图1-15所示)。

115 选择IOS

现在选择实例名称及设备平台。实例名称可以随便设置,我这里设置的是C3640-1,平台的选择则要根据IOS而定,这里当然应该选C3600平台,Chassis可选择3640(如图1-16所示),点击Next

116 配置设备名称、平台类型,以及型号

接下来是RAM的分配,使用默认值即可,然后继续点Next

下面是为设备配置硬件模块,这个可以根据自己的需要进行配置,Slot是模块的插槽,每个槽位都可以选择相应的模块,例如NM-1FE-TX1个快速以太网接口的网络模块,NM-4T4Serial接口的网络模块,NM-16ESW16个快速以太网接口的交换模块。在这个例子中,我为0号槽位配置了NM-1FE-TX模块,1槽位配置了NM-4T(如图1-17所示)。如此一来,我这台路由器就拥有了一个快速以太网接口和4Serial接口。以这台路由器为例,快速以太网接口的编号是FastEthernet0/0,而4Serial接口分别是Serial1/0Serial1/1Serial1/2Serial1/3

点击Next,到了Idle-PC的配置界面,可以先不填写,直接点Finish

 

 

117 为设备配置模块

这就完成了一个路由器的配置。你可以根据需要再配置几个实例,可以为路由器配置不同的模块以便应对不同的实验,另外也可以增加交换机的实例,说到交换机的实例,c3640-ik9o3s-mz.124-25.bin这个IOS可以在GNS环境中用于三层交换机,实例的创建与上述过程类似,只不过在Name and Platform界面需勾选This is an EthernetSwitch选项,同时在为设备加载模块时,选择NM-16ESW

回到主界面,点击左侧设备列的第一个图标(Browse Routers),就可以看到我们刚刚创建的路由器C3640-1(如图1-18所示):

118 查看设备列表

现在选择C3640-1,然后拖动鼠标到拓扑画布上放开,即在拓扑中添加了一台路由器(如图1-19所示)。

119 添加实验设备到拓扑中

对设备点击右键,选择Start,该路由器就开始启动了。待启动之后,双击设备图标,即可弹出命令行窗口对设备进行配置。

2.      计算设备IDLE

GNSIDLE值是模拟设备的一个全局参数,这个参数根据IOS的不同需计算不同的值,它会直接关系到模拟器对电脑CPU的占用,该值如果设置不妥,运行少数几台路由器就可能把电脑的CPU跑到100%,因此在开始实验之前,需要对IDLE值进行调试,在拓扑中添加路由器,并把路由器开启后,双击图标进入配置界面,随便敲两下回车。

然后对路由器图标点右键,选择Idle-PC,软件会自动计算Idle值,计算完成后会出现一个下拉单(如图1-20),我们选择带星号的值即可。Idle值的计算只需一次,后续就无需在重复计算了。

120 IDLE值的计算

1.3.2       使用GNS搭建一个简单的拓扑

现在,我们要使用GNS来搭建一个简单的实验拓扑,这个拓扑非常简单,只有两台路由器,使用快速以太网接口直连。点击主界面左侧的Browse Router图标,选择C3640-1然后拖到拓扑画布上放开,重复这个动作,这样我们就由了两台路由器(如图1-21所示):

121 在拓扑中放置两台路由器

由于这种各类型的路由器之前就已经安装了相应的模块:1个快速以太网接口及4Serial接口,我们现在有两台这样的路由器。接下来要在路由器之间连线。在主界面左侧选择Add a Link图标,鼠标指针会变成一个十字,对着R1点击鼠标,会弹出R1的可选接口列表(如图1-22所示):

122 R1的接口列表

选择FE0/0接口,然后再到R2上点击一下鼠标,弹出R2的接口列表,也是选择FE0/0接口,如此一来,我们就在R1FE0/0接口及R2FE0/0接口之间拉了一条网线(如图1-23所示):

123 完成设备连线

现在,点击主界面工具栏中的绿色播放键(Start/Resume all Devices),将所有设备开启,我们会看到设备的接口“指示灯”变成了绿色。待设备开启完成后,双击图标,即可开始实验。GNS缺省使用putty这个控制台管理软件进行设备配置,也就是双击图标后弹出的那个配置工具,这个工具的使用体验可能不是最佳的,可以将缺省的配置工具修改为SecureCRT,点击菜单栏的Edit/Preferences,点击左侧的General,选择Console applications选项卡,在图1-24红色框内Preconfigured commands处选择SecureCRT,然后点击set按钮,并修改SecureCRT的软件目录(根据实际的软件目录修改):

124 修改缺省的控制台软件

2        路由篇

2.1      路由器基础配置

实验目的

1.      掌握通过Console登录CISCO路由器的方法;

2.      掌握常用的CISCO IOS命令。

拓扑及需求

21 基础实验网络拓扑

配置及实现

如果你是采用真实的设备进行这个实验,那么请按照图示的要求在R1R2这两台路由器的以太网接口之间连接一条网线(图2-1中的FE0/0表示的是路由器的一个快速以太网接口,FEFastEthernet的缩写,“0/0”的第一个0表示槽位Slot,第二个0表示接口编号)。当然,可能实际互连的接口并非两者的FE0/0接口,如果不是FE0/0,则请在配置接口时按照实际情况进行相应的配置。

1.      配置路由器hostname

R1的配置如下:

Router>                                                  !! Router>表示当前处于用户模式

Router> enable                                       !! 使用enable命令进入特权模式

Router#                                                  !! Router#表示当前处于特权模式

Router# configure terminal                            !! 使用configure terminal进入全局配置模式

Router(config)#                                      !! Router(config)#表示当前处于全局配置模式

Router(config)# hostname R1                !! 修改路由器名称为R1

R1(config)# exit                                      !! 从当前的全局配置模式退回到特权模式

Router#

 

R2的配置如下:

Router> enable

Router# configure terminal      

Router(config)# hostname R2

R2(config)# exit

R2#

 

2.      配置路由器的MOTD

设置登录路由器时控制台显示的欢迎信息,欢迎信息使用一对起始字符和相同的结束字符区隔,例如下面的例子中,两个#号中间的内容就是我们所配置的欢迎信息:

R1(config)# banner motd #Hello , This is a Test of ccietea.com#

                     命令配置上去后,重新登录R1就会看到这条提示。                  

 

3.      在实验环境下,经常会用到如下三条命令来提高实验的效率

R2(config)# line console 0                                                  !! 进入console

R2(config-line)# no exec-time

R2(config-line)# logging synchronous

R2(config-line)# exit

R2(config)# no ip domain lookup

line console 0用于进入设备的管理接口,no exec-time等同于exec-time 0 0,用于将控制台设置为永远不超时,如此可以避免在实验过程中,设备因为一段时间未有操作导致超时退出,提高实验的效率。logging synchronous命令用于配置console的日志同步功能,使得命令行界面弹出的日志信息不会打断用户正在输入中的配置命令。no ip domain lookup命令用于关闭设备的域名解析功能,如果ip domain lookup这条命令没有no掉(缺省是打开的),则如果在特权模式下键入非关键字字符(例如误操作),则设备会认为用户输入的是一个主机名,于是开始在网络上解析这个主机名对应的IP地址,而解析过程中我们无法对设备进行进一步的配置,影响实验效率。

 

4.      设置和取消密码:Console密码、特权模式密码、VTY线路密码

R1配置Console密码:

R1(config)# line console 0                             !! 进入Console

R1(config-line)# password ccietea.com         !! 配置Console口密码

R1(config-line)# login                                    !! 登录Console时,需提供密码进行身份验证

R1(config-line)# exit

配置完上述命令后,后续若再使用console口对设备进行管理就需输入相应的密码。

如果要实现通过Console口登陆时无需输入密码进行身份验证,则使用no login命令。删除密码使用:no password

 

R1配置特权密码:

R1(config)# enable password ccietea

enable password命令用于设置特权明文密码,该密码在用户使用enable命令试图从用户模式进入特权模式时被要求输入。使用show run命令查看设备配置时,会看到这个密码的明文,因此强烈不建议使用这种方式指定特权密码。

R1(config)# enable secret ccietea.com

enable secret命令用于设置enable密文密码,show run只能查看到被加密的密码,安全级别高于上面的明文密码,与明文密码同时设置时,密文密码生效(也就是忽略enable password)。取消enable密文密码可使用no enable secret。在实际部署中,强烈建议配置密文密码而不是明文的。

配置Telnet密码:

R1(config)# line vty 0 4                   !! 进入VTY 0-4线路

R1(config-line)# password ccietea   !! 设密码,即用户通过telnet登入设备时输入的密码

R1(config-line)# login                      !! 使得Telnet登录到本设备需用密码验证

R1(config-line)# exit

 

5.      配置路由器的接口

R1的配置如下:

R1(config)# interface fastethernet 0/0

R1(config-if)# ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

注意,“interface fastethernet 0/0”命令中interface是关键字,后面跟的fastethernet是接口的类型,0/0为接口编号,第一个数字是接口板的编号,后一个数字是该接口在这个接口板上的编号,请根据自己的实验环境自行更改,例如如果实验使用的接口为串行口,那么命令就是interface serial。同时,注意接口配置完IP地址后,一定要no shutdown取消关闭。

R2的配置如下:

R2(config)# interface fastethernet 0/0

R2(config-if)# ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

 

6.      查看接口状态

在特权模式下使用show关键字搭配各种命令可以查看路由器运行的各项参数和信息。使用show ip interface brief可以查看路由器所有接口的IP配置信息,以及接口状态。

R1#show ip interface brief

Interface                 IP-Address      OK?    Method   Status         Protocol

FastEthernet0/0          192.168.12.1    YES    manual     up            up     

 

R2#show ip interface brief

Interface                  IP-Address      OK?    Method   Status        Protocol

FastEthernet0/0           192.168.12.2    YES    manual   up            up     

从输出的结果可以看出,R1R2上的FE0/0接口的状态都为物理-Up、协议-Up。路由器的接口要能够正常工作,前提是接口的物理及协议状态都是UP的。物理状态指的就是接口的电气化特性,例如接口如果没有接网线,或者网线对端的设备没有加点,那么这个接口的物理状态就可能是Down的。如果一个接口的物理状态是Up的,而协议状态是Down的话,该接口可能无法正常工作。协议状态与该接口的封装协议有关,例如Serial接口如果采用PPP封装,而PPP要求认证用户名及密码,结果验证失败,那么此时接口的协议状态就是Down的。

 

7.      连通性测试

完成上述配置后,R1R2即可互相通信。我们首先做一个简单的IP连通性测试,让R1R2互相ping,所谓的ping其实是一个基于ICMP的小工具,这个小工具几乎在所有的操作系统上都被携带着,可以探测从本地到远端IP节点的可达性。

R1#ping 192.168.12.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/62/120 ms

注意ping命令要在用户模式或者特权模式下输入。

 

R2#ping 192.168.12.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/41/100 ms

R1R2进行互ping,出现感叹号 !!!!! 代表网络是通的,这应该是网络工程师最喜欢看到的符号了。

 

8.      telnet远程登录到设备上

现在我们尝试从R2远程登陆(Telnet)到R1。由于在前面的配置步奏中,我们已经在R1上配置了vty密码,而且现在R1R2之间的网络又是联通的,因此在R2上可以直接telnetR1

R2#telnet 192.168.12.1

Trying 192.168.12.1 ... Open

 

Hello , This is a Test of ccietea.com                      !!看到banner提示了

User Access Verification

Password:                  !! 密码输入时是不会显示字符的,这里输入的是vty的密码

R1>                             !! 看到R1的设备名了,已经登录到R1上来了

R1> enable                  !! 输入enable试图进入特权模式

Password:                  !! 密码输入时是不会显示字符的,这里输入的是enable密码

R1#                             !! 密码验证通过,进入R1的特权模式了

R1#exit                       !! R1登出

 

[Connection to 192.168.12.1 closed by foreign host]

R2#

当我们telnet到一台Cisco路由器时,使用exit命令可以从远端路由器登出,返回到本地设备。而如果我们仅仅是希望挂起telnet,也就是不希望telnet会话断掉,只是想返回到本地设备做些操作,则可使用ctrl+shift+6,然后按x。举个例子,假设我们从R2 telnet到了R1上,使用ctrl+shift+6,然后按x可以返回R2

R2#show session

Conn  Host                Address             Byte  Idle Conn Name

*  1  192.168.12.1        192.168.12.1           0     0  192.168.12.1

R2show session可以看到本地挂起的会话,此时如果要返回R1telnet会话,则只需键入会话的ID,也就是1即可:

R2#1

[Resuming connection 1 to 192.168.12.1 ... ]

 

R1>

R1>

 

9.      查看设备配置

在特权模式或用户模式下使用show running-config命令可以查看当前设备的配置,这些配置信息是保存在RAM中的,也就是保存在动态存储器里的,这意味着如果设备重启或者掉电,这些配置就会丢失。我们每为设备增加或者修改的一条命令,都会记录在running-config中,如果要想让设备的配置不丢失,则要把配置保存到startup-config,使用write命令,或者copy running-config start-config即可将当前配置(running-config)保存到启动配置(startup-config)中,养成良好习惯,设备配置完成后注意保存。show startup-config显示设备启动配置(配置信息保存于NVRAMFlash中)。


2.2      静态路由

实验目的

1.      巩固Cisco IOS的基本配置;

2.      掌握静态路由原理和配置命令;

3.      掌握默认路由原理和配置命令。

拓扑及需求

 

22 静态路由实验 网络拓扑

l  网络拓扑及IP编址如图所示;PC1PC2使用路由器模拟;

l  R1R2R3上配置静态路由,保证全网可达;

l  R1R3上删掉上一步配置的静态路由,改用默认路由,仍然要求全网可达。

关键知识点

1.      基础知识

本实验主要考察静态路由的概念及实现。对于PC1来说,如需访问192.168.1.0/24以外的网络,则要将数据先发向网关R1(因为PC1将网关地址设置为192.168.1.254,也就是R1FE1/0接口地址),因此R1要有到达远端网络的路由。在完成基本的IP配置后,R1仅知晓192.168.1.0/24192.168.12.0/24网络(直连路由),而对于192.168.23.0/24192.168.2.0/24网络却并不知晓,因此需为其配置静态路由。同理,R2R3也是一样,这里务必要考虑数据的双向性,数据包有去得有回。

2.      关键命令

静态路由的配置命令如下:

router(config)# ip route 目的网络 网络掩码 下一跳地址/出接口

默认路由的配置命令如下:

router(config)# ip route 0.0.0.0 0.0.0.0 下一跳地址/出接口

配置及实现

1.      完成基本配置、接口IP配置

搭建如图所是的拓扑,完成各设备预配、接口IP地址的配置并进行相关测试。

R1的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R1

R1(config)# interface serial 0/0

R1(config-if)# ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

R1(config-if)# interface fastethernet 1/0

R1(config-if)# ip address 192.168.1.254 255.255.255.0

R1(config-if)# no shutdown

 

R2的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R2

R2(config)# interface serial 0/0

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# interface serial 0/1

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.23.2 255.255.255.0

R2(config-if)# no shutdown

注意,R2S0/0S0/1接口都是DCE端,因此要配置时钟频率(clock rate)。一条串行链路两端的接口谁是DCE谁是DTE,在实验室环境中取决于线缆,线缆的DCE头接着哪端,它就是DCE端。当然在实际的项目中,DCE端往往是运营商那头。

如果使用GNS模拟器做实验,那么可以不用配置clock rate,但是真机环境下,必须配置。

 

R3的配置如下

Router> enable

Router# configure terminal

Router(config)# hostname R3

R3(config)# interface serial 0/0

R3(config-if)# ip address 192.168.23.3  255.255.255.0

R3(config-if)# no shutdown

R3(config-if)# interface fastethernet 1/0

R3(config-if)# ip address 192.168.2.254 255.255.255.0

R3(config-if)# no shutdown

 

对于PC,我们是采用路由器来模拟,需要对其做以下配置

PC1(使用路由器来模拟):

Router> enable

Router# configure terminal

Router(config)# hostname PC1

PC1(config)# no ip routing                                   !! 将路由器模拟成PC机,关闭路由功能

PC1(config)# ip default-gateway 192.168.1.254                 !! PC机指定网关

PC1(config)#interface fastethernet 0/0

PC1(config-if)# ip address 192.168.1.1 255.255.255.0             !! PC配置IP地址

PC1(config-if)# no shutdown

注意:一旦配置no ip routing后,路由器就失去了路由功能了,因此必须使用ip default-gateway的方式为其设置默认网关,而不能使用默认路由(ip route 0.0.0.0 0.0.0.0)的方式。

 

PC2的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname PC2

PC2(config)# no ip routing

PC2(config)# ip default-gateway 192.168.2.254

PC2(config)# interface fastethernet 0/0

PC2(config-if)# ip address 192.168.2.1 255.255.255.0     

PC2(config-if)# no shutdown

 

在完成上述配置后,PC与各自的网关、路由器与各直连接口都能够ping通。

测试1查看各设备直连接口状态。

PC1# show ip interface brief

Interface                      IP-Address             OK?       Method   Status     Protocol

FastEthernet0/0               192.168.1.1     YES     manual   up         up  

PC2#show ip interface brief

Interface                      IP-Address             OK?   Method   Status     Protocol

FastEthernet0/0               192.168.2.1     YES   manual   up         up     

R1#show ip interface brief

Interface                      IP-Address             OK?   Method   Status     Protocol

serial0/0                           192.168.12.1           YES   manual   up         up     

FastEthernet1/0               192.168.1.254    YES   manual   up         up     

R2#show ip interface brief

Interface                      IP-Address             OK?   Method   Status     Protocol

serial0/0                           192.168.12.2           YES   manual   up         up     

serial0/1                           192.168.23.2     YES   manual   up         up  

R3#show ip interface brief

Interface                      IP-Address             OK?   Method   Status     Protocol

serial0/0                           192.168.23.3           YES   manual   up         up     

FastEthernet1/0               192.168.2.254   YES   manual   up         up  

 

测试1结论:各设备通过命令show ip intereface brief检测到各接口状态和协议双up

思考:若某接口的Status upProtocol down是为什么?

 

测试2查看路由器直连网段是否能ping通。

R1# ping 192.168.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/24/72 ms

R1#ping 192.168.12.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/29/56 ms

Cisco IOS设备上使用ping命令来探测远端节点的可达性时,如果看到一坨“!”,则表示目的地可达。

R2R3的测试同理:

R2#ping 192.168.12.1

R2#ping 192.168.23.3

R3#ping 192.168.23.2

R3#ping 192.168.2.1

测试2结论:直连网段都能ping通。

 

测试3测试PC1PC2能否正常通信。

PC1# ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

U.U.U                                                             !! ping返回U表示目的主机不可达

Success rate is 0 percent (0/5)

思考:为什么PC1PC2无法正常通信?查看相关路由表,首先从PC1开始查起:

PC1#show ip route

Default gateway is 192.168.1.254          

Host               Gateway           Last Use    Total Uses  Interface

ICMP redirect cache is empty

PC1已经设置了缺省网关192.168.1.254,因此当它发送数据到本地网段外的节点时,数据包会被送到网关,所以我们接着去它的网关也就是R1上看看。

R1# show ip route

     192.168.1.0/24 is subnetted, 1 subnets

C       192.168.1.0 is directly connected, FastEthernet1/0

     192.168.12.0/24 is subnetted, 1 subnets

C       192.168.12.0 is directly connected, serial 0/0

PC1机可以ping通网关,但无法与PC2通信,因为沿途路由器没有相应的路由条目,R1的路由表里并没有到达192.168.2.0/24网络的路由。

 

2.      配置静态路由,使PC之间可以互相通信

R1配置去往192.168.23.0/24192.168.2.0/24网段的路由

R1(config)# ip route 192.168.2.0 255.255.255.0 192.168.12.2

R1(config)# ip route 192.168.23.0 255.255.255.0 192.168.12.2

完成配置后查看路由表可以看到我们刚才配置的静态路由条目。

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

S    192.168.23.0/24 [1/0] via 192.168.12.2

C    192.168.1.0/24 is directly connected, FastEthernet1/0

S    192.168.2.0/24 [1/0] via 192.168.12.2

以上输出的就是R1的路由表了:

l  从路由表中可以看到,一共有四个条目,也就是四条路由,其中两条路由标记为“C”,也就是Connected,意思是直连网段的路由。另外还有两条标记为“S”,也就是Static静态路由,正是我们为R1配置的两条静态路由。

l  路由条目中的 [1/0] 意思是路由的 [管理距离/度量值]

l  路由条目中的via 192.168.12.2,是下一跳IP地址。

 

接着为R2配置去往192.168.1.0/24192.168.2.0/24网段的路由

R2(config)# ip route 192.168.2.0 255.255.255.0 192.168.23.3

!! R2配置去往PC2所在网段的静态路由

R2(config)# ip route 192.168.1.0 255.255.255.0 192.168.12.1

!! R2配置去往PC1所在网段的静态路由

 

R3配置去往192.168.1.0/24192.168.12.0/24网段的路由

R3(config)# ip route 192.168.1.0 255.255.255.0 192.168.23.2

R3(config)# ip route 192.168.12.0 255.255.255.0 192.168.23.2

 

测试4查看两台PC1是否能够pingPC2

PC1#ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 56/91/124 ms

 

测试5查看PC1能否ping 192.168.23.0/24网段

PC1#ping 192.168.23.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.23.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 56/91/124 ms

 

3.      R1R3的静态路由no掉,改为默认路由

R1的配置如下:

R1(config)# no ip route 192.168.2.0 255.255.255.0 192.168.12.2

R1(config)# no ip route 192.168.23.0 255.255.255.0 192.168.12.2

R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.2

去掉之前静态路由的配置,配置默认路由。默认路由可以匹配任何目的地,通常用在网络的出口设备上,完成配置后查看路由表

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

C    192.168.1.0/24 is directly connected, FastEthernet1/0

S*   0.0.0.0/0 [1/0] via 192.168.12.2

R3的配置如下

R3(config)# no ip route 192.168.1.0 255.255.255.0 192.168.23.2

R3(config)# no ip route 192.168.12.0 255.255.255.0 192.168.23.2

R3(config)# ip route 0.0.0.0 0.0.0.0 192.168.23.2

 

测试6查看两台PC机能否通信

PC1#ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 36/100/276 ms

提示2:注意默认路由使用的场合以及在什么样的情况下才会选择默认路由转发数据。

2.3      RIPv2

实验目的

1.      了解动态路由协议的概念;

2.      了解RIP的工作机制;

3.      了解路由汇总的概念及RIP自动汇总、手工汇总机制。

拓扑及需求

23 RIPv2基础实验 网络拓扑

1.      网络拓扑如上图所示。 PC1使用模拟器模拟,R3下联的网段使用Loopback接口来模拟,一共开设三个Loopback接口,用于模拟R3下联的三个网段;

2.      要求R1R2R3运行RIPv2,并实现全网可达;

3.      R3上部署RIP手工路由汇总,使得R1R2学习到R3下联Loopback的汇总路由。

关键知识点

Loopback接口,也叫回环口,是一种虚拟的接口。在网络实验或者项目中我们有可能在除了物理的接口或者物理网卡之外,针对某种特殊的需求还会用到一种虚拟的、稳定的、操作起来类似真实接口或者网卡的这么一种接口,这就是Loopback接口。

24 R1R2下各增加一个网段

以图2-4所示的网络为例,我们为了实验,需要在R1R3上增加一个直连网段,这时候你可能会在他俩的物理接口上各连接一台PC来创建两个直连的物理环境。但是首先这需要R1R3各出一个物理接口,另外还需增加两台PC,总而言之比较麻烦。同样的需求,我们可以在R1R3上增加一个Loopback接口搞定:

25 Loopback接口的使用场景之一

在上图中,我们在R1R3上各创建了一个Loopback0接口,这个接口是软件的、虚拟接口,使用全局配置命令 interface loopback 加上接口编号创建,创建完成后即可为接口配置IP地址。Loopback接口在手工创建后,除非人为shutdown,否则不会Down掉,因此非常稳定。上图中,R1的关键性配置如下:

R1(config)# interface loopback0

R1(config-if)# ip address 1.1.1.1 255.255.255.0

这就创建了一个环回口,而且接口的IP地址为1.1.1.1/24,可以将它视为R1的一个直连网段,网段上连着一台主机1.1.1.1。实际上,Loopback接口的应用场景还有许多,不仅仅局限在上面展示的例子中,还有例如:

l  模拟路由器的直连网段,可用于测试(如上文所述);

l  可用于设备管理(Loopback接口比较稳定);

l  供其他协议使用,如OSPFBGPMPLS等使用Loopback接口地址作为协议的Router-ID

l  SNMP Traps消息的源地址;

l  其他用途。

配置及实现

1.      所有的设备完成基本配置(hostname、接口IP等)

R1的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R1

R1(config)# interface serial0/0

R1(config-if)# ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

R1(config-if)# interface fastEthernet1/0

R1(config-if)# ip address 172.16.1.254 255.255.255.0

R1(config-if)# no shutdown

 

R2的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R2

R2(config)# interface serial0/0

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# interface serial0/1

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.23.2 255.255.255.0

R2(config-if)# no shutdown

 

R3的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R3

R3(config)# interface serial0/0

R3(config-if)# ip address 192.168.23.3 255.255.255.0

R3(config-if)# no shutdown

R3(config-if)# exit

 

R3(config)# interface loopback1

R3(config-if)# ip address 172.16.32.1 255.255.255.0

R3(config)# interface loopback2

R3(config-if)# ip address 172.16.33.1 255.255.255.0

R3(config)# interface loopback3

R3(config-if)# ip address 172.16.34.1 255.255.255.0

                    

PC1的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname PC1

PC1(config)# no ip routing

PC1(config)# ip default-gateway 172.16.1.254

PC1(config)# interface fastethernet 0/0

PC1(config-if)# ip address 172.16.1.1 255.255.255.0

PC1(config-if)# no shutdown

 

2.      R1R2R3运行RIPv2

R1的配置如下:

R1(config)# router rip                                                         #创建RIP进程

R1(config-router)# version 2                                              #RIP设置为版本2

R1(config-router)# network 192.168.12.0                          #S0/0口上激活RIPv2

R1(config-router)# network 172.16.0.0                              #F1/0口上激活RIPv2

R2的配置如下:

R2(config)# router rip

R2(config-router)# version 2

R2(config-router)# network 192.168.12.0

R2(config-router)# network 192.168.23.0

R3的配置如下:

R3(config)# router rip

R3(config-router)# version 2

R3(config-router)# network 192.168.23.0

R3(config-router)# network 172.16.0.0

值得注意的是RIP在使用network命令指定网段时,只支持通告主类网络。R3有三个Loopback接口,将这三个接口激活RIP时,只需network 172.16.0.0即可,实际上即使你输入诸如network 172.16.32.0这样的命令,系统也会按network 172.16.0.0生效。配置完成后,可做检查一下路由协议的运行情况:

R1#show ip protocols

Routing Protocol is "rip"

  Outgoing update filter list for all interfaces is not set

  Incoming update filter list for all interfaces is not set

  Sending updates every 30 seconds, next due in 12 seconds

  Invalid after 180 seconds, hold down 180, flushed after 240

  Redistributing: rip

  Default version control: send version 2, receive version 2

    Interface             Send  Recv  Triggered RIP  Key-chain

    Serial0/0              2     2                    !! 两个接口激活RIPv2                  

    FastEthernet1/0        2     2                                    

  Automatic network summarization is in effect                  !! 自动汇总功能默认开启

  Maximum path: 4

  Routing for Networks:

    172.16.0.0

    192.168.12.0

  Routing Information Sources:

    Gateway         Distance      Last Update

    192.168.12.2         120      00:00:26

  Distance: (default is 120)                                                !! 管理距离120

现在,我们尝试让PC1 ping一下 R3loopback接口,发现ping不通。那么为什么不通呢?此刻我们需要做的就是保证沿途的每一跳路由器上,都有到达目的地的路由,并且回程的数据也要能顺利的返回到PC1。因此我们在R1上查看路由表:

R1# show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     172.16.0.0/24 is subnetted, 1 subnets

C       172.16.1.0 is directly connected, FastEthernet1/0

R    192.168.23.0/24 [120/1] via 192.168.12.2, 00:00:23, Serial0/0

R1已经学习到R2-R3互联网段的路由192.168.23.0/24,奇怪的是并没有看到R3 Loopback接口的路由,我们再去R2上看一下:

R2# show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

R    172.16.0.0/16  [120/1] via 192.168.23.3, 00:00:15, Serial0/1

                   [120/1] via 192.168.12.1, 00:00:01, Serial0/0

C    192.168.23.0/24 is directly connected, Serial0/1

R2出现了一个奇怪的现象,路由表显示它从R1R3都学习到了172.16.0.0/16路由,而且很显然,R2将这两条路由都装载进了路由表里,进行“等价负载均衡”。这个现象将造成什么问题呢?R2会认为,到达172.16.0.0网络即可从R1走又可以从R3走,那么问题来了,R2要去往172.16.1.0/24,也就是R1下联的网段,如果从R3走就肯定无法走通了,这就是问题所在了。为什么会造成这样的问题呢?其实这是RIPv2的自动汇总机制使然。由于R1R3都处于“主类网络边界”,拿R1来说,有直连网络192.168.12.0/24172.16.1.0/24,因此R1就是两个主类网络的边界,RIPv2在将子网路由172.16.1.0/24通告给192.168.12.0/24网络时,会将其进行自动汇总,汇总成172.16.0.0/16R3也是类似的动作,就造成了R2路由表的诡异现象。

其实自动汇总的本意是为了减小路由条目,优化路由表,减小设备资源的损耗,但是在这个拓扑中却带来了这个问题,因为172.16.0.0/16网络的子网分处R1R3两个地方。那么怎么解决呢?办法很简单,就是关闭自动汇总。

R1的配置如下:

R1(config)# router rip

R1(config-router)# no auto-summary

R2的配置如下:

R2(config)# router rip

R2(config-router)# no auto-summary

R3的配置如下:

R3(config)# router rip

R3(config-router)# no auto-summary

                     如此一来,明细路由就都被放出来了:

R1的路由表如下:

C    192.168.12.0/24 is directly connected, Serial0/0

     172.16.0.0/24 is subnetted, 4 subnets

R       172.16.32.0 [120/2] via 192.168.12.2, 00:00:03, Serial0/0

R       172.16.33.0 [120/2] via 192.168.12.2, 00:00:03, Serial0/0

R       172.16.34.0 [120/2] via 192.168.12.2, 00:00:03, Serial0/0

C       172.16.1.0 is directly connected, FastEthernet1/0

R    192.168.23.0/24 [120/1] via 192.168.12.2, 00:00:03, Serial0/0

我们看到,R1学习到了全网的明细路由,R2R3的路由表大家也可以自行查看。这样一来PC1就能pingR3的所有Loopback接口了。

 

3.      优化路由(手工汇总)

我们在R1R2R3上关闭自动汇总后,每台路由器就能学习到全网明细路由,满足前面提到的数据访问的需求。但是这也带来了一个新的问题,在关闭自动汇总后,R3将下联的所有Loopback明细路由都放出来了,这对网络中的其他设备而言是一种负担,这个动作丢失了路由汇总原有的利好。怎么办?我们可以用手工汇总,将172.16.32.0/24172.16.33.0/24172.16.34.0/24这三个子网进行精确汇总,根据我们的计算,得到汇总路由:172.16.32.0/22,这个汇总地址刚好将三个明细子网囊括。在R3上增加的配置如下(注意RIP的手工汇总,是配置在接口上的):

R3(config)# interface Serial0/0

R3(config-if)# ip summary-address rip 172.16.32.0 255.255.252.0

需要注意的是,RIP的手工汇总不支持CIDR。现在,我们再来看一下R1的路由表:

C    192.168.12.0/24 is directly connected, Serial0/0

     172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks

R       172.16.32.0/22 [120/2] via 192.168.12.2, 00:00:01, Serial0/0

C       172.16.1.0/24 is directly connected, FastEthernet1/0

R    192.168.23.0/24 [120/1] via 192.168.12.2, 00:00:01, Serial0/0

我们看到,R1R2学习到了192.168.23.0/24路由,也学到了R3发布的手工汇总的路由。再强调一下,RIP的手工汇总,需要RIP版本2的支持,另外需要先在RIP进程中no auto-summary关闭自动汇总功能,然后再在接口上配置手工汇总命令,注意,该命令配置在汇总路由欲对外发布的那个接口上。

2.4      EIGRP

实验目的

1.      了解EIGRP基本配置;

2.      了解EIGRP自动汇总机制;

3.      了解EIGRP手工汇总方式;

拓扑及需求

26 EIGRP基础实验 网络拓扑

1.      网络拓扑如上图所示。 PC1使用模拟器模拟,R3下联的网段使用Loopback接口来模拟,一共开设三个Loopback接口,用于模拟R3下联的三个网段;

2.      R1R2R3运行EIGRP协议,保证全网可达;

3.      R3上对其下属的Loopback直连路由进行手工汇总,使得R1R2学习到一条汇总路由。

配置及实现

1.      所有的设备完成基本配置(hostname、接口IP等)

R1的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R1

R1(config)# interface serial0/0

R1(config-if)# ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

R1(config-if)# interface FastEthernet1/0

R1(config-if)# ip address 172.16.1.254 255.255.255.0

R1(config-if)# no shutdown

R2的配置如下:

Router>configure terminal

Router(config)# hostname R2

R2(config)# interface serial0/0

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# interface serial0/1

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.23.2 255.255.255.0

R2(config-if)# no shutdown

R3的配置如下:

Router>configure terminal

Router(config)# hostname R3

R3(config)# interface serial0/0

R3(config-if)# ip address 192.168.23.3 255.255.255.0

R3(config-if)# no shutdown

R3(config)# interface loopback1

R3(config-if)# ip address 172.16.32.1 255.255.255.0

R3(config-if)# interface loopback2

R3(config-if)# ip address 172.16.33.1 255.255.255.0

R3(config-if)# interface loopback3

R3(config-if)# ip address 172.16.34.1 255.255.255.0

                    

PC1的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname PC1

PC1(config)# no ip routing

PC1(config)# ip default-gateway 172.16.1.254

PC1(config)# interface fastethernet 0/0

PC1(config-if)# ip address 172.16.1.1 255.255.255.0

PC1(config-if)# no shutdown

 

2.      R1R2R3上运行EIGRP

R1的配置如下:

R1(config)# router eigrp 100

R1(config-router)# network 192.168.12.0  0.0.0.255

R1(config-router)# network 172.16.1.0  0.0.0.255 

R2的配置如下:

R2(config)# router eigrp 100

R2(config-router)# network 192.168.12.0  0.0.0.255

R2(config-router)# network 192.168.23.0  0.0.0.255

R3的配置如下:

R3(config)# router eigrp 100

R3(config-router)# network 192.168.23.0  0.0.0.255

R3(config-router)# network 172.16.0.0  0.0.255.255              

!!方便起见,用一条命令在所有环回接口上激活EIGRP

 

完成配置后先检查一下协议的运行情况:

R2#show ip eigrp neighbors

IP-EIGRP neighbors for process 100

H   Address            Interface      Hold      Uptime        SRTT   RTO     Q          Seq

                                  (sec)                          (ms)                Cnt        Num

1   192.168.23.3     Se0/1         14         00:02:47     86        516       0           5

0   192.168.12.1      Se0/0           11          00:03:00     54        324       0           3

上面就是R2EIGRP邻居表,可以看到R2已经与R1R3建立了EIGRP邻居关系。

l  H                  邻居的顺序号。

l  Address      邻居路由器的接口地址。

l  Interface              本地连接该邻居的接口。

l  Hold              保持时间,在收到邻居任何分组时,认为邻居down前等待的最长时间

计时器在收到邻居发送的任何报文后复位。

l  Uptime          邻居关系已经建立了多长时间。

l  SRTT            向邻居路由器发送一个数据包后本路由器收到确认包的时间。

l  RTO              当发了update包之后,对方在该时间内没有回应(确认)则需要进行重传。

l  Q Cnt            队列中等待发送的报文数量,正常情况下应该为0

l  Seq Num       从邻居收到的最后一个更新、查询或应答分组的序列号。

 

完成上述配置后,我们测试一下PC1ping 172.16.32.1,结果不通,问题和我们在RIP实验中是一样的,EIGRP也有自动汇总机制,因此R1R3都会将本地的172.16的子网汇总成B类的172.16.0.0/16的汇总路由公告出去。我们看一下R1的路由表:

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks

D       172.16.0.0/16 is a summary, 00:00:37, Null0

C       172.16.1.0/24 is directly connected, FastEthernet1/0

D    192.168.23.0/24 [90/2681856] via 192.168.12.2, 00:00:30, Serial0/0

R1已经学习到了192.168.23.0,但是有一条奇怪的路由172.16.0.0/16指向的是null0。这条路由是R1自动产生的,EIGRP在路由汇总后,会在本地路由表里自动产生一条指向Null0的汇总路由,这是为了防环。

R2#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

D    172.16.0.0/16 [90/2172416] via 192.168.12.1, 00:11:49, Serial0/0

C    192.168.23.0/24 is directly connected, Serial0/1

看到R2的路由表中,仅有一条汇总路由,学习自R1。但是为什么没有从R3学习到汇总路由呢?实际上R2已经学习到了,但是由于从R3那学到的172.16.0.0/16的路由度量值更大,因此没有被优选,从R2EIGRP拓扑数据库里能够看到从R3学习到的汇总路由:

R2#show ip eigrp topology

IP-EIGRP Topology Table for AS(100)/ID(192.168.23.2)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,

       r - reply Status, s - sia Status

P  192.168.12.0/24, 1 successors, FD is 2169856

        via Connected, Serial0/0

P  192.168.23.0/24, 1 successors, FD is 2169856

        via Connected, Serial0/1

P  172.16.0.0/16, 1 successors, FD is 2172416

        via 192.168.12.1 (2172416/28160), Serial0/0

        via 192.168.23.3 (2297856/128256), Serial0/1            !! 通告距离更大,Metric更大

由于 R3下挂的172.16的那些子网是来自Loopback接口的,而R1下挂的子网是来自快速以太网接口的,因此R3产生的汇总路由度量值要大于R1产生的那条,故R2优选来自R1的路由。而R3的那条就成了可行后继。现在我们在三台路由器上都关闭EIGRP自动汇总。

R1的配置如下:

R1(config)# router eigrp 100

R1(config-router)# no auto-summary

R2的配置如下:

R2(config)#router eigrp 100

R2(config-router)# no auto-summary

R3的配置如下:

R3(config)#router eigrp 100

R3(config-router)# no auto-summary

在关闭了自动汇总后,R1下联的172.16.1.0/24子网及R3底下的Loopback明细路由就能过来了,网络通信也就正常了。

R2#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     172.16.0.0/24 is subnetted, 4 subnets

D       172.16.32.0 [90/2297856] via 192.168.23.3, 00:00:22, Serial0/1

D       172.16.33.0 [90/2297856] via 192.168.23.3, 00:00:22, Serial0/1

D       172.16.34.0 [90/2297856] via 192.168.23.3, 00:00:22, Serial0/1

D       172.16.1.0 [90/2172416] via 192.168.12.1, 00:00:32, Serial0/0

C    192.168.23.0/24 is directly connected, Serial0/1

 

3.      配置EIGRP手工汇总

现在,我们在R3上,为这条三Loopback路由进行手工汇总,经过计算,网络号172.16.32.0/22正好可以将这三条Loopback明细路由囊括住。现在,R3增加如下配置:

R3(config)#interface Serial0/0

R3(config-if)# ip summary-address eigrp 100 172.16.32.0 255.255.252.0

EIGRP的手工汇总,是配置在接口上的,注意要跟上eigrpAS100,然后我们上R2看看去:

R2#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks

D       172.16.32.0/22 [90/2297856] via 192.168.23.3, 00:00:45, Serial0/1

D       172.16.1.0/24 [90/2172416] via 192.168.12.1, 00:01:02, Serial0/0

C    192.168.23.0/24 is directly connected, Serial0/1

这样一来PC1访问R3及其下的Loopback就没有问题了,同时,网络中的路由条目也做到了优化。

2.5      OSPF单区域

实验目的

1.      了解OSPF基本配置;

2.      学会识别OSPF路由。

拓扑及需求

27 OSPF单区域实验 网络拓扑

1)     网络拓扑如上图所示,PC1PC2使用路由器模拟;

2)     R1R2R3上开设Loopback0接口,地址分别为1.1.1.1/322.2.2.2/323.3.3.3/32

3)     在三台路由器上部署OSPFOSPFRouter-ID需设置为各自Loopback0接口地址,Loopback0接口无需激活OSPF

4)     要求实现全网可达。

配置及实现

1.      所有的设备完成基本配置(hostname、接口IP等)

R1的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R1

R1(config)# interface serial 0/0

R1(config-if)# ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

R1(config-if)# interface fastethernet 1/0

R1(config-if)# ip address 192.168.1.254 255.255.255.0

R1(config-if)# no shutdown

 

R2的配置如下:

Router> enable

Router# configure terminal

Router(config)# hostname R2

R2(config)# interface serial 0/0

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# interface serial 0/1

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.23.2 255.255.255.0

R2(config-if)# no shutdown

 

R3的配置如下

Router> enable

Router# configure terminal

Router(config)# hostname R3

R3(config)# interface serial 0/0

R3(config-if)# ip address 192.168.23.3 255.255.255.0

R3(config-if)# no shutdown

R3(config-if)# interface fastethernet 1/0

R3(config-if)# ip address 192.168.2.254 255.255.255.0

R3(config-if)# no shutdown

PC1PC2的配置不再赘述。

 

2.      R1R2R3运行OSPF

R1的配置如下:

R1(config)# Interface loopback0

R1(config-if)# ip address 1.1.1.1 255.255.255.255

R1(config)# router ospf 1                                     !!创建OSPF进程,使用进程号1

R1(config-router)# router-id 1.1.1.1                            !!手工指定Router-ID1.1.1.1

R1(config-router)# network 192.168.1.0 0.0.0.255 area 0        !!在接口F1/0上激活OSPF

R1(config-router)# network 192.168.12.0 0.0.0.255 area 0      !!在接口S0/0上激活OSPF

R2的配置如下:

R2(config)# Interface loopback0

R2(config-if)# ip address 2.2.2.2 255.255.255.255

 

R2(config)# router ospf 1

R2(config-router)# router-id 2.2.2.2

R2(config-router)# network 192.168.12.0 0.0.0.255 area 0

R2(config-router)# network 192.168.23.0 0.0.0.255 area 0

R3的配置如下:

R3(config)# interface loopback0

R3(config-if)# ip address 3.3.3.3 255.255.255.255

 

R3(config)# router ospf 1

R3(config-router)# router-id 3.3.3.3

R3(config-router)# network 192.168.23.0  0.0.0.255 area 0

R3(config-router)# network 192.168.2.0  0.0.0.255 area 0

 

OSPFRouter-ID是一个非常重要的东西,是每一台OSPF路由器在整个OSPF域的标识符,在规划OSPF的时候切记不能存在Router-ID冲突的现象。Router-IDOSPF激活后默认会选择本地Loopback接口中的最大IP地址,如果没有配置loopback,则选择活跃的物理接口中的最大IP,因此为了保障Router-ID的稳定和可控,建议大家在每台OSPF上开设loopback接口,在OSPF配置模式中,使用router-id命令手工指定一下将OSPF Router-ID设置为loopback接口的IP地址。

另外,作为Router-ID使用的Loopback,可以不通告(network)进OSPF,当然也可以通告,这要看具体的实现需求,在本实验中,我们在三台路由器上并没有宣告这些loopback接口。

 

3.      查看OSPF邻居

R1 show ip ospf neighbor

Neighbor ID     Pri        State         Dead Time         Address         Interface

2.2.2.2             0          FULL/  -     00:00:32           192.168.12.2           Serial0/0

看到stateFULL,这是OSPF邻居关系建立的最终稳定状态,如果我们发现两个OSPF之间的邻接关系不是FULL,那么就要进行错误排查了。因此往往在做OSPF Trouble shooting的时候,第一步先看看邻居关系正不正常。接下去再看看R1的路由表:

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     1.0.0.0/32 is subnetted, 1 subnets

C       1.1.1.1 is directly connected, Loopback0

O    192.168.23.0/24 [110/128] via 192.168.12.2, 00:03:45, Serial0/0

C    192.168.1.0/24 is directly connected, FastEthernet1/0

O    192.168.2.0/24 [110/129] via 192.168.12.2, 00:03:45, Serial0/0

我们看到R1学习到了全网的路由,路由的标记为O,表示该条路由是OSPF区域内部路由。

 

R1#show ip ospf interface        !!查看R1上激活OSPF 的接口

Serial0/0 is up, line protocol is up                        !!第一个接口

  Internet Address 192.168.12.1/24, Area 0

  Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 64

  Transmit Delay is 1 sec, State POINT_TO_POINT

  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

    oob-resync timeout 40

    Hello due in 00:00:07

  Supports Link-local Signaling (LLS)

  Index 2/2, flood queue length 0

  Next 0x0(0)/0x0(0)

  Last flood scan length is 1, maximum is 1

  Last flood scan time is 0 msec, maximum is 0 msec

  Neighbor Count is 1, Adjacent neighbor count is 1

    Adjacent with neighbor 2.2.2.2

  Suppress hello for 0 neighbor(s)

FastEthernet1/0 is up, line protocol is up             !!第二个接口

  Internet Address 192.168.1.254/24, Area 0

  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1

  Transmit Delay is 1 sec, State DR, Priority 1

  Designated Router (ID) 1.1.1.1, Interface address 192.168.1.254

  No backup designated router on this network

  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

    oob-resync timeout 40

    Hello due in 00:00:09

  Supports Link-local Signaling (LLS)

  Index 1/1, flood queue length 0

  Next 0x0(0)/0x0(0)

  Last flood scan length is 0, maximum is 0

  Last flood scan time is 0 msec, maximum is 0 msec

  Neighbor Count is 0, Adjacent neighbor count is 0

  Suppress hello for 0 neighbor(s)

现在PC1PC2已经可以通信了。

2.6      OSPF多区域

实验目的

1.      了解OSPF基本配置;

2.      了解OSPF多区域的概念及配置;

3.      学会识别OSPF路由;

4.      了解OSPF区域内路由汇总的方法。

拓扑及需求

28 OSPF多区域实验 网络拓扑

1.      网络拓扑如上图所示;在R1R2R3上开设Loopback0接口,地址分别为1.1.1.1/322.2.2.2/323.3.3.3/32,确保这三台路由器的OSPF Router-ID都是各自的Loopback0接口地址。Loopback0接口无需激活OSPF

2.      R3创建Loopback1Loopback2Loopback3接口,用于模拟下挂的三个网段;

3.      R1R2R3运行OSPFR2ABR;保证全网可达(包括R3Loopback1-3);

4.      默认情况下R1R2学习到的R3下联的Loopback123接口所在网段的路由都是/32位的主机路由,做适当的修改,使得R1R2学习到的这些路由掩码恢复为这些Loopback的实际掩码长度;

5.      部署OSPF路由汇总,将R3下联的三个Loopback网段进行汇总。

配置及实现

1.      所有的设备完成基本配置(hostname、接口IP等)

各设备的基本配置不再赘述,大家自行完成。

2.      R1R2R3运行OSPF

R1的配置如下:

R1(config)# Interface loopback0

R1(config-if)# ip address 1.1.1.1 255.255.255.255

R1(config)# router ospf 1                                                   !!创建OSPF进程,使用进程号1

R1(config-router)# router-id 1.1.1.1                                          !!手工指定RouterID1.1.1.1

R1(config-router)# network 172.16.1.0 0.0.0.255 area 0          !!在接口F1/0上激活OSPF

R1(config-router)# network 192.168.12.0 0.0.0.255 area 0      !!在接口S0/0上激活OSPF

R2的配置如下:

R2(config)# Interface loopback0

R2(config-if)# ip address 2.2.2.2 255.255.255.255

 

R2(config)# router ospf 1

R2(config-router)# router-id 2.2.2.2

R2(config-router)# network 192.168.12.0 0.0.0.255 area 0

R2(config-router)# network 192.168.23.0 0.0.0.255 area 1            

R2的配置是需要格外留意的,它是ABR,一个接口再area 0,另一个接口再area 1

R3的配置如下:

R3(config)# Interface loopback0

R3(config-if)# ip address 3.3.3.3 255.255.255.255

R3(config)# Interface loopback1

R3(config-if)# ip address 172.16.32.1 255.255.255.0

R3(config)# Interface loopback2

R3(config-if)# ip address 172.16.33.1 255.255.255.0

R3(config)# Interface loopback3

R3(config-if)# ip address 172.16.34.1 255.255.255.0

 

R3(config)# router ospf 1

R3(config-router)# router-id 3.3.3.3

R3(config-router)# network 192.168.23.0 0.0.0.255 area 1

R3(config-router)# network 172.16.32.1 0.0.0.0 area 1

R3(config-router)# network 172.16.33.1 0.0.0.0 area 1

R3(config-router)# network 172.16.34.1 0.0.0.0 area 1

 

3.      调整Loopback路由

完成上述配置后,先看看R1的路由表:

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     1.0.0.0/32 is subnetted, 1 subnets

C       1.1.1.1 is directly connected, Loopback0

     172.16.0.0/32 is subnetted, 3 subnets

O IA    172.16.33.1 [110/129] via 192.168.12.2, 00:00:13, Serial0/0

O IA    172.16.32.1 [110/129] via 192.168.12.2, 00:02:11, Serial0/0

O IA    172.16.34.1 [110/129] via 192.168.12.2, 00:00:02, Serial0/0

O IA 192.168.23.0/24 [110/128] via 192.168.12.2, 00:04:11, Serial0/0

C    192.168.1.0/24 is directly connected, FastEthernet1/0

我们看到R1学习到了全网的路由,标记为O IA的路由指的是区域间的路由,IA=inter area,是从其他区域过来的路由。另一点需要我们留意的是R1学习到的R3的三个LOOPBACK接口路由,在路由表中都是/32的主机路由,而我们给R3这三个LOOPBACK接口实际分配的是/24的掩码,为什么到了R1的路由表里就变成了/32?这其实是OSPF的一个特性,OSPF认为“Loopback interface is treated as a stub Host”,也就是将Loopback当做一个直连的主机,因此无论你给LOOPBACK接口分配什么掩码,OSPF在对外通告LOOPBACK接口网段路由的时候(通过LSA)都以./32位的形式。那么如何还原LOOPBACK接口的“本来面貌”呢?很简单,我们只需要在R3的这三个Loopback接口下:

R3(config)# Interface loopback 1

R3(config-if)# Ip ospf network point-to-point !!Loopback接口的OSPF类型修改为点到点

R3(config)# Interface loopback 2

R3(config-if)# Ip ospf network point-to-point

R3(config)# Interface loopback 3

R3(config-if)# Ip ospf network point-to-point

如此一来,给LOOPBACKLSA中被通告的时候,掩码就是该接口所配置的/24。我们再去R1上看看。

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     1.0.0.0/32 is subnetted, 1 subnets

C       1.1.1.1 is directly connected, Loopback0

     172.16.0.0/24 is subnetted, 3 subnets

O IA    172.16.32.0 [110/129] via 192.168.12.2, 00:00:11, Serial0/0

O IA    172.16.33.0 [110/129] via 192.168.12.2, 00:00:01, Serial0/0

O IA    172.16.34.0 [110/129] via 192.168.12.2, 00:00:01, Serial0/0

O IA 192.168.23.0/24 [110/128] via 192.168.12.2, 00:05:01, Serial0/0

C    192.168.1.0/24 is directly connected, FastEthernet1/0

现在,这些路由的掩码长度在R1的路由表中已经变成/24的了。

 

4.      OSPF区域内路由汇总

现在我们要对网络中的路由进行优化,R1其实没有必要知道R3下联所有Loopback的明细,因此我们做手工汇总(OSPFRIPEIGRP不同,不支持自动汇总),具体的操作方法是在ABR也就是R2上来部署对区域内路由的汇总,R2配置增加如下:

R2(config)# router ospf 1

R2(config-router)# area 1 range 172.16.32.0 255.255.252.0

上面这条命令的意思是,如果area1内存在172.16.32.0/22的子网路由,则将这些路由汇总成172.16.32.0/22,而不再向area0通告子网明细路由。

OSPF支持两种手工路由汇总的方式,一种是部署在ABR上,另一种则是部署在ASBR上的,本例中我们使用到的是前者,至于后者,已经超出了本手册的内容范围。我们再去R1上看看:

R1#show ip route

C    192.168.12.0/24 is directly connected, Serial0/0

     1.0.0.0/32 is subnetted, 1 subnets

C       1.1.1.1 is directly connected, Loopback0

     172.16.0.0/22 is subnetted, 1 subnets

O IA    172.16.32.0 [110/129] via 192.168.12.2, 00:00:10, Serial0/0

O IA 192.168.23.0/24 [110/128] via 192.168.12.2, 00:05:41, Serial0/0

C    192.168.1.0/24 is directly connected, FastEthernet1/0

完成上述配置后,R1不再学习到R3Loopback明细路由,而是学习到一条汇总的路由,它的路由表规模自然就减小了。而此时PC是能够pingR3的三个Loopback接口的。


3        交换篇

3.1      二层交换基础

实验目的

1.      了解二层交换机工作原理;

2.      理解VLAN的概念,掌握VLAN的配置;

3.      理解trunk的概念,掌握trunk的配置。

拓扑及需求

31 二层交换基础实验 网络拓扑

1)     网络拓扑如上图所示;

2)     SW1SW2都创建VLAN10 VLAN20,按照上图所示,将接口添加到特定的VLAN

3)     测试PC之间的连通性,要求相同VLAN内的PC能够相互通信。

配置及实现

1.      完成所有PC的配置

PC的配置不再赘述。

2.      完成交换机的配置

SW1的配置如下:

SW1# config terminal

SW1(config)# vlan 10                                                  !!创建VLAN10

SW1(config-vlan)# exit

SW1(config)# vlan 20                                                  !!创建VLAN20

SW1(config-vlan)# exit

 

SW1(config)# interface fastethernet0/1

SW1(config-if)# switchport mode access                            !!将接口类型修改为access模式

SW1(config-if)# swtichport access vlan 10                  !!将接口添加到特定的VLAN

SW1(config-if)# interface fastethernet0/2

SW1(config-if)# switchport mode access

SW1(config-if)# swtichport access vlan 20          

SW1(config-if)# interface fastethernet0/15

SW1(config-if)# switchport mode trunk                             !!将接口模式定义为trunk

SW1(config-if)# switchport trunk encapsulation dot1q !!指定trunk封装协议为dot1q

 

SW2的配置如下:

SW2# config terminal

SW2(config)# vlan 10

SW2(config-vlan)# exit

SW2(config)# vlan 20

SW2(config-vlan)# exit

 

SW2(config)# interface fastethernet0/1

SW2(config-if)# switchport mode access

SW2(config-if)# swtichport access vlan 10

SW2(config-if)# interface fastethernet0/2

SW2(config-if)# switchport mode access

SW2(config-if)# swtichport access vlan 20

SW2(config-if)# interface fastethernet0/15

SW2(config-if)# switchport mode trunk

SW2(config-if)# switchport trunk encapsulation dot1q

 

如果是使用GNS模拟器做这个实验,有两个地方需要注意:

1)     模拟交换机的设备(可以使用C3600平台模拟)安装的模块选择如下,选择交换模块NM-16ESW

32 GNS中为设备添加NM-16ESW交换模块

 

2)     GNS模拟器上做交换实验,如需创建VLAN,配置在vlan database中进行,拿SW1举例(仅限于在模拟器上):

SW1# vlan database

SW1(vlan)# vlan 10                   !!创建vlan10

VLAN 10 added:

    Name: VLAN0010

SW1(vlan)# vlan 20                   !!创建vlan10

VLAN 20 added:

    Name: VLAN0020

SW1 (vlan)# exit                       !!注意必须使用exit退出,否则创建的VLAN不会生效

APPLY completed.

Exiting....

 

3.      查看及验证

SW1# show vlan                              !!GNS模拟器上这条命令为show vlan-switch

VLAN Name                      Status  Ports

---- -------------------------------- --------- -------------------------------

1    default                     active  Fa0/0, Fa0/3, Fa0/4, Fa0/5

                                             Fa0/6, Fa0/7, Fa0/8, Fa0/9

                                           Fa0/10, Fa0/11, Fa0/12, Fa0/13

                                               Fa0/14

10   VLAN0010                           active    Fa0/1

20   VLAN0020                      active     Fa0/2

1002 fddi-default                          active   

1003 token-ring-default             active    

1004 fddinet-default                active   

1005 trnet-default                    active 

从上面的输出可以看到我们已经成功创建了两个VLAN1020,并且FE0/1 FE0/2口都划分到了相应的VLAN。如果在模拟器上进行交换实验,使用show vlan-switch来查看vlan信息。

 

SW1# show interfaces trunk                                       !!查看trunk接口

Port      Mode         Encapsulation  Status        Native vlan

Fa0/15    on           802.1q         trunking      1

 

Port      Vlans allowed on trunk

Fa0/15    1-1005

 

Port      Vlans allowed and active in management domain

Fa0/15    1,10,20

 

Port      Vlans in spanning tree forwarding state and not pruned

Fa0/15    1,10,20

可以看到,F0/15已经工作在trunk模式,使用的封装协议是802.1q

接下去PC1ping PC3,或者PC2ping PC4,同VLAN的都能ping通,但是不同VLANPC到目前为止无法互访。

3.2      使用以太网子接口实现VLAN之间的互访

实验目的

1.      深入理解VLANtrunk的概念;

2.      掌握通过以太网子接口实现VLAN间互访的方法。

拓扑及需求

33 单播路由实验 网络拓扑

 

1.      网络拓扑如上图所示;PC的网关均在路由器上;

2.      SW1SW2都创建VLAN10VLAN20,并且根据拓扑所示将接口加入特定的VLAN

3.      将交换机的适当端口配置为trunk并设置封装协议为Dot1q

4.      在路由器上通过创建子接口的方式使得所有的PC都能够互相通信。

配置及实现

1.      完成所有PC的配置

PC的配置不再赘述。

2.      完成交换机的配置

SW1的配置如下:

SW1# config terminal

SW1(config)# vlan 10

SW1(config-vlan)# exit

SW1(config)# vlan 20

SW1(config-vlan)# exit

 

SW1(config)# interface fastethernet0/1

SW1(config-if)# switchport mode access

SW1(config-if)# swtichport access vlan 10   

SW1(config)# interface fastethernet0/2

SW1(config-if)# switchport mode access

SW1(config-if)# swtichport access vlan 20

SW1(config)# interface fastethernet0/15

SW1(config-if)# switchport trunk encapsulation dot1q

SW1(config-if)# switchport mode trunk 

 

SW2的配置如下:

SW2# config terminal

SW2(config)# vlan 10

SW2(config-vlan)# exit

SW2(config)# vlan 20

SW2(config-vlan)# exit

 

SW2(config)# interface fastethernet0/1

SW2(config-if)# switchport mode access

SW2(config-if)# swtichport access vlan 10

SW2(config-if)# interface fastethernet0/2

SW2(config-if)# switchport mode access

SW2(config-if)# swtichport access vlan 20

SW2(config-if)# interface fastethernet0/14          !! 这是与路由器跑单臂的接口必须是trunk

SW2(config-if)# switchport trunk encapsulation dot1q

SW2(config-if)# switchport mode trunk 

SW2(config-if)# interface fastethernet0/15

SW2(config-if)# switchport trunk encapsulation dot1q

SW2(config-if)# switchport mode trunk

这里一定要注意,SW2FE0/14FE0/15口都需要同时承载多VLAN的数据,因此必须配置成trunk,尤其要注意FE0/14接口,由于对端是路由器的子接口,因此必须配置为Trunk类型。当然,如果在其他场景中,路由器使用物理接口(不适用子接口)与交换机对接,则交换机这一段的接口通常配置为access类型。

 

3.      完成路由器GW的配置

Router(config)# hostname GW

GW(config)# interface FastEthernet 0/0

GW(config-if)# no shutdown                                !!注意一定要将物理接口no shutdown

GW(config)# interface FastEthernet 0/0.10          !!这个子接口作为VLAN10的网关

GW(config-if)# encapsulation dot1Q 10               !!设定封装协议,10表示的是vlan tag ID

GW(config-if)# ip address 192.168.10.254 255.255.255.0

GW(config)# interface FastEthernet 0/0.20          !!这个子接口作为VLAN20的网关

GW(config-if)# encapsulation dot1Q 20

GW(config-if)# ip address 192.168.20.254 255.255.255.0

 

4.      连通性测试

完成上述配置后,VLAN10VLAN20之间的用户就能够互访了。这个实验的拓扑形象点理解如下:

34 形象地理解单播路由

3.3      二层交换机的管理VLAN

实验目的

1.      了解二层交换机管理VLAN的概念;

2.      了解二层交换机设备管理的部署方法。

拓扑及需求

35 二层交换机的管理实验 网络拓扑

1.      这个环境虽然简单,但是初学者理解起来还是有一定的困难的。交换机下联2PC,又连接一台路由器。路由器作为内网VLAN10VLAN20用户的网关。交换机增加一个VLAN255用于其自身的设备管理,交换机的管理IP192.168.255.1,网关在路由器上;

2.      交换机创建VLAN10VLAN20,这是用户VLAN,是PC用户的VLAN

3.      路由器FE0/0口划分子接口做单臂,作为VLAN10VLAN20VLAN255的网关;

4.      要求VLAN10VLAN20之间的用户能够互访,同时只允许VLAN10的用户Telnet交换机进行设备的管理。

关键知识点

这个实验中,涉及到的主要知识点有:VLAN的配置、单臂路由的概念及配置,同时还有一个,交换机的管理VLAN及设备管理。

我们知道,在一个园区网中数量最多的设备一般而言应该是交换机(二层及三层交换机),其中又以二层交换机的数量居多,二层交换机在典型的三层结构中处于“接入层”,主要的任务是为终端的PC和服务器提供接入,同时划分VLAN隔离广播域,再者运行STP来实现二层的防环机制。一个中小型的园区网中,二层交换机的数量往往是上百台,这些设备在刚刚在客户现场被拆箱后,一般是由工程师现场用Console线缆一台台的调试的(不要惊讶,笔者的纪录是一个下午的时间,个人完成近100台交换机的调试任务)。这些交换机在调试好之后,就会被安装到客户现场的各个机房或者弱电间去,一切妥当后就正式上线运行了。

那么这就有一个问题,在设备上线后,如果我们要变更设备的配置、要管理这些交换机怎么办?难道要拿着笔记本电脑带着console线到机房去现场调试么?这种屌丝级的方法完全不可理喻嘛,对了,可以通过telnet或者SSH来远程管理。路由器上的telnet我们已经很熟悉了,只要是三层可达,就能telnet到路由器,那么接下去我们来看看,如何管理交换机。

这里我们讲的是二层交换机,大家都知道,二层交换机是无法读取报文的三层头部的,它压根不会去看三层的IP头,但是这不影响二层交换机自己拥有一个IP地址。在路由器上,我们是给路由器的物理接口配置IP地址,而对于二层交换机,我们是在VLAN接口上配置IP地址,VLAN接口也称为SVI(交换式虚拟接口),是跟VLAN对应的一个逻辑的、虚拟的接口。一台二层交换机,只能够给一个VLAN接口分配IP地址。考虑一个最简单的模型:

36 交换机管理VLAN的概念

如上图,PC要想Telnet交换机,首先PC要能ping通交换机,其次交换机上要激活VTY线路并配置密码。我们在二层交换机上创建一个VLAN10,将连接PC的接口FE0/1口划入VLAN10,同时给二层交换机的VLAN10的三层逻辑接口(VLAN接口)配置一个与PC在同一个网段的IP地址。如此一来,PC就能访问到交换机了。这时PCIP地址与交换机自身的IP是同网段的,而且两者在同一个广播域(VLAN),因此可以进行二层直接通信。

但是PC与交换机的管理VLAN重叠,万一下面有一台PC配置的IP地址与交换机存在冲突那可就麻烦了,因此我们考虑给交换机划分一个单独的VLAN用于自身被管理,这个VLAN适用于整个交换网络,统一的VLAN统一的IP规划,它就是管理VLAN,因此管理VLAN并不一定是VLAN1,许多人在这里存在误解。

一般情况下,关于管理VLAN我们会使用一个较为“生僻的”VLAN IDIP编制,例如本实验中的VLAN255,以及网段192.168.255.0/24

问题又来了,给交换机弄一个单独的设备管理VLAN固然可以起到与用户VLAN隔离的作用,但是这样一来用户不就无法访问到交换机了么?这就需要借助三层设备例如路由器了。与此同时,由于二层交换机没有路由功能,无法像路由器哪样拥有一个IP路由表,因此,你还需给交换机配置一个默认网关,强调一下,这里的网关是交换机自身的网关,而不是PC的网关。

配置及实现

先不忙着做实验,我们来看看这个实验的拓扑:

37 回顾一下实验拓扑

这个拓扑其实可以用一个更形象的方式来理解:

38 形象地理解本实验的网络拓扑

这样总能看懂了吧?于是当PC要管理交换机时(例如要Telnet 交换机),直接telnet 192.168.255.1,数据包会被发送给PC自己的网关,该网关其实在Router的子接口上的,再经由Router路由到子接口FE0/0.255,然后走二层到交换机。有一点值得提醒的是,为了让回程的数据能够顺利返回PC,我们还要给这台二层交换机配个默认网关,否则PC无法正常管理交换机。下面来看具体的配置:

1.      完成PC1PC2的配置

这个就不再赘述了。

2.      完成交换机的配置

switch# config terminal

switch(config)# vlan 10

switch(config-vlan)# exit

switch(config)# vlan 20

switch(config-vlan)# exit

switch(config)# vlan 255                                       !!这是管理VLAN

switch(config-vlan)# exit

 

switch(config)# interface fastethernet0/1

switch(config-if)# swtichport mode access

switch(config-if)# swtichport access vlan 10 

switch(config-if)# interface fastethernet0/2

switch(config-if)# swtichport mode access

switch(config-if)# swtichport access vlan 20

switch(config-if)# interface fastethernet0/15

switch(config-if)# switchport trunk encapsulation dot1q           

switch(config-if)# switchport mode trunk       

switch(config-if)# exit

 

switch(config)# interface vlan 255

switch(config-if)# ip address 192.168.255.1 255.255.255.0            

!!VLAN255SVI口配置IP地址,这个IP地址就是交换机的管理IP

switch(config-if)# exit

 

switch(config)# ip default-gateway 192.168.255.254                 !!为交换机指定网关

 

switch(config)# line vty 0 4                                                               !!配置VTY

switch(config-line)# password ccietea

switch(config-line)# login

switch(config-line)# exit

switch(config)#

注意,本实验中的交换机为二层交换机。如果使用三层交换机(例如C3640)做本实验,则需先在全局配置模式下no ip routing关闭设备的路由功能,让其模拟一台二层交换机,如果不去no ip routing,则ip default-gateway指定的缺省网关是无效的,此时可以使用ip route 0.0.0.0 0.0.0.0的方式来替代ip default-gateway命令。注意,ip defaut-gateway这条命令,是给交换机自己用的,而不是为下联的PC配置网关,关于这点,许多初学者经常搞混。

 

3.      完成路由器的配置

Router(config)# hostname GW

GW(router)# interface fastethernet 0/0

GW(router-if)# no shutdown                                 !!注意一定要将物理接口打开

GW(router)# interface fastethernet 0/0.10           !!这个子接口作为VLAN10的网关

GW(router-if)# encapsulation dot1Q 10        

GW(router-if)# ip address 192.168.10.254 255.255.255.0

GW(router-if)# interface fastethernet 0/0.20        !!这个子接口作为VLAN20的网关

GW(router-if)# encapsulation dot1Q 20

GW(router-if)# ip address 192.168.20.254 255.255.255.0

GW(router-if)# interface fastethernet 0/0.255             !!这个子接口作为VLAN255的网关

GW(router-if)# encapsulation dot1Q 255

GW(router-if)# ip address 192.168.255.254 255.255.255.0

 

GW#show ip interface brief

Interface             IP-Address        OK?   Method   Status     Protocol

FastEthernet0/0       unassigned         YES  unset     up       up     

FastEthernet0/0.10    192.168.10.254     YES   manual   up       up     

FastEthernet0/0.20    192.168.20.254     YES   manual   up       up     

FastEthernet0/0.255   192.168.255.254    YES   manual   up       up     

 

4.      验证及扩展

完成上述配置后,PC1 PC2就都能telnet上交换机进行管理了。这就是二层交换机的管理概念。

PC1#telnet 192.168.255.1

Trying 192.168.255.1 ... Open

 

User Access Verification

Password:

SW>

在实际的部署中,如果直接将交换机暴露在网络中,内网所有的PC都能随意登录,那是存在风险的,我们还可以在交换机上增加如下配置,来限制管理交换机的网段,例如我们只让192.168.10.0/24这个网段的用户管理交换机:

Switch(router)# access-list 1 permit 192.168.10.0 0.0.0.255

Switch(router)# line vty 0 4

Switch(router-line)# access-class 1 in

                     如此一来,只有192.168.10.0/24网段内的PC才能够telnet到交换机。


3.4      使用SVI实现VLAN间的互访

实验目的

1.      理解SVI(交换式虚拟接口,也称为VLAN接口)的概念;

2.      掌握SVI实现VLAN间互访的方法。

拓扑及需求

 

39 三层交换机基础实验 网络投票

1.      PC1PC2分别属于vlan10vlan20

2.      交换机为三层交换机,支持三层功能;

3.      两台PC的网关均在交换机上,要求PC1PC2能够互访。

关键知识点

310 SVI的概念

在理解了单臂路由之后,我们再来看看三层交换机是如何实现VLAN间的数据互访的,我们从这里为切入点,开始理解并部署三层交换。我们知道二层交换机是可以实现二层交换的,它看的是数据帧,对帧头的二层信息进行读取并且根据自己的MAC表进行转发。而三层交换机相当于在二层交换机的基础上,多了个路由模块,于是乎它就能支持路由功能了,当然,也能够支持路由协议、支持三层数据的转发、支持IP路由查找、支持三层接口等等。

先来认识一下第一种三层接口:SVI交换式虚接口,SVI是一个逻辑接口,也就是说不是一个物理接口,当我们在交换机上创建了一个VLAN之后,紧接着就可以创建一个与这个VLAN对应的SVI接口,例如我们创建了VLAN10,那么VLAN10对应的SVI接口就是interface vlan10或者叫SVI10,这个SVI10是一个三层接口,你可以为这个SVI口配置IP地址,与VLAN10内的PC用户的IP地址同一网段,那么这样一来,VLAN10内的用户就能够将网关指向这个SVI接口,当VLAN10PC需要访问本网段以外的网络时他们将数据交给网关,也就是SVI10,再由三层交换机去做路由查找及数据转发。实际上,在这个理解过程中,我们可以拿单臂路由那个模型对类比。

所以看上面这图,在三层交换机上创建了两个VLAN1020,同时为两个VLANSVI分配了地址作为各自VLAN的用户网关,这样一来,这台交换机的路由表里就有了两个VLAN网段的路由。那么当两VLAN之间要互访时,VLAN10的用户将数据丢给自己的网关,也就是VLAN10SVI,数据到了SVI10之后,三层交换机查表,发现目的地是VLAN20的所在网段,因此将数据从VLAN20扔出去,最终抵达目的地的VLAN20PC

配置及实现

1.      完成两台PC的配置

PC的配置不再赘述。

 

2.      完成交换机的配置

注意,用GNS模拟本实例中的三层交换机时,必须使用三层交换机的IOS,例如C3640平台的IOS。并且为设备添加的模块为NM-16ESW(具体的添加方法请见本手册GNS模拟器章节)。

SW的配置如下:

SW(config)# ip routing                                                        !!开启三层交换机的路由功能

 

SW(config)# vlan 10

SW(config-vlan)# exit

SW(config)# vlan 20

SW(config-vlan)# exit

 

SW(config)# interface fastethernet 0/1                       

SW(config-if)# switchport mode access

SW(config-if)# switchport access vlan 10

SW(config-if)# interface fastethernet 0/2            

SW(config-if)# switchport mode access

SW(config-if)# switchport access vlan 20

SW(config-if)# exit

 

SW(config)# interface vlan 10                                     !!配置vlan10SVI

SW(config-if)# ip address 192.168.10.254 255.255.255.0

SW(config-if)# interface vlan 20                                         !!配置vlan20SVI

SW(config-if)# ip address 192.168.20.254 255.255.255.0

 

SW#show ip interface brief

Interface              IP-Address             OK?      Method        Status         Protocol

FastEthernet0/1       unassigned       YES       unset           up            up  

…… ……  

Vlan1                      unassigned      YES      unset           up         down   

Vlan10                  192.168.10.254         YES       manual         up           up 

Vlan20                  192.168.20.254         YES       manual         up           up 


现在PC1PC2即可互访了。

4        安全篇

4.1      标准ACL

实验目的

1.      掌握标准ACL的配置;

2.      理解标准ACL在接入控制中的运用。

拓扑及需求

41 标准ACL实验 网络拓扑

1.      完成各设备配置使得全网互通;

2.      R2上部署标准访问控制列表,只允许192.168.12.0/24网段的用户穿越R2访问3.3.3.3,其他进入R2 S0/0接口的流量全部丢弃。

配置及实现

1.      完成设备的基本配置

R1的配置如下:

R1# configure terminal

R1(config)# Interface serial0/0

R1(config-if)# Ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

R1(config-if)# interface loopback0

R1(config-if)# ip address 1.1.1.1 255.255.255.255

R1(config-if)# exit

 

R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.2

 

R2的配置如下:

R2# configure terminal

R2(config)# interface serial0/0

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# interface serial0/1

R2(config-if)# clock rate 64000

R2(config-if)# ip address 192.168.23.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# exit

 

R2(config)# ip route 1.1.1.1 255.255.255.255 192.168.12.1

R2(config)# ip route 3.3.3.3 255.255.255.255 192.168.23.3

 

R3的配置如下:

R3# configure terminal

R3(config)# interface serial0/0

R3(config-if)# ip address 192.168.23.3 255.255.255.0

R3(config-if)# no shutdown

R3(config-if)# interface loopback0

R3(config-if)# ip address 3.3.3.3 255.255.255.255

R3(config-if)# exit

 

R3(config)# ip route 0.0.0.0 0.0.0.0 192.168.23.2

完成上述配置后,全网是能够互通的。

 

2.      R2上部署标准ACL

在完成上述配置后我们测试一下,首先在R1上直接ping 3.3.3.3,这时候由于ICMP包是从R1始发,因此这个ICMP报文的源IP地址就是其出接口的IP地址,由于报文从R1S0/0接口发出,因此源IP地址为192.168.12.1,当然数据包的目的地址是3.3.3.3。那么如果我们希望在R1上以1.1.1.1为源去ping 3.3.3.3呢?很简单,在R1上使用“ping 3.3.3.3 source 1.1.1.1”命令即可,source关键字后面的IP地址就是我们所设定的源地址,如果不指定source关键字,则缺省情况下源地址为报文出接口的地址。由于前面为各设备配置了路由,所以此时1.1.1.13.3.3.3是能够互访的。接下去聚焦我们的需求:“在R2上部署标准访问控制列表,只允许192.168.12.0/24网段的用户访问3.3.3.3”。

R2增加配置如下:

R2(config)# access-list 1 permit 192.168.12.0 0.0.0.255         

R2(config)# interface serial 0/0

R2(config-if)# ip access-group 1 in               !!ACL应用在R2S0/0in方向

与此一来从R1上直接ping 3.3.3.3是通的,因为数据的源地址是192.168.12.1,而使用1.1.1.1为源去ping 3.3.3.3,却无法ping通,因为此刻的源地址是1.1.1.1,所以被ACL干掉了:

R1#ping 3.3.3.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 48/74/120 ms

R1#ping 3.3.3.3 source 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 1.1.1.1

U.U.U

Success rate is 0 percent (0/5)

4.2      扩展ACL

实验目的

1.      掌握扩展ACL的配置;

2.      理解扩展ACL在接入控制中的运用。

拓扑及需求

42 扩展ACL实验 网络拓扑

1.      完成各设备的配置,保证全网可达;

2.      R2上部署ACL,只允许从1.1.1.13.3.3.3ICMP流量以及R13.3.3.3telnet流经过R2,其他从R2S0/0接口进入的流量过滤掉。

配置及实现

1.      完成设备的基本配置。

R1的配置如下:

R1# configure terminal

R1(config)# interface serial0/0

R1(config-if)# ip address 192.168.12.1 255.255.255.0

R1(config-if)# no shutdown

R1(config-if)# interface loopback0

R1(config-if)# ip address 1.1.1.1 255.255.255.255

R1(config-if)# exit

 

R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.2

 

R2的配置如下:

R2# configure terminal

R2(config)# Interface serial0/0

R2(config-if)# clock rate 64000

R2(config-if)# Ip address 192.168.12.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# Interface serial0/1

R2(config-if)# clock rate 64000

R2(config-if)# Ip address 192.168.23.2 255.255.255.0

R2(config-if)# no shutdown

R2(config-if)# exit

 

R2(config)# ip route 1.1.1.1 255.255.255.255 192.168.12.1

R2(config)# ip route 3.3.3.3 255.255.255.255 192.168.23.3

 

R3的配置如下:

R3# configure terminal

R3(config)# Interface serial0/0

R3(config-if)# ip address 192.168.23.3 255.255.255.0

R3(config-if)# no shutdown

R3(config-if)# interface loopback0

R3(config-if)# ip address 3.3.3.3 255.255.255.255

R3(config-if)# exit

 

R3(config)# line vty 0 4

R3(config-line)# password ccietea

R3(config-line)# login

R3(config-line)# exit

 

R3(config)# ip route 0.0.0.0 0.0.0.0 192.168.23.2

完成上述配置后,全网的数据是能够互通的。

 

2.      R2上部署扩展ACL

R2增加的配置如下:

R2(config)# access-list 100 permit icmp host 1.1.1.1 host 3.3.3.3 echo

R2(config)# access-list 100 permit tcp host 192.168.12.1 host 3.3.3.3 eq telnet

R2(config)# interface serial 0/0

R2(config-if)# ip access-group 100 in

测试1  R1直接ping 3.3.3.3,不通,因为数据包的源地址是192.168.12.1

测试2  R1 ping 3.3.3.3 source 1.1.1.1 ,通了,因为匹配ACL100第一条语句。

测试3  R1 telnet 3.3.3.3,连上了,因为匹配住了第二条语句。

其他流量全被干掉了。

4.3      NAT

实验目的

1.      理解NAT地址转换的机制;

2.      掌握静态NAT(及NAT端口映射)、动态NAT(地址池)、PAT的配置。

拓扑及需求

43 NAT基础实验 网络拓扑

1.      内网PC使用私有IPv4地址空间,网关在出口路由器上。

2.      完成Internet路由器的配置,该设备模拟互联网,配置Loopback接口并设置IP地址8.8.8.8/32,该地址用于模拟公网上的一个节点。

3.      配置OR路由器,采用NAT静态一对一IP映射,将192.168.1.1映射到200.1.1.10,使得PC能够访问8.8.8.8,同时Internet路由器也能够使用200.1.1.10来访问PC

4.      上一步需求实现后,删除NAT的配置,OR改用静态端口映射,仅将PCWEB端口映射到外网200.1.1.108080,使得Internet用户能够使用该地址和端口来访问PCWEB服务。

5.      上一步需求实现后,删除NAT的配置,OR改用动态NAT地址池一对一IP的方式,使得PC能够访问外网。

6.      上一步需求实现后,删除NAT的配置,OR改用动态NAT地址池Overload的方式,使得PC能够访问外网。

7.      上一步需求实现后,删除NAT的配置,OR改用接口Overload(使用外网接口)的方式,使得PC能够访问外网。

配置及实现

1.      完成所有设备的基本配置

PC的配置不再赘述。

OR的基本配置如下:

OR# configure terminal

OR(config)# interface fastEthernet 0/0

OR(config-if)# Ip address 192.168.1.254 255.255.255.0

OR(config-if)# no shutdown

OR(config-if)# interface serial 1/0

OR(config-if)# ip address 200.1.1.1 255.255.255.0

OR(config-if)# no shutdown

 

OR(config)# Ip route 0.0.0.0 0.0.0.0 200.1.1.2

为了让内网用户能够访问 Internet的资源,要在OR出口路由器上指一条默认路由出去,下一跳是运营商的设备,也就是图中的200.1.1.2

 

Internet路由器的基本配置如下:

Internet# configure terminal

Internet(config)# interface serial 0/0

Internet(config-if)# clock rate 64000

Internet(config-if)# ip address 200.1.1.2 255.255.255.0

Internet(config-if)# no shutdown

Internet(config-if)# interface loopback0

Internet(config-if)# ip address 8.8.8.8 255.255.255.255          

要注意,我们在OR上配置了一条默认路由,这是为了让内网用户能够到达Internet。但是在Internet路由器上,不能配置任何回指的路由,运营商是不可能给你指一条到你内网私有地址段的路由回来的。这是许多同学经常犯的一个错误。

经过上面的配置后我们从PC已经能ping通网关192.168.1.254,但是肯定是无法出外网的。

 

2.      配置静态一对一IP映射。

OR上,增补的命令如下:

OR(config)# ip nat inside source static 192.168.1.1 200.1.1.10

 

OR(config)# interface fastEthernet 0/0

OR(config-if)# ip nat inside                            #设置为NAT内部接口

OR(config)# Interface serial 1/0

OR(config-if)# ip nat outside                  #设置为NAT外部接口

ip nat inside source static 192.168.1.1 200.1.1.10这条命令是在OR上创建一条静态的NAT IP一对一映射条目,这样做的结果是,内网地址192.168.1.1与公网地址200.1.1.10对应了起来。一方面192.168.1.1这个私有地址在访问外网时,源地址被替换成200.1.1.10,使得它能够在Internet上畅游(当然200.1.1.10这个地址是需要向运营商购买或者申请的),另一个结果是,外网用户能直接访问200.1.1.10这个公网IP从而访问192.168.1.1这台内网PC,换而言之,这台PC将直接暴露在公网,这将带来一定的安全隐患。

OR#show ip nat translations                  !!查看NAT映射

Pro  Inside global       Inside local       Outside local      Outside global

---   200.1.1.10         192.168.1.1        ---                ---

可以看到,ORNAT映射表里创建了这一条静态的NAT映射条目。现在我们再去PC18.8.8.8,就能够ping通了。ping完之后可以在OR上查看到临时创建的NAT映射表项:

OR#show ip nat translations

Pro   Inside global      Inside local       Outside local      Outside global

icmp  200.1.1.10:1      192.168.1.1:1      8.8.8.8:1          8.8.8.8:1

---    200.1.1.10        192.168.1.1        ---                ---

 

当然现在Internet路由器也是能够主动发起访问到PC1的:

Internet#ping 200.1.1.10

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 200.1.1.10, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 28/53/104 ms

 

3.      配置NAT静态端口映射。

上面我们说过了,静态的IP一对一映射实质是将内网的一个IP完全暴露在了公网,折是存在风险的。在实际的环境中,我们可能并不需要把整个IP(的所有端口)映射到公网,而只需映射特定的端口,例如内网假设了WEB服务器,需要让外网来访问,那么我们可能只需要将内网服务器的TCP 80端口映射到公网IP即可,这就需要用到端口映射了。同样是上面的拓扑,我们假设现在PC是一台WEB服务器,我们通过在PC上配置如下命令来开启路由器的Http服务:

PC(config)# ip http server

然后我们要修改OR的配置,先将上一步配置的IP一对一映射去掉:

OR(config)# no ip nat inside source static 192.168.1.1 200.1.1.10

再配置NAT端口映射,OR的配置就变成了:

OR(config)# Interface FastEthernet0/0

OR(config-if)# Ip nat inside

OR(config)# Interface serial 1/0

OR(config-if)# Ip nat outside

 

OR(config)# ip nat inside source static tcp 192.168.1.1 80 200.1.1.10 8080

这里要注意,FastEthernet0/0接口的ip nat insideserial1/0ip nat outside也要配上,千万别忘了。ip nat inside source static tcp 192.168.1.1 80 200.1.1.10 8080这条命令的意思是,将内网主机192.168.1.1TCP 80端口,映射到外网的IP 200.1.1.108080端口上,那么这样一来公网用户通过访问200.1.1.10:8080就相当于访问这台内网服务器的80端口的web服务了。接下来我们测试一下,在Internet路由器上,去telnet 200.1.1.10 8080

注意上面这条命令的写法,一定要跟上后面的8080,否则你默认访问的是TCP 23端口。这条命令敲完之后,你会发现再敲回车虽然屏幕显示一直在换行,但是没有任何输出,这是因为Console界面不支持HTML脚本的可视化显示而已,而且我们用的是模拟器,PC上也没有任何web文件。其实我们已经登录到PC80端口上了,这个时候只要在PC上:

PC#show tcp brief

TCB        Local Address           Foreign Address        (state)

64D3F430  192.168.1.1.80          200.1.1.2.59728               ESTAB

就能看到外网用户200.1.1.2已经登录进来了。这里顺便提一句,使用telnet加端口号的方法,常用于我们在网络中检测目标节点的某个TCP端口是否开放。

 

4.      配置基于地址池的一对一NAT

静态的IP映射毕竟需要手工维护,如果IP资源有限,为了让不同的用户能上网,管理员还得频繁更换配置,太麻烦了,我们可以使用动态NAT地址池的方式来实现。这种方式,为路由器分配一个NAT地址池,这个地址池内包含用户向运营商申请到的一部分公网IP,将这些IP放入NAT池中,当有用户需要上网的时候,从池里找一个公网IP出来分配给这个用户,如果该用户不上了,那么又将IP放回池中,供其他人使用。当然,这种方式虽然是“动态的”,但是实质上仍然是一对一的IP映射关系,也就是一个内网IP映射到一个外网IP,如果申请了10个公网地址,也就只能满足同时10人在线,没有从根本上解决IPv4地址稀缺的问题。

                     同样的,我们还是在OR上进行配置,先把上一步的命令no掉。

OR(config)# no ip nat inside source static tcp 192.168.1.1 80 200.1.1.10 8080

接着如下配置:

OR(config)# access-list 1 permit 192.168.1.0 0.0.0.255

!! 创建一个ACL用于匹配允许进行NAT动态映射的内网地址段

OR(config)# ip nat pool ccietea 200.1.1.11 200.1.1.20 netmask 255.255.255.0

!! 定义NAT地址池ccietea,该地址池里包含从200.1.1.11200.1.1.20共计10个公网IP

OR(config)# ip nat inside source list 1 pool ccietea

!! NAT地址池与所定义的ACL进行关联,如此一来,被ACL所匹配的内网用户,当访问外网时,就可以使用NAT池中的地址进行地址转换。

同样的,别忘记了FE0/0接口下的ip nat insideserial1/0口下的ip nat outside命令。现在我们再做测试,让PCping 8.8.8.8,发现是能够ping通的。到OR上看一下:

OR#show ip nat translations

Pro Inside global         Inside local        Outside local      Outside global

icmp  200.1.1.11:2       192.168.1.1:2      8.8.8.8:2          8.8.8.8:2

---    200.1.1.11         192.168.1.1        ---                ---

可以看到动态创建的NAT映射表项。当PC访问外网时,由于PC的地址能够被ACL1所匹配,因此是允许被地址转换的,路由器从地址池中取出一个公网地址200.1.1.11,然后与192.168.1.1建立一对一的映射,注意此刻这个公网地址就是完完全全给PC1使用了。换句话说,这个地址池中一共10个公网地址,那么同时就只允许10个内网用户访问公网。

接下去我们考虑另一个特性:overload,使用这个特性,我们可以实现一对多的映射,也就是说,多个内网的私有IP,共用一个公网的IP地址上外网,正是这种技术的出现,真正缓解了IPv4地址稀缺的问题。配置的方法非常简单,只要在我们本例中定义的命令后,加上一个overload关键字即可:

OR(config)# ip nat inside source list 1 pool ccietea overload

这样一来,私有IP访问公网时,端口号也会被转换,这就可以实现多个私有IP地址共用一个公网IP地址,通过公网IP地址的端口号来区分不同的会话。

 

5.      配置接口Overload方式的动态NAT

端口过载的特性其实很好理解了。如果用户经济条件有限,没法买多个公网IP放进NAT地址池里进行overload,那么完全可以借用OR的公网接口IP来进行overload嘛,毕竟这个出口IP也是一个公网地址,而且闲着也是闲着是吧?

OR路由器的配置如下:

OR(config)# interface FastEthernet0/0

OR(config-if)# ip nat inside

OR(config-if)# exit

OR(config)# interface Serial1/0

OR(config-if)# ip nat outside

OR(config-if)# exit

OR(config)# no ip nat inside source list 1 pool ccietea overload       !!no掉上一个需求的命令

 

OR(config)# access-list 1 permit 192.168.1.0 0.0.0.255

OR(config)# ip nat inside source list 1 interface Serial1/0 overload 

 

配置完成后,内网用户访问外网时,将直接使用serial1/0口的地址进行转换,该地址会被overload,你可能会看到如下的现象:

OR#sh ip nat translations  

Pro        Inside global      Inside local       Outside local      Outside global

icmp      202.101.100.1:13  192.168.1.1:13     200.1.1.1:13       200.1.1.1:13

icmp      202.101.100.1:14  192.168.1.2:14     200.1.1.1:14       200.1.1.1:14

icmp      202.101.100.1:15  192.168.1.3:15     200.1.1.1:15       200.1.1.1:15

值得一提的是,PAT和动态NAT映射,丢失了端到端的寻址能力,换而言之,一方面内,这两种机制确实将内网“保护了起来”,但是,如若有特定的业务需求,要让公网用户访问内网的资源,那么就还是得要用到静态的NAT映射。


4.4      DHCP

实验目的

1.      理解DHCP的工作原理;

2.      掌握DHCP服务端及客户端在CISCO IOS路由器上的配置。

拓扑及需求

44 DHCP基础实验 网络拓扑

1.      Router上配置DHCP地址池使得PC能够通过DHCP自动获取地址、网关、DNS等信息。

2.      完成所有设备的配置,使得PC能够访问1.1.1.1

配置及实现

Router的配置如下:

Router# configure terminal

Router(config)# Interface fastethernet0/0

Router(config-if)# ip address 192.168.1.254 255.255.255.0

Router(config-if)# no shutdown

Router(config-if)# interface loopback0

Router(config-if)# ip address 1.1.1.1 255.255.255.255

 

Router(config)# service dhcp                                             !!开启DHCP服务

Router(config)# ip dhcp excluded-address 192.168.1.254

!!由于192.168.1.254已经被网关使用,因此该地址必须排除在DHCP地址池之外

Router(config)# ip dhcp pool ccietea                                  !!创建一个地址池,名字叫ccietea

Router(dhcp-config)# network 192.168.1.0 /24                  !!地址池使用的网络号192.168.1.0/24

Router(dhcp-config)# default-router 192.168.1.254           !!分配给PC的网关地址

Router(dhcp-config)# dns-server 8.8.8.8                           !!分配给PCDNS服务器地址

现在你可以直接连接一台真机在路由器的FE0/0口上,并将真机的网卡设置为自动获取IP地址,那么网卡就能够通过DHCP获取到地址等信息。当然,Cisco IOS路由器也是支持作为DHCP客户端的,例如本实验拓扑中的PC,如果使用路由器来模拟,那么配置如下:

PC(config)# no ip routing

 

PC(config)# interface fastethernet0/0

PC(config-if)# ip address dhcp                                    !!接口地址采用DHCP自动获取

PC(config-if)# no shutdown

接口一旦激活,就会开始发送DHCP Discovery去发现链路上的DHCP服务器。不一会儿PC1就能够获取到地址。

*Mar  1 00:05:47.399: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 192.168.1.1, mask 255.255.255.0, hostname PC

 

PC#show ip interface brief

Interface                  IP-Address      OK?   Method   Status       Protocol

FastEthernet0/0           192.168.1.1      YES   DHCP    up         up     

PC#

网关也获取到了:

PC1#show ip route

Default gateway is 192.168.1.254

Host               Gateway           Last Use    Total Uses  Interface

ICMP redirect cache is empty

 

DHCP服务器Router上也能够查询到地址的分配信息

Router #show ip dhcp binding

Bindings from all pools not associated with VRF:

IP address          Client-ID/              Lease expiration        Type

                    Hardware address/

                    User name

192.168.1.1         0063.6973.636f.2d63.    Mar 02 2002 12:05 AM    Automatic

                    6330.382e.3161.3830.

                    2e30.3030.302d.4661.

                    302f.30

 

PC#ping 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

!!!!!

4.5      综合实验1

实验目的

1.      全面理解交换原理并掌握交换机的配置;

2.      掌握DHCP的部署;

3.      通过本实验初步建立整体网络模型的概念。

拓扑及需求

45 NAT综合实验1 网络拓扑

1.      内网PC通过DHCP服务器自动获取地址(DHCP地址池中包含的网段是192.168.1.0/24,网关地址是192.168.1.254DNS服务器是8.8.8.8),DHCP服务器采用路由器来部署;

2.      内网PC及服务器均能访问Internet,采用接口Overload的方式;

3.      外网用户能够通过公网地址200.1.1.108080(此地址是客户向运营商购买的)访问内网服务器192.168.1.100WEB服务。

配置及实现

1.      完成DHCPserver的配置

DHCPserver的配置如下:

Router# configure terminal

Router(config)# hostname DHCPServer

DHCPserver(config)# no ip routing                                    !!关闭路由功能,模拟一台服务器

 

DHCPserver(config)# Interface fastethernet0/0

DHCPserver(config-if)# ip address 192.168.1.100 255.255.255.0

DHCPserver(config-if)# no shutdown

 

DHCPserver(config)# ip default-gateway 192.168.1.254    !!配置默认网关

 

DHCPserver(config)# service dhcp                                    !!开启DHCP服务

DHCPserver(config)# ip dhcp excluded-address 192.168.1.100

DHCPserver(config)# ip dhcp excluded-address 192.168.1.254

DHCPserver(config)# ip dhcp pool ccietea                         !!创建一个DHCP地址池

DHCPserver(dhcp-config)# network 192.168.1.0 /24         !!网络号192.168.1.0/24

DHCPserver(dhcp-config)# default-router 192.168.1.254  !!默认网关

DHCPserver(dhcp-config)# dns-server 8.8.8.8                  !!DNS服务器地址

 

2.      完成PC的配置

PC的配置如下

PC(config)# no ip routing

 

PC(config)# Interface fastethernet0/0

PC(config-if)# ip address dhcp                      !!地址采用DHCP自动获取

PC(config-if)# no shutdown

接口一旦激活后,PC即可获取到地址:

PC#show ip interface brief

Interface          IP-Address      OK?          Method        Status          Protocol

FastEthernet0/0    192.168.1.1     YES        DHCP         up                 up 

 

3.      完成Internet路由器的配置

Internet路由器的配置最为简单:

Internet(config)# Interface serial0/0

Internet(config-if)# clock rate 64000

Internet(config-if)# ip address 200.1.1.2  255.255.255.224

Internet(config-if)# no shutdown

Internet(config-if)# interface loopback0

Internet(config-if)# ip address 8.8.8.8 255.255.255.255

 

4.      完成OR出口路由器的配置

出口路由器OR的基本配置如下:

OR(config)# Interface fastethernet0/0

OR(config-if)# ip address 192.168.1.254  255.255.255.0

OR(config-if)# no shutdown

OR(config)# Interface serial1/0

OR(config-if)# ip address 200.1.1.1  255.255.255.224

OR(config-if)# no shutdown

 

OR(config)# ip route 0.0.0.0 0.0.0.0 200.1.1.2

OR路由器作为网络的出口设备,对外连接着Internet,因此为了保证内网用户能够访问浩瀚的Internet,需要为其配置一条默认路由。

完成上述配置后PCDHCPserver都能够ping通网关192.168.1.254OR也能够ping通公网节点8.8.8.8。但是PC无法访问Internet8.8.8.8),当然Internet路由器也无法访问DHCPserver。现在我们为OR配置NAT,这里要部署两种NAT,一是使用ORS1/0口做端口Overload(用于保证内网用户能够访问Internet),另外是配置NAT静态端口映射(用于保证Internet用户能够访问内网Server)。

OR(config)# Interface fastethernet0/0

OR(config-if)# ip nat inside

OR(config)# Interface serial1/0

OR(config-if)# Ip nat outside

 

OR(config)# access-list 1 permit 192.168.1.0 0.0.0.255

OR(config)# ip nat inside source list 1 interface serial 1/0 overload

 

OR(config)# Ip nat inside source static tcp 192.168.1.100 80 200.1.1.10 8080

完成上述配置后,PC即可ping8.8.8.8,而Internet路由器也能使用200.1.1.10 8080来访问内网DHCPServerWEB服务,测试方法在上一个实验中有介绍,不再赘述。

4.6      综合实验2

实验目的

1.      全面理解交换原理并掌握交换机的配置;

2.      掌握DHCP(多地址池)的部署;

3.      通过本实验巩固对整体网络模型的理解。

拓扑及需求