第3章思科网络设备与操作系统 学习计算机网络,使用计算机网络,尤其是学习网络协议、学习路由与交换技术,离不开网络设备,主要是路由器和交换机。美国思科公司是早期的网络设备提供商,中国的华为、中兴是优秀的后起之秀,思科的互联网操作系统也是经典的网络操作系统,且包括路由与交换等许多先进网络技术都源于思科。因此,本章详细介绍思科网络设备和思科操作系统,本书以此作为前提,在第4~10章系统介绍路由与交换技术。 3.1思科网络设备 思科网络设备类型很多,包括路由设备、交换设备、安全设备、无线设备、服务器与网络存储设备等,本书重点讲解路由与交换技术。因此,本章重点介绍路由器和交换机。 3.1.1认识路由器 “工欲善其事,必先利其器”,首先应当认识我们要操作的“器”长什么样。路由器以Cisco 2811为例,其外观如图31所示。 图31为思科Cisco 2811路由器的正面外观,按常用的公制单位毫米(millimeter,mm)计算,Cisco 2811路由器的高度为44.5mm,宽度为438.2mm,深度为416.6mm; 如果采用英制单位表述,如以英寸(inch,in)为单位,则Cisco 2811路由器的高度为1.75in、宽度为17.25in,深度为16.4in。对于网络设备而言,通常称这个高度为一个“机架单元”(rack unit),简称为1U或者1RU。1U与其他单位转换的转换关系为: 1U=1.75in=44.45mm。我们可以说,在标准的19in机架上,它占用1U的高度。常见的设备高度有1U、2U、3U、4U或者更多,如图32所示。 图31思科路由器2811外观 图32标准机架单元示意图 Cisco 2811路由器的正面如图33所示,从正面上看,可以看到左侧有多个指示灯,如: SYS PWR(system power)、AUX/PWR、SYS ACT等,用来指示系统电源、辅助电源、系统运行状态等。然后紧接着一个按钮和一个COMPACT FLASH卡(CF卡)插槽,这一按钮方便将CF卡从插槽中取出,按一下之后CF卡自动弹出。接下来是两个USB接口,再往右边有两个RJ45接口,上面那个是路由器的主控制接口(Console),下面是一个辅助控制接口(AUX,Auxiliary)。Console口常利用反转线连接到计算机的串行接口上,然后在计算机超级终端模拟软件上通过命令行的方式对路由器进行配置,而AUX口经常需要接到调制解调器(Modem)上,方便远程连接、配置和管理路由器。路由器右侧则是电源开关和电源接口。 图33Cisco 2811路由器正面示意图 Cisco 2811路由器裸机的背面如图34所示,Cisco 2811是一款经典的“模块化”设备,裸机不带扩展卡,可以根据需要进行选配,并单独购买。这些扩展卡一般是WIC(WAN Interface Card,广域网接口卡)或者HWIC(Highspeed WAN Interface Cards,高速广域网接口卡)。在图34中,这台路由器默认配备了一个固定配置模块,该模块上有两个快速以太网接口,右边接口的编号是fa0/0,左边接口的编号是fa0/1。因思科路由器接口编号规则是右边优先于左边,下面优先于上面。剩余部分可供用户按需自行选配,如图35所示,该路由器配备了多个WIC和HWIC接口卡。 图34Cisco 2811路由器裸机背面示意图 图35Cisco 2811选配了多个拓展卡 当然还有一些核心机房使用的高性能“大块头”设备,是一些大规模的模块化设备,图36所示是思科高性能路由器Cisco ASR 9910,上部包含引擎卡和多个拓展接口卡,下面采用多电源热备供电,通常部署在对性能、IP服务、冗余性和永续性要求非常高的电信运营商网络边缘或大型企业网。 3.1.2路由器接口 从思科路由器的外观可以看到,这些路由器具有丰富的物理接口,例如以太网接口(Ethernet)、快速以太网接口(Fast Ethernet)、千兆以太网接口(Gigabit Ethernet)等,此外还有串行接口(Serial)、ATM接口、POS接口、控制接口(Console)、辅助接口(AUX)等。除了上述物理接口外,还有一些逻辑接口,例如回环接口(Loopback)、拨号接口(Dialer)、子接口(SubInterface)等。 图36Cisco ASR 9910 高性能路由器 路由器接口众多,因此,思科路由器需要对这些接口进行有序编号。通常有如下三种规则: (1) 对于固定的接口或者低端固定配置路由器,路由器接口编号一般是单个数字,例如串行接口Serial 0(可以简写为s0)、以太网接口Ethernet 1(e1)等。 (2) 对于中低端模块化路由器,路由器接口编号一般是用斜杠(/)隔开的两个数字,前者表示模块所在槽位的编号,后者表示具体的接口编号。例如,位于0号槽位的1号快速以太网接口FastEthernet 0/1(fa0/1),位于1号槽位的1号快速以太网接口FastEthernet 1/1(fa1/1)。 (3) 高端模块化路由器,路由器接口编号一般是用斜杠(/)隔开的三个数字,从左向右第1个数字是槽位号,第2个数字是模块号,第3个数字是该模块上的具体接口号。这样的模块一般有两种尺寸,一种是较小的模块,命名一般为“WICXXX”,而另一种则是较大的模块,命名一般为“NMXXX”。 思科路由器接口编号的命名优先原则是: 从零开始,从下到上,从右至左。 如图37所示,Cisco 2811是模块化路由器,共有两个槽位。遵循规则,右侧的槽位编号为0槽位,左侧则是1槽位。其中,0槽位有一个固定配置模块和四个选配的模块。固定配置模块上有两个快速以太网接口,从右到左分别命名为Fa 0/0、Fa 0/1。0槽位内部除去固定配置后,还有四个模块位,依据上述命名规则,说明如下: (1) 右下方的模块编号为0,安装了一个WIC2T模块,该模块有上下两个串行接口,依据从下到上的优先级,分别命名为Serial 0/0/0、Serial 0/0/1,即第0槽位的第0模块上的第0、1两个串行接口。 (2) 左下方的模块编号为1,安装了一个HWIC4ESW模块,该模块上有四个快速以太网接口,依据从右到左的优先级,分别命名为Fa 0/1/0、Fa 0/1/1、Fa 0/1/2、Fa 0/1/3,即第0槽位的第1模块上的第0、1、2、3四个快速以太网接口。 (3) 右上方的模块编号为2,安装了一个WIC2T模块,该模块上有上下两个串行接口,从下到上分别命名为Serial 0/2/0、Serial 0/2/1,即第0槽位的第2模块上的第0、1两个串行接口。 (4) 左上方的模块编号为3,安装了一个WIC1ENET模块,该模块上有一个以太网接口,可直接命名为Ethernet 0/3/0,即第0槽位的第3模块上的第0个以太网接口。 图37Cisco 2811路由器选配了多个拓展卡 第1槽位比较简单,安装了一个比较大的NM2FE2W模块,这一模块上有一个固定配置模块和两个选配的模块。固定配置模块上有两个快速以太网接口,依据从右到左的优先级,右边的是Fa 1/0、左边的是Fa 1/1,即第1槽位上的第0、1两个快速以太网接口。固定配置模块上方的两个选配模块编号命名如下: (1) 右边的模块编号为0,安装了一个WIC2T模块,该模块上有上下两个串行接口,从下到上分别命名为Serial 1/0/0、Serial 1/0/1,即第1槽位第0模块上的第0、1两个串行接口。 (2) 左边的模块编号为1,安装了一个HWIC4ESW模块,该模块上有四个快速以太网接口,从右到左分别命名为Fa 1/1/0、Fa 1/1/1、Fa 1/1/2、Fa 1/1/3,即第0槽位第1模块上的第0、1、2、3四个快速以太网接口。 3.1.3路由器硬件信息 这些固定配置或模块化的路由器、交换机,其实都是特殊的计算机,这些设备与个人计算机对比有类似的部分,也有特殊的部分。这部分硬件相当于路由器或者交换机的“内脏”: (1) CPU。即中央处理器,相当于“脑袋”,和计算机一样,它是路由器的控制和计算部件。 (2) ROM。只读存储器,是固化在硬件上的一个模块,类似计算机的BIOS,存储了路由器的开机诊断程序、引导程序和特殊版本的IOS软件(用于诊断用途),当ROM中软件升级时需要更换芯片。 (3) RAM/DRAM。随机存储器,用于存放临时运行的文件和结果,例如,路由表、ARP表、快速交换缓存、缓冲数据包、数据队列,以及当前配置信息。众所周知,RAM中存储的数据在路由器或交换机断电后是会丢失的。 (4) Flash。可擦除、可编程的ROM,类似个人计算机的硬盘,用于长期存放文件,主要存放路由器的IOS,Flash的可擦除特性允许更新、升级IOS,而不用更换路由器内部的芯片。当路由器断电后,Flash的内容不会丢失,当Flash容量较大时,可以存放多个不同的IOS版本。 (5) NVRAM。非易失性RAM,也是固化在主板上的模块,但断电后,NVRAM里的内容不会丢失,主要用于存放网络管理员保存好的配置文件,当设备重新启动后需要加载的启动配置文件。 3.1.4路由器的功能 路由器是第三层网络设备,具备丰富的网络功能,主要如下: (1) 广域网连接。使用路由器可以实现局域网和运营商网络之间的连接,也可以多台路由器之间联网,再接入互联网,从而实现广域网连接。 (2) 网络分段和广播隔离。如果一个网络中包含的主机数量很多,容易产生广播风暴,不方便配置和管理,严重影响网络整体性能。这个时候可以根据业务需要对主机进行分组,构建多个广播域,然后利用路由器能够分割广播域的功能,采用路由器来连接各个分组。再通过路由器实现不同分组主机间的数据转发,并隔离各分组的广播,也方便实现各分组流量控制,从而对原有网络进行分段和有效管理。 (3) 学习路由。这是路由器的核心功能。首先是构建路由表,当路由器接口配置完成并激活后,即可学习到直连的路由信息,构建初始路由表,此时路由表只包含直连路由信息。管理员可以手工指定路由,如配置静态路由协议; 也可以由路由器自己动态学习新路由,如配置动态路由协议,主要有内部网关路由协议(如RIP、ISIS、EIGRP、OSPF等)和外部网关路由协议(如BGP等)。 (4) 路由选择与数据转发。路由器学习到路由之后,生成完整的路由表,并依据所配置的路由协议进行更新。然后就可以进行路由选择与数据转发了,具体步骤为路由器接口接收到数据包之后,会读取数据包中IP报头里面的源端IP地址和目的IP地址(拆包); 根据目的IP地址,与对应子网掩码进行异或运算得到目的网络地址,然后查找路由表,找到路由表中匹配的路由条目(查表); 从该路由条目中找到本地出接口和下一跳IP地址,利用地址解析协议(ARP)将下一跳IP地址解析成对应接口的MAC地址,将该MAC地址重新封装到即将转发的数据帧的帧头部(打包); 最后,将重新打包好的数据从匹配的路由表条目中指定的本地出接口转发出去(转发)。当在路由表中找不到匹配的路由条目时,检查是否有配置默认路由,有则走默认路由转发该数据包,否则就丢弃该数据包。 3.1.5认识交换机 了解路由器之后,接下来简单介绍思科交换机的外观,这里以思科Catalyst 3560系列为例,如图38所示。这些交换机高度通常为1U。左侧通常有几个指示灯,主面板是多个RJ45接口类型的快速以太网端口,数量通常有12个、24个或48个,右边另有2个或4个千兆口模块,可以选配千兆电口(连接RJ45跳线)或者千兆光口(连接光纤跳线)。主控制Console口在交换机背面,电源接口也在背面,通常没有电源开关。 图38思科Catalyst 3560系列交换机 路由器的接口一般称为接口,交换机的接口一般称为端口。普通1U的交换机默认模块号为0,且一般都从第1个端口开始计数,如Fa 0/1,然后是Fa 0/2,直到Fa 0/24。 交换机也有高性能的“大块头”,同样也是模块化设备,如图39展示的是思科Nexus 9500下一代自动化数据中心交换机,包含4槽、8槽、16槽三款,通过使用Cloud Scale 1/10/25/40/100G EX/FX系列线卡,这些交换机为高度可编程的行业领先软件定义网络。 本书虽以思科路由器和交换机以及思科互联网操作系统为基础介绍路由与交换技术及相关配置方法,但是,技术无国界,我国的华为、中兴和星网锐捷等也有非常先进的路由器、交换机和其他网络设备。因知识产权保护问题,与思科不同的是,不同的品牌其操作系统不同、配置方法也不同,但都支持各种开放的技术,如RIP、OSPF等。思科私有的协议(如EIGRP)对其他品牌设备不支持。因此,通过本书的学习,掌握了各种协议的原理、配置、排错与验证方法,对于不同厂商的设备,可以根据设备附带的用户配置手册查看其设备配置方法,很容易就能上手对其他品牌的设备进行配置和管理。 图39思科Nexus 9500交换机 3.2思科互联网络操作系统IOS 思科路由器和交换机都采用思科互联网络操作系统(Internetwork Operating System,IOS),交换机的配置方法和路由器非常类似,本章以路由器为例介绍如何使用IOS。 3.2.1思科IOS的功能 思科IOS是思科路由器和绝大部分Catalyst交换机的操作系统,它负责路由选择、交换、网络互联、远程通信、安全和运维等功能。IOS有如下重要的功能: (1) 运行各种网络协议,并提供相应功能。 (2) 高速传输数据。 (3) 控制访问,提高安全性。 (4) 支持扩展,方便网络扩容。 (5) 提供资源访问的可靠性。 扩展阅读: 关于思科IOS与苹果iOS的小故事。 IOS是思科路由器和大部分交换机的操作系统,说到IOS你可能想到了美国苹果(Apple)公司的iOS,两者之间的确有关系。 2007年1月,iPhone这个名称首次作为苹果公司设计生产的手机名称亮相,但其实iPhone此前已是思科网络电话的注册商标,思科随后提起了侵权诉讼。不久,思科和苹果宣布达成和解,双方同意各自继续使用iPhone作为产品名称。 2010年6月,苹果公司将iPhone OS改名为iOS,思科和苹果再次就商标授权问题达成了协议。思科同意将iOS商标授权给苹果使用,代表其在iPhone、iPod Touch和iPad等移动设备所使用的操作系统。该授权仅涉及商标,不涵盖任何相关技术。 苹果公司的iOS提供了优美的用户界面,拥有良好的用户体验。但遗憾的是,思科的IOS则只提供了命令行形式(Command Line Interface,CLI)界面供用户操作思科网络设备,它有点像是Windows操作系统上的cmd.exe程序。尽管没有华丽的外表,但IOS功能十分强大,默默地为网络活动提供服务。 3.2.2连接思科路由器 部署在实际网络中的思科路由器在开机启动后,保持着出厂的默认配置,此时并不能实现任何网络功能,需要网络管理员连接路由器并对其进行适当的配置。连接思科路由器的方法主要有如下几种: (1) 通过反转线连接PC上的串行接口与路由器的主Console接口,然后通过PC终端模拟软件(超级终端)采用命令行的方式配置路由器,这是本书配置路由器和交换机的主要方法。 (2) 利用网管工作站(NMS)通过网络远程配置路由器。 (3) 采用调制解调器远程拨号连接路由器的AUX口配置路由器。 (4) 通过配置Telnet的方式远程登录路由器进行配置。 连接思科路由器最常见的方法是计算机通过Console线(反转线)连接到路由器的Console口,如图310所示,这种Console线通常一端是RJ45接口,连接到路由器的Console口,而另一端则是RS232九针接口(DB9),连接到计算机的串行口上。 近年来,新的笔记本电脑都追求超薄和超轻,基本上都去掉了串行接口,所以需要添置一条USB转RJ232九针接口(DB9)的转换线,如图311所示,配合上面的Console线使用,或者直接购买USB转RJ45的专用配置线,以实现笔记本电脑直接连接并配置路由器或交换机。 图310Console线 图311USB转DB9转换线 3.2.3设备启动过程 思科路由交换设备的启动过程大致有以下几个步骤,如图312所示。 图312Cisco 2811路由器启动过程 (1) 设备自检。路由器执行POST(开机自检)程序。POST存储在ROM中并从ROM中运行,在自检过程中,路由器检查所有的硬件模块和所有接口是否工作正常。 (2) 加载bootstrap(引导程序)。bootstrap程序存储在ROM中,负责查找每个IOS程序的位置,然后启动加载IOS映像文件。 (3) 定位并加载IOS的映像文件。默认情况下,所有思科路由器都从Flash中加载IOS映像文件。如果在Flash中没有找到IOS映像文件,路由器将会直接进入BOOT模式,在BOOT模式下可以使用TFTP上传IOS文件。 (4) 定位并加载配置文件。当加载IOS软件成功后,系统会首先从NVRAM中查找有效的配置文件startupconfig,当系统找到该文件后,自动加载该文件里的所有配置信息,并将所有的配置信息复制到RAM中并调用runningconfig,进入用户模式,最终完成启动过程。 如果在NVRAM里没有startupconfig文件,则路由器会直接进入setup mode(设置模式),使用no命令退出该模式进入命令行CLI(Command Line Interface)模式,然后根据需要对路由器进行配置。 启动过程中有许多#号,此时IOS系统在Flash中解压并加载到RAM中,同时也有一些配置文件从NVRAM中加载。启动过程有一些重要信息,如平台型号(图312中平台为c2811)、IOS版本(图312中为Version 12.4)等。然后,设备启动后会询问用户是否进入系统配置对话框,一般情况下,可以输入no跳过设置,直接登录设备。如果读者输入了yes进入初始配置对话框但又想中途退出,可按Ctrl+C组合键退出。 Would you like to enter the initial configuration dialog? [yes/no]: no 3.3终端模拟软件配置方法 第一次配置路由器必须通过Console线(反转线,或翻转线)进行,这也是最常见的方式。在实验室内,通常在计算机上安装终端模拟软件,然后将计算机的串口与路由器的控制口(Console)连接后,便可以在计算机上使用终端模拟软件连接上路由器进行配置操作。 图313超级终端 Windows系统下,终端模拟软件有很多,例如超级终端、PuTTY、XShell、SecureCRT等。下面以超级终端为例,通过下列步骤演示如何使用终端模拟软件。 (1) 打开超级终端,如图313所示,双击hypertrm.exe。 (2) 设为默认Telnet软件。根据自己的意愿选择是否设置为默认Telnet软件,如图314所示,这里单击“是”按钮。 图314超级终端询问设置默认Telnet程序 (3) 位置信息。需要输入区号,如图315和图316所示,可以设置北京的区号为010,或者福州区号0591都可以,这个没有强制要求。 图315超级终端询问位置信息 图316超级终端询问电话和调制解调器选项 (4) 创建新的连接,如图317所示,这里名称以Cisco为例,如果有图标,可以任选一个图标。 (5) 选择连接时用的串口,如图318所示,通常是COM1。在Windows操作系统下,可以到“设备管理器”中的“端口”栏目确认。 图317超级终端询问连接描述 图318超级终端询问连接串口 (6) COM1的属性配置,如图319所示,可以单击“还原为默认值”按钮。国内外图书、文档、论坛等常称其为串口通信协议96008N1,请记住这些信息,方便以后配置。即:  每秒位数(Baud rate): 9600  数据位(Data bit): 8  奇偶校验(Parity): 无(None)  停止位(Stop bit): 1  数据流控制(Data flow control): 无(None) 图319配置COM1属性 3.4IOS命令行操作方法 配置完终端模拟软件后,进入路由器的IOS命令行界面。如果消息没有及时显示,可按Enter键或等待,如图320所示。 图320通过Console口进入路由器命令行界面 此时为IOS的用户执行模式,IOS有多种配置模式,下面详细介绍。 3.4.1IOS配置模式与方法 思科路由器的IOS配置模式主要有以下几种: (1) 用户执行模式(User Exec Mode)。 (2) 特权执行模式(Privileged Exec Mode)。 (3) 全局配置模式(Global Configuration Mode)。 (4) 监控模式(ROM Monitor Mode)。 (5) 安装模式(Setup Mode)。 (6) Boot模式(RXBoot Mode)。 下面分别简要介绍这几种模式。 1. 用户执行模式(User Eexc Mode) 通过Console线连接到路由器,在终端模拟软件登录到路由器上,此时默认模式为用户执行模式。此模式下,用户可以看路由器的连接状态,访问其他网络和主机,但不能看到和更改路由器的设置内容。这一模式下的提示符为>。 Router> 2. 特权执行模式(Privileged Exec Mode) 从用户模式输入enable(或者简写en)进入特权模式。特权模式下输入disable(或者dis)返回用户执行模式(也可以使用exit)。在特权模式下,可以执行所有的用户命令,还可以看到和更改路由器的设置内容。这一模式下的提示符为#,输入config terminal可以进入全局配置模式。 Router> enable Router# Router# disable Router> 3. 全局配置模式(Global Configuration Mode)及其子模式(Sub Mode) 特权模式输入config terminal或者conf t进入全局配置模式。全局模式下输入exit可返回特权模式。全局配置模式下,可以设置路由器的全局参数,可以配置绝大部分的协议。这一模式下的提示符为(config)#。 Router# configure terminal Router(config)# Router(config)# exit Router# 在全局配置模式下,还有许多的子模式,这里介绍常用的几种。 (1) 接口子模式(interface mode),对接口进行配置,可以对某个具体的接口进行配置,这个接口可以是物理接口(如Serial接口、fastEthernet接口),也可以是逻辑接口(如Loopback接口)。全局配置模式下,输入类似interface fastEthernet 0/0的命令进入接口模式。 Router(config)# interface fastEthernet 0/0 Router(config-if) # (2) 线路子模式(line mode),设置各种线路,包括console线路、VTY线路等,进入VTY线路模式后,可以设置VTY密码。 Router(config)# line vty 0 4 Router(config-line) # (3) 路由子模式(router mode),配置各种路由协议,下面以RIP协议为例。 Router(config)# router rip Router(config-router) # 3.4.2简化命令与帮助 Cisco IOS具有强大的功能,能够根据较少的字母做出相应的命令提示帮助,支持各种命令的缩写、命令补全,以及输入错误命令的错误提示等。 1. 命令提示功能 在输入命令过程中,如果忘记了接下来有什么选项,可通过问号(?)来显示帮助。例如,当输入show ip interface ?后,IOS提示了如下一些信息。有时提示信息过多,会显示为,此时按Enter键会一行一行显示,或者按Space键则一屏一屏加载剩余部分。 Router#show ip interface ? AsyncAsync interface BVIBridge-Group Virtual Interface CDMA-IxCDMA Ix interface CTunnelCTunnel interface DialerDialer interface FastEthernetFastEthernet IEEE 802.3 LexLex interface LoopbackLoopback interface MFRMultilink Frame Relay bundle interface MultilinkMultilink-group interface NullNull interface Port-channelEthernet Channel of interfaces SerialSerial TunnelTunnel interface VifPGM Multicast Host interface Virtual-Dot11RadioVirtual dot11 interface Virtual-PPPVirtual PPP interface Virtual-TemplateVirtual Template interface Virtual-TokenRingVirtual TokenRing XTagATMExtended Tag ATM interface briefBrief summary of IP status and configuration vmiVirtual Multipoint Interface |Output modifiers 有时命令输入一半,忘记了剩余部分,同样可以借助问号获取提示。例如,当输入show ip interface b?后,输出结果提示为BVI和brief,也就意味着以b开头的可选项有这两个,根据需要选择一个即可。 Router#show ip interface b? BVIbrief Router#show cdp nei? neighbors 2. 简化命令功能 IOS支持命令简化,当输入的命令不冲突时,使用简写也能识别。例如show ip interface brief可以简写为sh ip int b,configure terminal可以简写为conf t。那么简化为con t可以吗?结果如下: Router#con t % Ambiguous command: "con t" Ambiguous command即“不明确的命令”“模棱两可的命令”,即命令有歧义,不能准确表达configure terminal的意思,为了避免歧义,使用conf t即可。IOS支持命令简化,但简化后不得有歧义。 3. 命令补全功能 虽然可以简化命令,但有的用户习惯输入完整命令,在没有歧义的情况下,命令可以用Tab键补全。例如输完show ip int后按Tab键,可以补全interface一词,然后输入bri再按Tab键,可以补全brief一词。 Router#show ip int Router#show ip interface Router#show ip interface bri 4. 错误提示 错误提示主要体现在如下几个方面。 1) Ambiguous command 不明确的命令,可能是缩写有歧义。可删除其余参数,在第一个缩写的内容后紧接着输入一个问号(?),确认是否有同样“前缀”的命令。 Router#con t % Ambiguous command: "con t" Router#con? configure connect Router#conf t Router(config)# 例如,当输入con t时出现提示这是不明确的命令,因此在con后紧跟着输入一个问号(?),查看命令提示,可以发现以con开头的命令除了configure外还有一个connect,因此,为了使用configure terminal可以选择输入conf t。 2) Incomplete command 不完整的命令,可能是缺少必要参数或者用错命令。此时建议在该不完整的命令后加一个问号,查看命令提示,方便排查错误。例如: Router(config)#hostname % Incomplete command Router(config)#hostname ? WORD This system's network name Router(config)#hostname R1 R1(config)# 当输入hostname命令后确认,会提示这是不完整的命令。借助问号进行命令提示,可以看到hostname命令后面应接着一个WORD,然后在后面加个参数即可。 3) % Invalid input detected at '^' marker 无效命令,可能是输错命令,IOS用^符号定位可能出错的位置。例如: Router(config)#hotsname R1 ^ % Invalid input detected at '^' marker. Router(config)#hostname R1 R1(config)# 仍以hostname命令为例,当命令敲错为hotsname的时候,字母t下方会有^提示,表明此处可能存在错误。 3.5IOS基础命令 3.5.1三条重要命令 为了保证实验过程更顺利,少出错误或者更节约时间,建议在每次实验开始前,先输入如下三条非常重要的命令: Router> enable Router# config terminal Router(config)# no ip domain lookup //关闭DNS查找功能 Router(config)# line console 0 //进入主控制线路模式 Router(config-line)# logging synchronous //关闭日志消息,启用光标跟随 Router(config-line)# exec-timeout 0 0 //关闭屏保,永不超时 这三条重要的命令及其作用解释如下: (1) no ip domain lookup。关闭DNS查找,防止DNS解析。实验过程中偶尔会因手误或其他原因将命令输入错误,默认情况下,Cisco IOS会把它当成一个地址来查找,该查找过程将消耗一定的时间,造成了不必要的延时。这条命令关闭了DNS查找,阻止了查找过程。 (2) logging synchronous。操作时,输入的命令常常被路由器日志消息打断,会导致看不清命令,需要重新输入。为了避免这种情况发生。可以进入主控制线路配置模式,输入上述命令,启用光标跟随,实现同步信息显示,避免被日志消息打断。 (3) exectimeout 0 0。操作设备时,可能因为各种原因需要中断操作,如果两次操作间隔时间较长,则需要重新登录。如果是通过Console口登录,则可能需要重新输入密码。其中,这个间隔时间称为“超时时间”。exectimeout这条命令将设置Console口的操作超时时间,exectimeout后接两个数字,第一个数值是分,第二个数值是秒。例如exectimeout 9 16将设备超时时间设置为9分16秒。当这两个数值均为0时,则设置为永不超时。 在3.1.2节介绍过,在不与其他命令发生冲突的情况下,可以简写命令,如上述三条重要的命令可以分别简写如下所示: Router> en Router# conf t Router(config)# no ip do lo Router(config)# li con 0 Router(config-line)# logg syn Router(config-line)# exec-t 0 0 3.5.2设备重命名 思科路由器默认设备名称为Router,思科交换机默认设备名称为Switch。在配置网络时,因设备同名,容易造成混淆,不便管理与配置,因此需要对设备进行重命名。 在全局配置模式下,可以使用hostname命令对各设备进行重命名。通常路由器以字母R开头,交换机以字母S开头。 Router(config)#hostname R1 R1(config)# 3.5.3配置接口 思科路由器的接口有物理接口和逻辑接口等。常用的物理接口有串行接口(Serial,可简写s)、快速以太网接口(FastEthernet,可简写f、fa)等。常用的逻辑接口有环回接口(loopback,可简写lo)等。 loopback接口是完全由软件模拟的路由器本地接口,其状态一直处于UP状态,但允许手动关闭。配置一个loopback类似于配置一个快速以太网接口。发往此接口的数据将会被路由器在本地处理。 配置接口,对接口添加IP地址的方法如下: Router(config)# interface fa0/0 //接口名,具体接口 Router(config-if)# ip address 192.168.100.1 255.255.255.0 //IP地址,掩码 Router(config-if)# no shutdown 其中,这里的no shutdown让物理接口保持UP状态,逻辑接口不需要此操作。 1) 配置串行接口(Serial) 例如,串行接口Serial 0/0/0添加一个IP地址172.1.1.2/30,命令如下: Router(config)# int s0/0/0 Router(config-if)# ip add 172.1.1.2 255.255.255.252 Router(config-if)# no shut 2) 配置快速以太网接口(FastEthernet) 例如,快速以太网接口FastEthernet 0/0添加一个IP地址192.168.100.1/24,命令如下: Router(config)# int f 0/0 Router(config)# ip add 192.168.100.1 255.255.255.0 Router(config)# no sh 3) 设置环回接口(Loopback) 例如,对环回接口Loopback 2添加一个IP地址1.1.2.1/32。注意,环回接口是逻辑接口,其状态一直是UP状态,因此可以不用no shutdown命令。 Router(config)# int lo 2 Router(config)# ip add 1.1.2.1 255.255.255.255 4) 接口描述 对接口设置描述信息对网络管理员来说非常有必要,通过查看描述,方便网络管理员了解接口的相关信息。在接口模式下,可通过description命令对接口描述进行设置。 Router(config)#int fa 0/0 Router(config-if)#description Connect To Router2 配置完成后,可通过show interface查看。 Router#show interfaces FastEthernet0/0 is up, line protocol is down (disabled) Description: Connect To Router2 ...(部分内容省略) 还可以通过show ip interface brief查看接口的摘要信息,结果如下: Router#show ip interface brief InterfaceIP-Address OK? Method StatusProtocol FastEthernet0/0 192.168.100.1 YES manual upup FastEthernet0/1 unassigned YES unset administratively down down Serial0/0/0 172.1.1.2 YES manual upup Serial0/0/1 unassigned YES unset administratively down down Serial0/2/1 unassigned YES unset administratively down down Loopback 2 1.1.2.1 YES manual up up 上述结果表明: 路由器的fa0/0接口、Serial0/0/0接口和Loopback 2接口的IP地址设置正确,物理接口激活,处于UP状态,逻辑协议工作正常,也处于UP状态。这时,直连链路应该是连通的,可以通过相互ping相邻接口的IP地址验证配置的正确性。 3.5.4常用查看命令 在实际网络运维中,网络管理员应该随时了解路由器的各种状态,以便及时发现问题,排除故障。 在Cisco IOS中,查看路由器或交换机的命令为show命令,可以同时在用户模式和特权模式下运行,在其他模式下需要在show前面加do。show命令有很多,在特权模式下可以通过“show ?”来提供一个可利用的show命令列表,常用的有如下几种。 (1) show interfaces: 查看所有路由器接口状态,如果想要查看特定接口的状态,可以输入show interfaces后面跟上特定的网络接口号即可,如: router#show interfaces serial 0/0/1,再回车即可显示广域网接口serial 0/0/1的接口状态信息。 (2) show controllers serial: 查看特定接口的硬件信息。 (3) show clock: 查看路由器的时间设置。 (4) show hosts: 查看路由器主机名和地址信息。 (5) show history: 查看输入过的历史命令列表。 (6) show flash: 查看Flash存储器信息以及存储器中的IOS映像文件。 (7) show version: 查看路由器信息和IOS版本信息。 (8) show arp: 查看路由器的地址解析协议列表。 (9) show protocol: 查看全局和接口的第三层协议的特定状态。 (10) show ip interface brief: 查看路由器所有接口状态信息摘要,主要为接口名称、IP地址、是否处于UP状态。 (11) show ip route: 查看路由表信息。 (12) show startupconfiguration: 查看存储在非易失性存储器(NVRAM)的配置文件。 (13) show runningconfiguration: 查看存储在内存中的当前配置文件。 在学习具体的路由协议时,还有很多针对性的show命令可以查看更多与路由协议相关的信息,这些将在第4~7章逐步介绍。 3.5.5常用连通性测试命令 常用的连通性测试命令主要是ping命令和traceroute命令,该命令有以下多种用法。 (1) ping IP地址。如R1访问目的地址3.3.3.3,用法如下: 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 = 10/10/11 ms (2) ping IP地址source IP地址。如由R1接口上的源地址1.1.1.1访问目的地址3.3.3.3,用法如下: 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 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 10/10/11 msSuccess rate is 100 percent (5/5), round-trip min/avg/max = 10/10/11 ms (3) traceroute IP地址。如R1追踪访问目的地址3.3.3.3,同时显示访问路径,用法如下: R1#traceroute 3.3.3.3 Type escape sequence to abort. Tracing the route to 3.3.3.3 VRF info: (vrf in name/id, vrf out name/id) 1 12.12.12.2 10 msec 10 msec 15 msec 2 23.23.23.3 10 msec * 9 msec 3.6思科发现协议 思科发现协议(Cisco Discovery Protocol,CDP)是思科私有的二层网络协议,工作在数据链路层。CDP有CDPv1和CDPv2两个版本,能够运行在大部分的思科路由器和交换机上。 3.6.1CDP协议配置与查看方法 通过CDP,直连的思科网络设备间可以相互交换信息,可以获知对方的名称、系统版本、接口、IP地址等信息。 如图321所示,三台路由器R1、R2、R3通过广域网接口进行连接,重命名设备后配置各接口,让接口处于激活状态,默认情况下,思科路由器的CDP自动生效,用no shutdown保持UP状态后,CDP自动开启。 图321CDP协议示例拓扑 R1(config)#int s0/2/1 R1(config-if)#no shutdown R2(config)#int s0/2/1 R2(config-if)#no shutdown R2(config-if)#int s0/0/1 R2(config-if)#no shutdown R3(config)#int s0/2/1 R3(config-if)#no shutdown 在特权执行模式下,可以通过以下命令查看cdp信息,以下输出信息以R1为例,R2、R3类似。 R1#show cdp Global CDP information: Sending CDP packets every 60 seconds Sending a holdtime value of 180 seconds Sending CDPv2 advertisements is enabled 输出表明,每60s会对外发一次CDP数据包,保持时间为180s,正在使用CDP版本2。 然后用show cdp nei可以列表查看路由器上的CDP邻居输出结果,显示如下。 R1#show cdp nei Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater Device ID Local Intrfce Holdtme CapabilityPlatformPort ID R2 Ser 0/2/1 120 R S I 2811 Ser 0/2/1 R2#show cdp neighbors ...(部分内容省略) Device ID Local Intrfce Holdtme Capability Platform Port ID R1 Ser 0/2/1 168 R S I 2811 Ser 0/2/1 R3#show cdp nei ...(部分内容省略) Device ID Local Intrfce Holdtme CapabilityPlatformPort ID R2 Ser 0/2/1 175 R S I 2811Ser 0/0/1 从输出中,可以观察到如下重要的参数: (1) Device ID。设备ID,指明邻居设备的主机名。 (2) Local Intrfce。即Local Interface,本地路由器接口。指明邻居设备连接本机的接口。 (3) Holdtme。保持时间,指明在邻居表中的邻居表项,能在表中的存活的时间,默认情况下,它是CDP间隔发送时间的3倍(即默认180s)。 (4) Capability。指明连接的设备类型与支持的功能,如R为路由器、S为交换机、H为主机,I表示具备IGMP功能。 (5) Platform。平台类型,指明邻居设备的具体型号,此处均为思科2811路由器。 (6) Port ID。端口ID,指明邻居设备的哪个接口与本机相连。 上述结果表明,R1通过本地的S 0/2/1接口与R2的S 0/2/1接口相连。R2通过本地的S 0/2/1接口与R1的S 0/2/1接口相连,R2通过本地的S 0/0/1接口与R3的S 0/2/1相连。R3通过本地的S 0/2/1接口与R2的S 0/0/1接口相连。这与图321中的事实是相符的。 如果需要更详细的信息,可以使用以下命令。 Router#show cdp neighbors detail 两台路由器上的输出结果如下。 R1#show cdp neighbors detail ------------------------- Device ID: R2 Entry address(es): Platform: Cisco 2811, Capabilities: Router Switch IGMP Interface: Serial0/2/1, Port ID (outgoing port): Serial0/2/1 Holdtime : 157 sec Version Cisco IOS Software, 2800 Software (C2800NM-ADVENTERPRISEK9-M), Version 12.4(15)T 9, RELEASE SOFTWARE (fc5) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2009 by Cisco Systems, Inc. Compiled Tue 28-Apr-09 13:10 by prod_rel_team advertisement version: 2 VTP Management Domain: ' 上面结果除了前面提及的信息外,还能显示更详细的版本信息、版权信息等。 3.6.2禁用CDP服务 CDP协议默认是开启的,但也可以通过命令关闭该协议,有如下两种方法。 1. 全局禁用CDP 有时候为了防止这些设备信息泄露,可以在全局配置模式下彻底关闭CDP。例如,在R2上关闭CDP协议。 R2(config)#no cdp run 然后静候一小会儿(即CDP发包间隔时间,默认60s),再查看各路由器上CDP邻居表。 在R1、R3上查看CDP邻居表,列表显示为空,效果如下: R1#show cdp neighbor ...(部分内容省略) Device ID Local Intrfce Holdtme Capability Platform Port ID R3#sh cdp neighbor ...(部分内容省略) Device ID Local Intrfce Holdtme Capability Platform Port ID 而R2上则会提示CDP不可用。 R2#show cdp neighbor % CDP is not enabled 不过,尽管此时CDP不可用,但如果通过show ip interface brief命令,可以发现这些接口依然是激活状态。 2. 接口禁用CDP 有时,CDP协议信息需要对内发送而对外隐藏,这时候可以在路由器上启用CDP,然后在对外的接口上禁用CDP,防止信息外泄,配置方法如下。 Router(config)#interface [interface] Router(config-if)#no cdp enable 例如,在R2上重新启用CDP,并在Serial 0/0/1接口上禁用CDP功能。 R2(config)#cdp run R2(config)#int s0/0/1 R2(config-if)#no cdp enable R2(config-if)#exit 此时查看R2上CDP接口情况,可以发现Serial 0/0/1已不在列表中。 R2#show cdp interface FastEthernet0/0 is administratively down, line protocol is down Encapsulation ARPA Sending CDP packets every 60 seconds Holdtime is 180 seconds FastEthernet0/1 is administratively down, line protocol is down Encapsulation ARPA Sending CDP packets every 60 seconds Holdtime is 180 seconds Serial0/0/0 is administratively down, line protocol is down Encapsulation HDLC Sending CDP packets every 60 seconds Holdtime is 180 seconds Serial0/2/0 is administratively down, line protocol is down Encapsulation HDLC Sending CDP packets every 60 seconds Holdtime is 180 seconds Serial0/2/1 is up, line protocol is up Encapsulation HDLC Sending CDP packets every 60 seconds Holdtime is 180 seconds 等待一会儿,等CDP发包间隔时间结束,重新查看邻居表,输出如下内容: R1#show cdp neighbor ...(部分内容省略) Device ID Local Intrfce Holdtme CapabilityPlatformPort ID R2 Ser 0/2/1 164 R S I 2811 Ser 0/2/1 R2#show cdp neighbor ...(部分内容省略) Device ID Local Intrfce Holdtme CapabilityPlatformPort ID R1 Ser 0/2/1 122 R S I 2811 Ser 0/2/1 R3#sh cdp neighbor ...(部分内容省略) Device ID Local Intrfce Holdtme CapabilityPlatformPort ID 此时R1、R2重新相互发现,而R2、R3之间因为R2的s0/0/1被禁用,导致R2、R3无法知道对方的信息。 3.7路由器配置默认网关 有时候为了测试方便,经常使用路由器临时充当端系统(如主机),此时需要为其配置默认网关。如图322所示,有两台路由器,其中一台充当主机(重命名为Host)。 图322路由器模拟主机示例 路由器Router的快速以太网接口FastEthernet 0/0的IP地址设为192.168.1.254,子网掩码设为255.255.255.0。配置接口IP地址,并激活接口,操作如下: Router(config)#int f0/0 Router(config-if)#ip add 192.168.1.254 255.255.255.0 Router(config-if)#no shutdown 名为Host的路由器在全局配置模式下关闭其路由功能,此时路由器暂时丧失路由能力,无法配置路由协议,可以模拟终端主机。如要恢复路由能力,在全局配置模式下使用ip routing命令开启路由功能。 Host(config)#no ip routing 名为Host的路由器的Fast Ethernet 0/0接口IP地址设为192.168.1.1,子网掩码设为255.255.255.0。配置接口IP地址并激活接口,操作如下: Host(config)#int f0/0 Host(config-if)#ip address 192.168.1.1 255.255.255.0 Host(config-if)#no shutdown Host(config-if)#exit 为这台设备配置默认网关,注意,ip default gateway仅在禁用路由功能时才可用。 Host(config)#ip defaul t-gateway 192.168.1.254 查看默认网关方法如下: Host#sh ip route Default gateway is 192.168.1.254 Host Gateway Last Use Total Uses Interface ICMP redirect cache is empty 从结果中看到,默认网关已经设置为192.168.1.254。 用ping命令测试两台设备测试连通性,结果均为!!!!!,可知两台设备已连通。 3.8实战演练 通过上述对Cisco IOS基本配置命令的介绍,下面通过一个具体的拓扑图对一些基本的配置进行实战演练,通过不断练习,为第4~12章实验打下扎实基础。 1. 实战拓扑图 本实战演练的拓扑图如图323所示,共4台路由器,两两之间通过串口线连接,每台路由器还设置一个环回接口用于测试,R1连接PC1用于测试直连链路连通性。 图323路由器基础配置实战拓扑 2. 实战需求 按照步骤完成下列实验内容: (1) 按照实战拓扑图连接好各设备。注意路由器与计算机的连接使用交叉线,路由器串口之间使用Serial口专用线。 (2) 修改设备名称。将4台路由器分别修改为R1、R2、R3和R4。 (3) 通过CDP协议构建路由器之间连接的拓扑结构图。实验室中,每组实验设备的拓扑结构可能和图323不完全相同,但CDP协议可以很好地处理这个问题。首先进入路由器的各个接口,接着no shut激活物理接口,这时,CDP默认自动打开,路由器全部接口都激活后,稍微等一会儿,然后每台路由器上查看CDP邻居,把每台路由器的邻居和接口看清楚,最后在笔记本上做好记录,把路由器间的拓扑结构画出来,把相连的接口标记清楚。 (4) 配置接口IP地址。拓扑结构确定好后,就可以给路由器接口配置IP地址了,注意的是,两台路由器直连的两个接口的IP地址必须在同一个子网的不同地址,子网掩码必须相同。如R1的S 0/2/1和R2的S 0/2/1相连,给定的IP地址段为12.12.12.0/30,则可以在R1的S 0/2/1设置IP地址为12.12.12.1/30,在R2的S 0/2/1设置IP地址为12.12.12.2/30。路由器R1的fa0/0和PC1通过交叉线连接,fa0/0的IP地址作为PC1的默认网关,两端配置好后,PC1应该也可以ping通fa0/0的IP地址。 (5) 查看路由器接口状态。配置完接口IP地址后,即可以通过show ip interface brief查看各接口状态,如果每个接口的IP地址显示正确,物理状态和协议状态全部是UP的话,则配置正确。 (6) 测试直连链路连通性。各接口IP地址配置完,接口状态全部正常后,就可以测试直连链路连通性了。在路由器R1上ping路由器R2的S 0/2/1接口地址12.12.12.2,应该是可以ping通的。但是,在路由器R1上ping路由器R3的接口IP地址能不能ping通呢?答案是不可以的。因为R1和R3之间跨越了不同子网,要想让它们之间能够互通,需要配置路由协议,这个到第4章会系统介绍。 习题与思考 1. 你熟悉思科、华为、中兴、星网锐捷公司主流的路由器和交换机吗?不熟悉的话就去网络上搜索调研一下吧,可以列表对比分析下,各个厂商的优势分别有哪些?然后,继续网络上调研,这些厂商分别在哪些领域应用较广泛,这些领域有什么特征,你是如何理解的? 2. 如果给你一台路由器,除了Console接口配置路由器外,你还有哪些方式可以对这台路由器进行配置,分别需要哪些设备和线缆的支持?想办法找到这些设备和线缆,然后到实验室去实践一下。 3. 实验室的设备一般以小组为单位,每个小组有多台路由器和多台交换机,你能将各台设备连接起来形成一个局域网络,然后通过CDP协议,将该网络的拓扑结构图画出来吗? 4. 当拓扑结构图画出来之后,就可以将该网络划分成多个子网了,你能为这些子网内的设备接口设置IP地址,并完成直连链路的连通性测试吗?跨不同子网的接口地址能ping通吗?为什么呢?