网络基本概念
网络发展历史
1946年:世界上第一台计算机诞生。军事科研-高速运算
1962年:古巴导弹危机
1969年:美国国防部高级研究计划署ARPA “巨型网络”-ARPAnet阿帕网
厂商垄断一不能大规模普及IBM
每个厂商都单独定义标准
问题:网络没有标准
1977年:TCP/IP架构(标准)
1980年:ARPAnet3全面向TcP/IP架构进行迁移
1984年:IS0-国际标准化组织机构(定义各行各业的标准)
OSI:开放式系统互联
同时,TCP/IP模型全面推出
工业标准:设备上使用的是通信型的标准TCP/IP
1.统一化
2.分层管理
3.故障定位比较明确
0SI:7层模型
7-应用层
作用:1.满足下面模型无法解决的问题 2.产生不同的数据 3.验证手段-加密手段
6-表示层
作用:负责数据的解码、编译
5-会话层
作用:实现应用级别不同服务的区分(进程:某个服务)
=========================================不同领域
4-传输层(TCP-可以纠错UDP-无法纠错)
作用:1实现一个设备上不同应用的区分2按不同的协议实现纠错
无法实现:1.无法实现应用级别不同服务的区分2有可能无法实现纠错
3-网络层
作用:1.从全局定位某一台设备(IP地址)2.路由
无法实现:1.纠错(对错误的改正)2.无法实现一个设备不同应用的区分
2数据链路层
作用:1差错检测 2.提供链路上的地址信息(mac地址)
无法实现:1纠错(对错误的改正) 2.无法从全局的角度分析地址信息
1-物理层
作用:规范传输介质的标准-网线 光纤(-设备的连接 -数据的传输)
无法实现:差错检测
下层解决不了的问题,交给上层。
TCP/IP模型——定义了具体的协议和标准
4-应用层
3-传输层
2-网络层
1-网络接口层
华为协议地图IP 报文格式大全 (huawei.com)
网络参考模型
TCP/IP协议栈定义了一系列的标准协议
• 应用层
▫ HTTP( Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面。
▫ FTP( File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。
▫ DNS( Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之
间的转换。
• 传输层
▫ TCP ( Transmission Control Protocol,传输控制协议) :为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。
▫ UDP( User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠性的保证。
• 网络层
▫ IP( Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
▫ IGMP( Internet Group Management Protocol, 因特网组管理协议):负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
▫ ICMP( Internet Control Message Protocol,网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
应用层
-
应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。
-
应用层的PDU被称为Data(数据)。
• TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU( Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。
• 不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
常见应用层协议-FTP
FTP(File Transfer Protocol)是一个用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,它采用C/S(Client/Server)结构。
常见应用层协议-Telnet
Telnet是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在本地计算机上完成远程设备工作的能力。
常见应用层协议-HTTP
HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
传输层
传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。
传输层的PDU被称为Segment(段)。
TCP和UDP-报文格式
TCP报文头部:
▫ Source Port:源端口,标识哪个应用程序发送。长度为16比特。
▫ Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
▫ Sequence Number:序号字段。 TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
▫ Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。
▫ Header Length:头部长度,指出TCP报文头部长度,以32比特( 4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
▫ Reserved:保留,必须填0。长度为6比特。
▫ Control bits:控制位,包含FIN、 ACK、 SYN等标志位,代表不同状态下的TCP数据段。
▫ Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。
▫ Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。
TCP和UDP-端口号
-
客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;
-
源端口号一股为系统中未使用的,且大于1023;
-
目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80。
TCP的建立-三次握手
任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。
TCP连接建立的详细过程如下:
▫ 由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;
▫ 接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;
▫ PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1。 PC2收到之后, TCP双向连接建立。
TCP的序列号与确认序列号
TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。
假设PC1要给PC2发送一段数据,传输过程如下:
▫ 1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为“ a+1”, 第二个字节的序号为“ a+2”, 依次类推。
▫ 2. PC1会把每一段数据的第一个字节的编号作为序列号( Sequence number),然后将TCP报文发送出去。
▫ 3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号( a+1 )+载荷长度=下一段数据的第一个字节的序号( a+1+12)
▫ 4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“ a+1+12” ,说明“ a+1”到“ a+12”这一段的数据已经被接受,需要从“ a+1+12”开始发送。
• 为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。
TCP的窗口滑动机制
TCP通过滑动窗口机制来控制数据的传输速率
-
1. 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。
• 2. 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。
• 3. 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。
• 4. 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。
• 5. 发送方根据接收方当前的Window大小发送相应数量的数据。
TCP的关闭-四次挥手
当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。
TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前, TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方
向的连接必须都关闭。如图所示:
▫ 1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;
▫ 2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
▫ 3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
▫ 4. PC1收到FIN置位的TCP报文,回复ACK报文, TCP双向连接断开。
网络层
-
传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。
-
网络层的PDU被称为Packet(包)。
• IPv4( Internet Protocol Version 4),简称IP,是目前应用最广泛的网络层协议。
网络层协议工作过程
• 当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自己。 IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
• IP数据包的封装与转发:
▫ 网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
▫ 中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图” ——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
▫ IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。
• IP协议工作时,需要如OSPF、 IS-IS、 BGP等各种路由协议帮助路由器建立路由表, ICMP帮忙进行网络的控制和状态诊断。
数据链路层
-
数据链路层位于网络层和物理层之间,可以向网络层的P、PV6等协议提供服务。数据链路层的PDU被称为Frame(帧)。
-
以太网(Ethernet)是最常见的数据链路层协议
以太网与MAC地址
-
以太网是一种广播式数据链路层协议,支持多点接入。
-
个人电脑的网络接口遵循的就是以太网标准。
-
一般情况下,一个广播域对应着一个IP网段。
-
MAC(Media Access Control)地址在网络中唯一标识一个网卡,
每个网卡都需要且会有唯一的一个MAC地址。
-
MAC用于在一个P网段内,寻址找到具体的物理设备。
-
工作在数据链路层的设备。例如以太网交换机,会维护一张
MAC地址表,用于指导数据顺转发。
-
MAC地址由48比特( 6个字节)长, 12位的16进制数字组成。例如: 48-A4-72-1C-8F-4F
地址解析协议(ARP)
ARP(Address Resolution Protocol)地址解析协议:
根据已知的P地址解析获得其对应的MAC地址。
• ARP( Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的一个TCP/IP协议。
• ARP是IPv4中必不可少的一种协议,它的主要功能是:
▫ 将IP地址解析为MAC地址;
▫ 维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
▫ 实现网段内重复IP地址的检测。
ARP的工作原理(1)
• 网络设备一般都有一个ARP缓存( ARP Cache)。 ARP缓存用来存放IP地址和MAC地址的关联信息。
• 在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项, 则直接采用该表项中的MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它。
• 学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内(缺省: 180s),设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期, ARP表项会被自动删除。
• 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址。然后将数据发送给网关。最后网关再把数据转发给目的设备。
ARP的工作原理(2)
• 主机1的ARP缓存表中不存在主机2的MAC地址,所以主机1会发送ARP Request来获取目的MAC地址。
• ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机1的MAC地址。此时,由于主机1不知道主机2的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。
• ARP Request报文中包含发送端MAC地址、发送端IP地址、目的端MAC地址、 目的端IP地址, 其中目的端MAC地址的值为0。 ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。
ARP的工作原理(3)
• 所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP请求报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。
ARP的工作原理(4)
• 主机2会向主机1回应ARP Reply报文。
• ARP Reply报文中的发送端IP地址是主机2自己的IP地址,目的端IP地址是主机1的IP地址,目的端MAC地址是主机1的MAC地址,发送端MAC地址是自己的MAC地址,同时操作类型被设置为Reply。
• ARP Reply报文通过单播传送。
ARP的工作原理(5)
• 主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段与自身的IP地址是否匹配。
如果匹配, ARP报文中的发送端MAC地址和发送端IP地址会被记录到主机1的ARP缓存表中。
物理层
-
数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。
-
物理层的PDU被称为比特流(Bitstream)。
常见传输介质
• 双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:
▫ STP-屏蔽双绞线
▫ UTP-非屏蔽双绞线
• 光纤传输,按照功能部件可分为:
▫ 光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。
▫ 光模块:将电信号与光信号互转的器件,产生光信号。
• 串口电缆在WAN( Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、 ATM接口、 POS接口、 CE1/PRI接口等。
• 无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据传输。
数据通信过程
发送方数据封装
• 假设你正在通过网页浏览器访问华为官网, 当你输入完网址,敲下回车后,计算机内部会
发生下列事情:
▫ 1. IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装(图中DATA还应包括HTTP头部,此处省略) 。
▫ 2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
▫ 3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。
▫ 4. 在IPv4网络中, TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理)。
▫ 5. IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。
▫ 6. 由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。
▫ 7. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS帧尾,此时的PDU被称为Frame(帧)。
▫ 8. 在Ethernet模块封装完毕之后,会将数据传递到物理层。
▫ 9. 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。
▫ 10. 转换完成的信号在网络中开始传递。
中间网络数据传输
封装好的完整数据,将会在网络中被传递。
• 一般情况下:
▫ 网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
▫ 网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。
▫ 注:“交换”和“路由”的详细细节和原则,将会在后面的课程中详细介绍。
接收方数据解封
• 经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将被一层层的解封装并做相应的处理和传递,最终交由WEB服务器上的应用程序进行处理。
华为VRP
前言
-
通用路由平台VRP(Versatile Routing Platform)是华为公司数据通信产品的通用操作系统平台。它以IP业务为核心,采用组件化的体系结构,在实现丰富功能特性的同时,还提供了基于应用的可裁剪和可扩展的功能,使得路由器和交换机的运行效率大大增加。
-
熟悉VRP操作系统并且熟练掌握VRP配置是高效管理华为网络设备的必备基础。
-
本课程主要介绍VRP的基本概念、常用命令和CLI界面的使用。
华为VRP系统概述
-
VRP是华为公司数据通信产品的通用操作系统平台,作为华为公司从低端到核心的全系列路由器、以太网交换机、业务网关等产品的软件核心引擎。
-
VRP提供以下功能:实现统一的用户界面和管理界面实现控制平面功能,并定义转发平面接口规范实现各产品转发平面与VRP控制平面之间的交互屏蔽各产品链路层对于网络层的差异
VRP的发展
文件系统
-
文件系统是指对存储器中文件、目录的管理,功能包括查看、创建、重命名和删除目录,拷贝、移动、重命名和删除文件等。
-
掌握文件系统的基本操作,对于网络工程师高效管理设备的配置文件和VRP系统文件至关重要。
• 配置文件是命令行的集合。用户将当前配置保存到配置文件中,以便设备重启后,这些配置能够继续生效。另外,通过配置文件,用户可以非常方便地查阅配置信息,也可以将配置文件上传到别的设备,来实现设备的批量配置。
• 补丁是一种与设备系统软件兼容的软件,用于解决设备系统软件少量且急需解决的问题。在设备的运行过程中,有时需要对设备系统软件进行一些适应性和排错性的修改,如改正系统中存在的缺陷、优化某功能以适应业务需求等。
• 文件的管理方式包括:
▫ 通过Console或者telnet等直接登陆系统管理
▫ 通过FTP、 TFTP或SFTP登录设备进行管理
存储设备
存储设备包括:SDRAM、Flash、NVRAM、SD Card、USB。
• 存储设备包括: SDRAM、 Flash、 NVRAM 、 SD Card、 USB
▫ SDRAM是系统运行内存,相当于电脑的内存;
▫ NVRAM非易失存储器,日志写入FLASH操作是耗时耗CPU的操作,因此采用缓存机制,即日志产生后,先存入缓存,定时器超时或缓存满后再写入Flash;
▫ Flash与SD Card属于非易失存储器,配置文件与系统文件存放于flash或SD Card中,具体设备参考产品文档;
▫ SD Card是外置的SD存储卡,用来扩展。 USB是接口,用于外接大容量存储设备,主要用于设备升级,传输数据;
▫ 补丁文件和PAF文件由维护人员上传可自行指定放置。
设备初始化过程
设备上电后,首先运行BootROM软件,初始化硬件并显示设备的硬件参数,然后运行系统软件,最后从默认存储路径中读取配置文件进行设备的初始化操作。
• BootROM( Boot Read-Only Memory)是一组固化到设备内主板上ROM芯片中的程序,它保存着设备最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。
• 开机界面提供了系统启动的运行程序和正在运行的VRP版本及其加载路径等信息。
设备管理
·用户对设备的常见管理方式主要有命令行方式和Wb网管方式两种。
·用户需要通过相应的方式登录到设备后才能对设备进行管理。
VRP用户界面
-
用户通过命令行方式登录设备时,系统会分配一个用户界面用来管理、监控设备和用户间的当前会话。
-
设备系统支持的用户界面有Console用户界面和虚拟类型终端VTY(Virtual Type Terminal)用户界面。
VRP用户级别
-
VRP提供基本的权限控制,可以实现不同级别的用户能够执行不同级别的命令,用以限
制不同用户对设备的操作。
• 为了限制不同用户对设备的访问权限,系统对用户也进行了分级管理。用户的级别与命令级别对应,不同级别的用户登录后,只能使用等于或低于自己级别的命令。缺省情况下,命令级别按0~ 3级进行注册,用户级别按0~ 15级进行注册,用户级别和命令级别对应关系如表所示。
WEB网管方式登录
• 注意:不同设备登录界面、登录方式和登录的IP可能不同,具体参考产品文档。
命令行方式-本地登录
• 使用Console线缆来连接交换机或路由器的Console口与计算机的COM口,这样就可以通过
计算机通过PuTTY工具实现本地调试和维护。 Console口是一种符合RS232串口标准的RJ45
接口。目前大多数台式电脑提供的COM口都可以与Console口连接。笔记本电脑一般不提供COM 口,需要使用USB到RS232的转换接口。
• Console口登录是设备默认开启的功能,不需要对设备做预配置。
• 很多终端模拟程序都能发起Console连接,例如,可以使用PuTTY连接到VRP操作系统。使
用PuTTY连接VRP时,必须设置端口参数。上图是端口参数设置的示例,如果对参数值做了
修改,需要恢复默认参数值。
• 完成设置以后,点击“ Open”按钮即可与VRP建立连接。
命令行方式-远程登录
• 设备默认不开启SSH登录功能,需要用户先通过Console口登录,配置上SSH登录必须的参
数之后,才可以使用SSH登录功能。
命令行界面
-
登录成功后即进入命令行界面CLI(Command Line Interface)。
-
命令行界面是工程师与网络设备进行交互的常用工具。
• 命令行界面CLI( Command Line Interface)是用户与路由器进行交互的常用工具。用户登
录到路由器出现命令行提示符后,即进入命令行界面。
基本命令结构
-
华为提供的命令按照一定的格式设计,用户可以通过命令行界面输入命令,由命令行界面对命令
进行解析,实现用户对路由器的配置和管理。
-
命令字:规定了系统应该执行的功能,如display(查询设备状态),reboot(重启设备)等命令字。
-
关键字:特殊的字符构成,用于进一步约束命令,是对命令的拓展,也可用于表达命令构成逻辑而增设的补充字符串。
-
参数列表:是对命令执行功能的进一步约束。包括一对或多对参数名和参数值。
• 每条命令有最多一个命令字,若干个关键字和参数,形成一条命令,参数必须由参数名和
参数值组成。
• 命令字、关键字、参数名、参数值之间,需要用空格分隔开。
命令行视图
-
设备提供了多样的配置和查询命令,为便于用户使用这些命令,VRP系统按功能分类将命令分别注册在不同的命令行视图下。
• 用户视图应为登录系统后的第一个视图。在用户视图中不提供除查询和工具命令之外的其他命令。
• 用户视图中,唯一可进入的视图是系统视图;系统视图中提供全局的配置命令;如果系统
存在下一级配置视图,则在系统视图中须提供进入下一级配置视图的命令。
• 登录到系统后,首先进入的是用户视图,这里仅提供查询,以及ping, telnet等工具命令,不提供任 何配置命令。
• 用户视图下通过system-view命令可以进入到系统视图,系统视图提供一些简单的全局配置功能。
• 一些复杂的配置功能,如配置一个以太网接口,需要的参数比较多,因此系统提供以太网接口的配置视图,在系统视图中,使用命令interface GigabitEthernet X(此处X表示一个 具体接口的编号) 进入GE接口配置视图,这个配置视图当前针对GE接口X,所有的命令仅对GE接口X生效。
编辑命令行
-
设备的命令行界面提供基本的命令行编辑功能,以下为常用的编辑功能:
1、功能键
。退格键Backspace:删除光标位置的前一个字符,光标左移,若已经到达命令首,则响铃告警。
。左光标键,-或<Ctl+B>:光标向左移动一个字符位置,若已经到达命令首,则响铃告警。
。右光标键,或<Ct+F>:光标向右移动一个字符位置,若已经到达命令尾,则响铃告警。
2、不完整关键字输入
。设备支持不完整关键字输入,即在当前视图下,当输入的字符能够匹配唯一的关键字时,可以不必输 入完整的关键字,例如:
-
注:此处的关键字与命令行格式中的“关键字”不同,一条命令中除“参数值”外都可以被叫做关键字。
3、Tab键的使用:
如果与之匹配的关键字唯一,按下<Tab>键,系统自动补全关键字,补全后,反复按<Tb>关键字不变。
如果与之匹配的关键字不唯一,反复按<Tb>键可循环显示所有以输入字符串开头的关键字。
如果没有与之匹配的关键字,按Tb键后,关键字不变。
使用命令行在线帮助
用户在使用命令行时,可以使用在线帮助以获取实时帮助,从而无需记忆大量的复杂的命令。
命令行在线帮助可分为完全帮助和部分帮助,可通过输入“?”实现。
-
以上获取的在线帮助的显示信息仅为示意,请以设备实际显示为准。
解读命令行的错误信息
用户键入的命令,如果通过语法检查,则正确执行,否则系统将会向用户报告错误信息。
使用undo命令行
在命令前加undo关键字,即为undo命令行。undo命令行一般用来恢复缺省情况、禁用某个功能
或者删除某项配置。以下为参考案例:
。使用undo命令行恢复缺省情况
<Huawei>system-view
[Huawei]sysname Server
[Server]undo sysname
[Huawei]
使用undo命令禁用某个功能
<Huawei>system-view
[Huawei]ftp server enable
[Huawei]undo ftp server
。使用undo命令删除某项设置
[Huawei]interface g0/0/1
[Huawei-GigabitEtherneto/0/1]ip address 192.168.1.1 24
[Huawei-GigabitEtherneto/0/1]undo ip address
使用命令行的快捷键
·用户可以使用设备中的快捷键,完成对命令的快速输入,从而简化操作。
·系统中的快捷键分成两类,自定义快捷键和系统快捷键。
常见文件系统操作命令
-
查看当前目录
<Huawei>pwd
-
显示当前目录下的文件信息
<Huawei>dir
-
查看文本文件的具体内容
<Huawei>more
-
修改用户当前界面的工作目录
<Huawei>cd
-
创建新的目录
<Huawei>mkdir
• VRP基于文件系统来管理设备上的文件和目录。在管理文件和目录时,经常会使用一些基本命令来查询文件或者目录的信息,常用的命令包括pwd, dir [ /all ] [ filename | directory ]和more [ /binary ] filename [ offset ] [ all ]。
▫ pwd命令用来显示当前工作目录。
▫ dir [ /all ] [ filename | directory ]命令用来查看当前目录下的文件信息。
▫ more [ /binary ] filename [ offset ] [ all ]命令用来查看文本文件的具体内容。
▫ 本例中,在用户视图中使用dir命令,可以查看flash中的文件信息。
• 目录操作常用的命令包括: cd directory, mkdir directory和rmdir directory。
▫ cd directory命令用来修改用户当前的工作目录。
▫ mkdir directory命令能够创建一个新的目录。目录名称可以包含1-64个字符。
-
删除目录
<Huawei>rmdir
-
复制文件
<Huawei>copy
-
移动文件
<Huawei>move
-
重命名文件
<Huawei>rename
-
删除文件
<Huawei>delete
• rmdir directory命令能够删除文件系统中的目录,此处需要注意的是,只有空目录才能被删除。
• copy source-filename destination-filename命令可以复制文件。如果目标文件已存在,系统会提示此文件将被替换。目标文件名不能与系统启动文件同名,否则系统将会出现错误提示。
• move source-filename destination-filename命令可以用来将文件移动到其他目录下。move命令只适用于在同一储存设备中移动文件。
• rename old-name new-name命令可以用来对目录或文件进行重命名。
• delete [ /unreserved ] [ /force ] { filename | devicename }命令可以用来删除文件。不带unreserved参数的情况下,被删除的文件将直接被移动到回收站。回收站中的文件也可以通过执行undelete命令进行恢复,但是如果执行delete命令时指定了unreserved参数,则文件将被永久删除。在删除文件时,系统会提示“是否确定删除文件”,但如果命令中指定了/force 参数,系统将不会给出任何提示信息。 filename参数指的是需要删除的文件的名称, devicename参数指定了储存设备的名称。
-
恢复删除的文件
<Huawei>undelete
-
彻底删除回收站中的文件
<Huawei>reset recyde-bin
• reset recycle-bin [ filename | devicename ]可以用来永久删除回收站中的文件, filename
参数指定了需要永久删除的文件的名称, device-name参数指定了储存设备的名称。
基本配置命令
1.配置设备名称
[Huawei]sysname name
2.设置系统时钟
<Huawei>clock timezone time-zone-name{add minus offset
用来对本地时区信息进行设置。
<Huawei>clock datetime utc]HH:MMSS YYYY-MM-DD
用来设置设备当前或UTC日期和时间。
<Huawei>clock daylight-saving-time
用来设置设备的夏令时。
• 网络上一般都会部署不止一台设备,管理员需要对这些设备进行统一管理。在进行设备调试的时候,首要任务是设置设备名。设备名用来唯一地标识一台设备。 AR系列路由器默认的设备名是Huawei, 而S系列交换机默认的设备名是HUAWEI。设备名称一旦设置,立刻生效。
• 为了保证与其他设备协调工作,需要准确设置系统时钟。系统时钟的=UTC( Coordinated
Universal Time) +当前时区与UTC的时间差,一般设备上都会有内置的UTC和时间差配置。
▫ 可以通过clock datetime命令直接设置设备的系统时钟,格式为HH:MM:SS YYYYMM-DD,此时UTC等于系统时钟-时间差。
▫ 也可以通过修改UTC和系统当前时区来修改系统时钟
▪ clock datetime [ utc ] HH:MM:SS YYYY-MM-DD用来修改UTC时间。
▪ clock timezone time-zone-name { add | minus } offset 用来配置本地时区信息。本地时间加上或减去offset即为UTC。
▫ 有的地区实行夏令时制,因此当进入夏令时实施区间的一刻,系统时间要根据用户的设定进行夏令时时间的调整。 VRP支持夏令时功能。
3.配置命令等级
[Huawei]command-privilege level level view view-name command-key
用来设置指定视图内的命令的级别。命令级别分为参观、监控、配置、管理4个级别,分别对应标识0、1、2、3。
4.配置用户通过Password方式登录设备
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]set authentication password cipher information
用来进入指定的用户视图并配置用户认证方式为password.。系统支持的用户界面包括Console用户界面和VTY用户界面,Console!界面用于本地登录,VTY界面用于远程登录。默认情况下,设备一般最多支持15个用户同时通过VTY方式访问。
5.配置用户界面参数
[Huawei]idle-timeout minutes seconds
用来设置用户界面断开连接的超时时间。如果用户在一段时间内没有输入命令,系统将断开连接。缺省情况下,超时时间是10分钟。
6.配置接口IP地址
[Huawei]interface interface-number
[Huawei-interface-numberlip address ip address
用来给设备上的物理或逻辑接口配置P地址。
7.查看当前运行的配置文件
<Huawei>display current-configuration
8配置文件保存
<Huawei>save
9.查看保存的配置
<Huawei>display saved-configuration
• 要在接口运行IP服务,必须为接口配置一个IP地址。一个接口一般只需要一个IP地址,如果接
口配置了新的主IP地址,那么新的主IP地址就替代了原来的主IP地址。
• 用户可以利用ip address ip-address { mask | mask-length } 命令为接口配置IP地址,这个
命令中, mask代表子网掩码,如255.255.255.0, mask-length 代表的是掩码长度,如24。
这两者任取其一均可。
• Loopback接口是一个逻辑接口,可用来虚拟一个网络或者一个IP主机。在运行多种协议的时候,由于Loopback接口稳定可靠,所以也可以用来做管理接口。
• 在给物理接口配置IP地址时,需要关注该接口的物理状态。默认情况下,华为路由器和交换机的接口状态为up;如果该接口曾被手动关闭,则在配置完IP地址后,应使用undoshutdown打开该接口。
10.清除已保存的配置
<Huawei>reset saved-confiquration
11.查看系统启动配置参数
<Huawei>display startup
用来查看设备本次及下次启动相关的系统软件、备份系统软件、配置文件、License:文件、补丁文件以及语音文件。
12.配置系统下次启动时使用的配置文件
<Huawei>startup saved-configuration configuration-file
设备升级时,可以通过此命令让设备下次启动时加载指定的配置文件
13.配置设备重启
<Huawei>reboot
• reset saved-configuration命令用来清除配置文件或配置文件中的内容。执行该命令后,如
果不使用命令startup saved-configuration重新指定设备下次启动时使用的配置文件,也不
使用save命令保存当前配置,则设备下次启动时会采用缺省的配置参数进行初始化。
• display startup命令用来查看设备本次及下次启动相关的系统软件、备份系统软件、配置文
件、 License文件、补丁文件以及语音文件。
• startup saved-configuration configuration-file 命令用来指定系统下次启动时使用的配置
文件, configuration-file参数为系统启动配置文件的名称。
• reboot命令用来重启设备,重启前提示用户是否保存配置。
网络层协议及IP编址
前言
-
IPv4(Internet Protocol Version4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OS引参考模型的网络层相对应。
-
网络层提供了无连接数据传输服务,即网络在发送数据报文时不需要先建立连接,每一个IP数据报文独立发送。
-
在本章节中,将介绍1PV4地址的基本概念,介绍如何进行子网划分,并且会介绍网络IP地址规划和IP地址的基本配置。
网络层协议
-
网络层经常被称为IP层。但网络层协议并不只是P协议,还包括ICMP(Internet Control Message Protocol)协议、IPX(Internet Packet Exchange)协议等。
IP协议
-
IP是Internet Protocol的缩写。Internet Protocol本身是一个协议文件的名称,该协议文件的内容
非常少,主要是定义并阐述了P报文的格式。
-
经常被提及的IP,一般不是特指Internet Protocoli这个协议文件本身,而是泛指直接或间接与引P协
议相关的任何内容。
• IP协议有版本之分,分别是IPv4和IPv6。目前, Internet上的IP报文主要都是IPv4报文,但
是逐步在向IPv6过渡。若无特别声明,本章所提及的IP均指IPv4。
▫ IPv4( Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。
▫ IPv6( Internet Protocol Version 6)是网络层协议的第二代标准协议,也被称为IPng( IP Next Generation)。它是Internet工程任务组IETF( Internet Engineering Task Force)设计的一套规范,是IPv4( Internet Protocol Version 4)的升级版本。
数据封装
• 应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU( Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
▫ 如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头和尾部得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。
▫ 这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
• 本章节我们主要讨论数据在网络层的封装,如果封装为IP协议,则被称为IP Packet( IP数
据包)。
IPv4报文格式
• IP Packet( IP数据包),其包头主要内容如下:
▫ Version: 4 bit, 4:表示为IPv4; 6:表示为IPv6。
▫ Header Length: 4 bit, 首部长度,如果不带Option字段,则为20,最长为60。
▫ Type of Service: 8 bit, 服务类型。只有在有QoS差分服务要求时,这个字段才起作
用。
▫ Total Length: 16 bit, 总长度,整个IP数据包的长度。
▫ Identification: 16 bit, 标识,分片重组时会用到该字段。
▫ Flags: 3 bit, 标志位。
▫ Fragment Offset: 12 bit, 片偏移,分片重组时会用到该字段。
▫ Time to Live: 8 bit, 生存时间。
▫ Protocol: 8 bit, 协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
▪ 常见值:
- 1: ICMP, Internet Control Message;
- 2: IGMP, Internet Group Management;
- 6: TCP , Transmission Control Protocol;
- 17: UDP, User Datagram Protocol。
▫ Header Checksum: 16 bit, 首部检验和。
▫ Source IP Address: 32 bit, 源IP地址。
▫ Destination IP Address: 32 bit, 目的IP地址。
▫ Options:可变,选项字段。
▫ Padding:可变,填充字段,全填0。
数据包分片
-
将报文分割成多个片段的过程叫做分片。
-
网络中转发的P报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报
文就需要分割成若干个较小的片段才能够在链路上传输。
• Identification: 16 bit, 发送主机赋予的标识,分片重组时会用到该字段。
• Flags: 3 bit, 标志位。
▫ 保留段位: 0,保留。
▫ 不分段位: 1,表示“不能分片”; 0,表示“能分片”。
▫ 更多段位: 1,表示“后面还有分片”; 0,表示“最后一个数据片”。
• Fragment Offset: 12 bit, 片偏移,分片重组时会用到该字段。指出较长的分组在分片后,
该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。
生存时间(Time to Live,TTL)
-
TTL字段设置了数据包可以经过的路由器数目。
-
一旦经过一个路由器,TTL值就会减1,当该字段值为0时,数据包将被丢弃。
• Time to Live: 8 bit, 生存时间。可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
▫ 报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。
▫ 为避免环路导致的网络拥塞, IP报文头中包含一个生存时间TTL( Time To Live)字段。报文每经过一台三层设备, TTL值减1。初始TTL值由源端设备设置。当报文中的TTL降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误消息。(注意:网络设备也可被配置为不向源端发送ICMP错误消息。)
协议号(Protocol)
-
P报文头中的协议号字段标识了将会继续处理该报文的协议。
-
即指出此数据包携带的数据使用何种协议,以便目的主机的P层将数据部分上报给哪个进程处理。
• 目的端的网络层在接收并处理报文以后,需要决定下一步对报文如何处理。 IP报文头中的协议字段标识了将会继续处理报文的协议。
• 该字段可以标识网络层协议,如ICMP( Internet Control Message Protocol,因特网控制报文协议,对应值0x01) ;也可以标识上层协议,如TCP( Transmission Control Protocol,传输控制协议,对应值0x06)、 UDP( User Datagram Protocol,用户数据包协议,对应值0x11)。
什么是IP地址
-
P地址在网络中用于标识一个节点(或者网络设备的接口)。
-
P地址用于P报文在网络中的寻址
• 在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。 IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们通过IP地址实现全球范围内的网络通信。
• IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每个接口都至少需要一个IP地址。
• 注:需要使用IP地址的接口,通常是路由器和计算机的接口。
IP地址表示
-
一个Pv4地址有32bit。
-
IPV4地址通常采用“点分十进制”表示。
-
IPv4地址范围:0.0.0.0~255.255.255.255。
• IP地址表示
▫ IP地址是长度是32 bit, 由4个字节组成。为了阅读和书写方便, IP地址通常采用点分
十进制数来表示。
• 点分十进制表示法
▫ IP地址表现形式能够帮助我们更好的使用和配置网络,但通信设备在对IP地址进行计算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要。
• IPv4地址范围
▫ 00000000.00000000.00000000.00000000~11111111.11111111.11111111.1111111
1,即0.0.0.0~255.255.255.255。
IP地址构成
网络部分:用来标识一个网络。
主机部分:用来区分一个网络内的不同主机。
网络掩码:区分一个P地址中的网络部分及主机部分。
• IPv4地址由如下两部分组成:
▫ 网络部分 (网络号):用来标识一个网络。
▪ IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
▪ 对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
▫ 主机部分 (主机号):用来区分一个网络内的不同主机。
• 网络掩码 (Netmask),又称子网掩码 (Subnet Mask):
▫ 网络掩码为32 bit, 与IP地址的位数一样,通常也以点分十进制数来表示。
▫ 网络掩码不是一个IP地址,在二进制的表示上是一堆连续的1、后面接一堆连续的0。
▫ 通常将网络掩码中1的个数称为这个网络掩码的长度。如:掩码0.0.0.0的长度是0,掩码252.0.0.0的长度是6。
▫ 网络掩码一般与IP地址结合使用,其中值为1的比特对应IP地址中的网络位;值为0的比特对应IP地址中的主机位,以此来辅助我们识别一个IP地址中的网络位与主机位。即网络掩码中1的个数就是IP地址的网络号的位数, 0的个数就是IP地址的主机号的位数。
IP地址寻址
-
网络部分:用来标识一个网络,代表IP地址所属网络。
-
主机部分:用来区分一个网络内的不同主机,能唯一标识网段上的某台设备。
• 网络号用于表示主机所在的网络,类似于“ XX省XX市XX区XX小区”的作用。
• 主机号用于表示网络号所定义的网络范围内某个特定的主机接口,类似于门牌号“ XX栋XX号”的作用。
• 网络寻址:
▫ 二层网络寻址:可直接通过IP地址,找到对应的主机接口。
▫ 三层网络寻址:利用网关转发来自不同网段之间的数据包。
• 网关:
▫ 报文转发过程中,首先需要确定转发路径以及通往目的网段的接口。如果目的主机与源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
▫ 网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能,网关必须知道目的网段的路由。 网关设备上连接本地网段的接口地址即为该网段的网关地址。
IP地址分类(有类编址)
-
为了方便IP地址的管理及组网,IP地址分成五类:
-
A/B/C类默认网络掩码
。A类:8bit, 0.0.0.0~127.255.255.255/8
。B类:16bit, 128.0.0.0~191.255.255.255/16
。C类:24bit, 192.0.0.0~223.255.255.255/24
• 为了方便IP地址的管理及组网, IP地址分成五类:
▫ A、 B、 C、 D、 E类的类别字段分别是二进制数0、 10、 110、 1110、 1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
▫ A、 B、 C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主机接口使用。
▫ D类地址属于组播IP地址。
▫ E类地址专门用于特殊的实验目的。
▫ 本节内容,只关注A、 B、 C三类地址。
• A、 B、 C类地址比较:
▫ 使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的网络称为C类网络。
▫ A类网络的网络号为8 bit, 个数很少,但所允许的主机接口的个数很多;首位恒定为0,地址空间为: 0.0.0.0~127.255.255.255。
▫ B类网络的网络号为16 bit, 介于A类和C类网络之间;首两位恒定为10,地址空间为:
128.0.0.0~191.255.255.255。
▫ C类网络的网络号为24 bit, 个数很多,但所允许的主机接口的个数就很少; 首三位恒定为110,地址空间为: 192.0.0.0~223.255.255.255。
• 注:
▫ 主机 (Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称为主机IP地址。
▫ 组播地址:组播能实现一对多传递消息。
IP地址类型
-
我们通常把一个网络号所定义的网络范围称为一个网段。
-
网络地址:用于标识一个网络。
• 网络地址
▫ 网络号为X,主机号的每个比特都为0。
▫ 不能分配给具体的主机接口使用。
-
广播地址:用于向该网络中的所有主机发送数据的特殊地址。
• 广播地址
▫ 网络号为X,主机号的每个比特都为1。
▫ 不能分配给具体的主机接口使用。
-
可用地址:可分配给网络中的节点或网络设备接口的地址。
• 可用地址
▫ 又称主机地址,可用分配给具体的主机接口使用。
注意
-
网络地址和广播地址不能直接被节点或网络设备所使用。
-
一个网段可用地址数量为:2n-2(n:主机部分的比特位数)
• 一个网段可用地址数量计算:
▫ 一个网段的主机位为n位,则IP地址数为: 2ⁿ,可用IP地址数为: 2ⁿ-2 (减去网络地址
和广播地址)。
IP地址计算
例:172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数分别是?
私网IP地址
-
公网IP地址:P地址是由IANA统一分配的,以保证任何一个P地址在Internet.上的唯一性。这里的IP地址是指公网P地址。
-
私网IP地址:实际上一些网络不需要连接到nternet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的P地址不冲突即可。在P地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况,称为私网IP地址。
为了解决IP地址短缺的问题,提出了私有地址的概念。私有地址是指内部网络或主机地址,这些地址只能用于某个内部网络,不能用于公共网络。
▫ 公网IP地址:连接到Internet的网络设备必须具有由ICANN分配的公网IP地址。
▫ 私网IP地址:私网IP地址的使用使得网络可以得到更为自由地扩展,因为同一个私网IP地址是可以在不同的私有网络中重复使用的。
• 私有网络连接到Internet:私有网络由于使用了私网IP地址,是不允许连接到Internet的。后来在实际需求的驱动下, 许多私有网络也希望能够连接到Internet上,从而实现私网与Internet之间的通信,以及通过Internet实现私网与私网之间的通信。私网与Internet的互联,必须使用网络地址转换 (NAT)技术实现。
• 注:
▫ NAT (Network Address Translation),网络地址转换,其基本作用是实现私网IP地址与公网IP地址之间的转换。
▫ IANA (Internet Assigned Numbers Authority), 因特网地址分配组织。
特殊IP地址
-
IP地址空间中,有一些特殊的P地址,这些P地址有特殊的含义和作用,举例如下。
• 255.255.255
▫ 这个地址称为有限广播地址,它可以作为一个IP报文的目的IP地址使用。
▫ 路由器接收到目的IP地址为有限广播地址的IP报文后,会停止对该IP报文的转发。
• 0.0.0.0
▫ 如果把这个地址作为网络地址,它的意思就是“任何网络”的网络地址;如果把这个地址作为主机接口地址,它的意思就是“这个网络上主机接口”的IP地址。
▫ 例如:当一个主机接口在启动过程中尚未获得自己的IP地址时,就可以向网络发送目的IP地址为有限广播地址、源IP地址为0.0.0.0的DHCP请求报文,希望DHCP服务器在收到自己的请求后,能够给自己分配一个可用的IP地址。
• 127.0.0.0/8
▫ 这个地址为环回地址,它可以作为一个IP报文的目的IP地址使用。其作用是测试设备自身的软件系统。
▫ 一个设备产生的、目的IP地址为环回地址的IP报文是不可能离开这个设备本身的。
• 169.254.0.0/16
▫ 如果一个网络设备获取IP地址的方式被设置成了自动获取方式,但是该设备在网络上又没有找到可用的DHCP服务器,那么该设备就会使用169.254.0.0/16网段的某个地址来进行临时通信。
• 注: DHCP (Dynamic Host Configuration Protocol),动态主机配置协议,用于动态分配网络配置参数,如IP地址。
IPv4 vs IPv6
-
由全球IP地址分配机构,IANA(Internet Assigned Numbers Authority)管理的IPv4地址,于2011
年完全用尽。随着最后一个PV4公网地址分配完毕,加上接入公网的用户及设备越来越多,IPV4地址枯竭的问题日益严重,这是当前IPv6替代IPv4的最大源动力。
子网划分
为什么要划分子网
• “有类编址”的地址划分过于死板,划分的颗粒度太大,会有大量的主机号不能被充分利用,从而造成了大量的IP地址资源浪费。
• 因此可以利用子网划分来减少地址浪费,即VLSM (Variable Length Subnet Mask),可变长子网掩码。将一个大的有类网络,划分成若干个小的子网,使得IP地址的使用更为科学。
如何进行子网划分
原网段分析
·例如:192.168.10.0/24网段
• 假设有一个C类网段地址: 192.168.10.0;默认情况下,网络掩码为24位,包括24位网络位,8位主机位。
• 通过计算可知,这样的网络中,有256个IP地址。
向主机借位
-
向主机借位,形成子网。
• 现在,将原有的24位网络位向主机位去“借” 1位,这样网络位就扩充到了25位,相对的主机位就减少到了7位,而借过来的这1位就是子网位,此时网络掩码就变成了25位,即255.255.255.128,或/25。
• 子网位:可取值0或取值1,则得到了两个新的子网。
• 通过计算可知,现在网络中,有128个IP地址。
计算子网网络地址
主机位全为0,计算子网网络地址。
• 计算网络地址,主机位全为0:
▫ 如果子网位取值0,则网络地址为192.168.10.0/25。
▫ 如果子网位取值1,则网络地址为192.168.10.128/25。
计算子网广播地址
主机位全为1,计算子网广播地址。
• 计算广播地址,主机位全为1:
▫ 如果子网位取值0,则网络地址为192.168.10.127/25。
▫ 如果子网位取值1,则网络地址为192.168.10.255/25。
ICMP协议
Internet控制消息协议ICMP(Internet Control Message Protocol)是IP协议的辅助协议。
• 为了更有效地转发IP数据报文和提高数据报文交互成功的机会,在网络层使用ICMP协议。ICMP允许主机或设备报告差错情况和提供有关异常情况的报告。
• ICMP消息:
▫ ICMP消息封装在IP报文中, IP报文头部Protocol值为1时表示ICMP协议。
▫ 字段解释:
▪ ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型, Code字段包含该消息类 型的具体参数。
▪ 校验和字段用于检查消息是否完整。
▪ 消息中包含32 bit的可变参数,这个字段一般不使用,通常设置为0。
- 在ICMP重定向消息中,这个字段用来指定网关IP地址,主机根据这个地
址将报文重定向到指定网关。
- 在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数
将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端
向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请
求和回复消息进行一一对应。
ICMP协议
ICMP重定向
ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个CMP重定向报文,请求主机改变路由。
• ICMP重定向过程:
1. 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
2. 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另
一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect
消息,通知主机直接向另一个网关RTA发送该报文。
3. 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器
A。
ICMP差错检测
ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往
返时间等。
• ICMP的一个典型应用是Ping。 Ping是检测网络连通性的常用工具,同时也能够收集其他相
关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、
等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。
ICMP错误报告
ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数
据传输失败的原因。如:当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发
送端设备。
• ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判
断出数据传输失败的原因。
▫ 如果网络中发生了环路,导致报文在网络中循环,且最终TTL超时,这种情况下网络
设备会发送TTL超时消息给发送端设备。
▫ 如果目的地不可达,则中间的网络设备会发送目的不可达消息给发送端设备。目的不
可达的情况有多种,如果是网络设备无法找到目的网络,则发送目的网络不可达消息;
如果网络设备无法找到目的网络中的目的主机,则发送目的主机不可达消息。
• ICMP的另一个典型应用是Tracert。 Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路
径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达
第一个节点后, TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后
源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,
以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经
过的每一个节点,并根据时间戳信息计算往返时间。
IPV4地址配置及基本应用
IP地址的基础配置命令
1.进入接口视图
[Huawei]interface interface-type interface-number
通过此命令可以进入指定的接口视图,配置接口的相关属性。
-
interf后ce-ype interf伯ce-number:指定接口类型和接口编号。接口类型和接口编号之间
入空格。
2.配置接口的1P地址
[Huawei-GigabitEtherneto/0/1]ip address ip-address{mask mask-length}
在接口视图下,通过此命令来给网络设备上的接口配置P地址,实现网络的互连。
-
p-address:指定接口的IP地址,点分十进制形式。
-
m阳sk:指定子网掩码,点分十进制形式。
-
mask-length:你指定掩码长度,整数形式,取值范围是0-~32。
案例:配置接口IP地址
• 物理接口:物理接口是指网络设备上实际存在的接口,分为负责承担业务传输的业务接口
和负责管理设备的管理接口,例如GE业务接口和MEth管理接口。
• 逻辑接口:逻辑接口是指能够实现数据交换功能但物理上不存在、需要通过配置建立的接
口,需要承担业务传输,例如VLANIF接口、 Loopback接口。
▫ Loopback接口:用户需要一个接口状态永远是Up的接口的IP地址时,可以选择
Loopback接口的IP地址。
▪ Loopback接口一旦被创建,其物理状态和链路协议状态永远是Up,即使该接口
上没有配置IP地址。
▪ Loopback接口配置IP地址后,就可以对外发布。 Loopback接口上可以配置32位
掩码的IP地址,达到节省地址空间的目的。
▪ Loopback接口不能封装任何链路层协议,数据链路层也就不存在协商问题,其
协议状态永远都是Up。
▪ 对于目的地址不是本地IP地址,出接口是本地Loopback接口的报文,设备会将
其直接丢弃。
网络IP地址规划
-
IP地址规划要和网络结构、路由协议、流量规划、业务规则等结合起来考虑。P地址的规划应尽可能和网络层次相对应,应该是自顶向下的一种规划。
-
参考规划原则:唯一性、连续性、扩展性、结构化、业务相关性
-
总得来说:P地址规划的目标是:易管理、易扩展、利用率高。
·IP地址规划范例
• 规划原则:
▫ 唯一性:一个IP网络中不能有两个主机采用相同的IP地址。
▫ 连续性:连续地址在层次结构网络中易于进行路由汇总,大大缩减路由表,提高路由
计算的效率、加速路由收敛。
▫ 扩展性:地址分配在每一层次上都要有合理的预留,在网络规模扩展时能保证路由汇
总所需的连续性。避免网络扩展造成的地址、路由重新规划。
▫ 结构化、业务相关性:地址规划与网络拓扑结构和网络承载业务结合起来,便于路由
规划和QoS部署。好的IP地址规划使得每个地址都具有实际含义,看到一个地址就可
以大致判断出该地址所属的设备和对应的业务。
以太网交换基础
以太网协议
-
以太网是当今现有局域网(Local Area Network,LAN)采用的最通用的通信协议标准,该标准定
义了在局域网中采用的电缆类型和信号处理方法。
-
以太网是建立在CSMA/CD(Carrier Sense Multiple Access/Collision Detection,载波监听多路访
问/冲突检测)机制上的广播型网络。
• 早期的以太网:
▫ 以太网是建立在CSMA/CD机制上的广播型网络。冲突的产生是限制以太网性能的重要因素,早期的 以太网设备如集线器HUB是物理层设备,不能隔绝冲突扩散,限制了网络性能的提高。
• 交换机组网:
▫ 交换机做为一种能隔绝冲突的二层网络设备,极大的提高了以太网的性能,并替代HUB成为主流的 以太网设备。但是交换机对网络中的广播数据流量不做任何限制,这也影响了网络的性能。
冲突域
• 在共享网络,以太网络使用CSMA/CD技术,避免冲突问题。 CSMA/CD的基本工作过程如下:
▫ 终端设备不停的检测共享线路的状态。
▪ 如果线路空闲则发送数据。
▪ 如果线路不空闲则一直等待。
▫ 如果有另外一个设备同时发送数据,两个设备发送的数据必然产生冲突,导致线路上的信号不稳定。
▫ 终端设备检测到这种不稳定之后,马上停止发送自己的数据。
▫ 终端设备发送一连串干扰脉冲,然后等待一段时间之后再进行发送数据。发送干扰脉冲的目的是为了通知其他设备,特别是跟自己在同一个时刻发送数据的设备,线路上已经产生了冲突。
• CSMA/CD的工作原理可简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。
广播域
广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。
• 全1MAC地址FF-FF-FF-FF-FF-FF为广播地址,所有节点都会处理目的地址为广播地址的数据帧,该数据帧所能到达的整个访问范围称为二层广播域,简称广播域。
• 注: MAC (Media Access Control)地址,在网络中唯一标识一个网卡,每个网卡都需要并会有唯一的一个MAC地址,后面课程内容会具体讲。
以太网卡
网络接口卡(Network Interface Card,NIC)也称为“网卡”,是计算机、交换机、路由器等网络设备与外部网络世界相连的关键部件。
• 网卡有很多类型,本章节我们提及的都指以太网接口卡,简称以太网卡或以太卡。
• 我们所说的交换机也均为以太网交换机,则交换机上每个转发数据的网口所使用的网卡都是以太网卡。
以太网帧格式
-
以太网技术所使用的帧称为以太网帧(Ethernet Frame),或简称以太帧。
-
以太帧的格式有两个标准:Ethernet_ll格式和IEEE802.3格式。
• 在以太网中,数据通信的基本单位是以太网帧 ( Frame )。以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式,因此协议规定以太网帧的数据格式如图所示。
• Ethernet Ⅱ以太帧:
▫ DMAC: 6字节,目的MAC地址, 6字节,该字段标识帧的接收者。
▫ SMAC: 6字节,源MAC地址, 6字节,该字段标识帧的发送者。
▫ Type: 2字节,协议类型。常见值:
▪ 0x0800: Internet Protocol Version 4 (IPv4) ;
▪ 0x0806: Address Resolution Protocol (ARP) 。
• IEEE 802.3 LLC以太帧:
▫ 逻辑链路控制LLC( Logical Link Control)由目的服务访问点DSAP( Destination Service Access Point)、源服务访问点SSAP( Source Service Access Point)和Control字段组成。
▪ DSAP: 1字节,目的服务访问点,若后面类型为IP值设为0x06。服务访问点的功能类似于Ethernet II帧中的Type字段或TCP/UDP传输协议中的端口号。
▪ SSAP: 1字节,源服务访问点,若后面类型为IP值设为0x06。
▪ Ctrl: 1字节,该字段值通常设为0x03,表示无连接服务的IEEE 802.2无编号数据格式。
什么是MAC地址
-
MAC(Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有唯一的一个MAC地址。
-
一块网卡的MAC地址是具有全球唯一性的。
• MAC地址是在IEEE 802标准中定义并规范的,凡是符合IEEE 802标准的以太网卡,都必须拥有一个MAC地址,用MAC地址来定义网络设备的位置。不同的网卡, MAC地址也不同。
IP地址vs MAC地址
-
每个以太网设备在出厂时都有一个唯一的MAC地址,但在设备接入网络时,会同时为每台主机再
分配一个P地址,这个原因是什么?
• 每个以太网设备在出厂时都有一个唯一的MAC地址,那为什么还需要为每台主机再分配一个IP地址呢?或者说每台主机都分配唯一的IP地址了,为什么还要在网络设备 (如:网卡)生产时内嵌一个唯一的MAC地址呢?
• 主要原因有:
▫ IP地址是根据网络的拓朴结构分配的, MAC地址是根据制造商分配的,若路由选择建立在设备制造商的基础上,这种方案是不可行的。
▫ 当存在两层地址寻址时,设备更灵活,易于移动和维修。
▪ 例如,如果一个以太网卡坏了,可以被更换,而无须更换一个新的IP地址;如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。
• 总结:
▫ IP地址的作用是唯一标识网络中的一个节点,可以通过IP地址进行不同网段的数据访问。
▫ MAC地址的作用是唯一标识一个网卡,可以通过MAC地址进行同网段的数据访问。
MAC地址表示
-
一个MAC地址有48bit,6Byte。
-
MAC地址通常采用“十六进制”+“.”表示。
• MAC地址由48比特( 6个字节)长, 12位的16进制数字组成
MAC地址构成及分类
-
OUl(Organizationally Unique Identifier):厂商代a码,由IEEE分配,3Byte,24bit。
-
制造商分配:3Byte,24bit
• 一个制造商在生产制造网卡之前,必须先向IEEE注册,以获取一个长度为24bit (3字节)的厂商代码,也称为OUI。
• 后24bit由厂商自行分派,是各个厂商制造的所有网卡的唯一编号。
• MAC地址可以分为3种类型:
▫ 单播MAC地址:也称物理MAC地址,这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址。
▪ 单播MAC地址用于标识链路上的一个单一节点。
▪ 目的MAC地址为单播MAC地址的帧发往一个单一的节点。
▪ 单播MAC地址可以作为源或目的地址。
▪ 注意:单播MAC地址具有全球唯一性,当一个二层网络中接入了两台具有相同MAC地址的终端时(例如误操作等),将会引发通信故障(例如这两台终端无法相互通信),且其他设备与它们之间的通信也会存在问题。
▫ 广播MAC地址:全1的MAC地址( FF-FF-FF-FF-FF-FF),用来表示局域网上的所有终端设备。
▪ 广播MAC地址可以理解为一种特殊的组播MAC地址。
▪ 其具体格式为: FFFF-FFFF-FFFF。
▪ 目的MAC地址为广播MAC地址的帧发往链路上的所有节点。
▫ 组播MAC地址:除广播地址外,第7bit为1的MAC地址为组播MAC地址(例如01-00-
00-00-00-00),用来代表局域网上的一组终端。
▪ 组播MAC地址用于标识链路上的一组节点。
▪ 目的MAC地址为组播MAC地址的帧发往一组节点。
▪ 组播MAC地址不能作为源地址,只能作为目的地址。
单播以太帧
• 局域网上的帧可以通过三种方式发送。
• 第一种是单播,指从单一的源端发送到单一的目的端。
▫ 每个主机接口由一个MAC地址唯一标识, MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。
广播以太帧
• 第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。
▫ 广播帧的目的MAC地址为十六进制的FF-FF-FF-FF-FF-FF,所有收到该广播帧的主机都要接收并处理这个帧。
▫ 广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
▫ 当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广
播方式。
组播以太帧
• 第三种发送方式为组播,组播比广播更加高效。
▫ 组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。
▫ 组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1。
▫ 当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。
交换机介绍
园区网典型架构
• 一个典型的园区数据网络由路由器、交换机、防火墙等设备构成,通常会采用多层架构,包括:接入层、汇聚层、核心层和出口层。
以太网二层交换机
• 以太网二层交换机:
▫ 在园区网络中,交换机一般来说是距离终端用户最近的设备,用于终端接入园区网,接入层的交换机一般为二层交换机。
▫ 二层交换设备工作在TCP/IP对等模型的第二层,即数据链路层,它对数据包的转发是建立在MAC( Media Access Control )地址基础之上的。
• 以太网三层交换机:
▫ 不同局域网之间的网络互通需要由路由器来完成。随着数据通信网络范围的不断扩大,网络业务的不断丰富,网络间互访的需求越来越大,而路由器由于自身成本高、转发性能低、接口数量少等特点无法很好的满足网络发展的需求。因此出现了三层交换机这样一种能实现高速三层转发的设备。
• 注意:本课程中所涉及的交换机,均指以太网二层交换机。
交换机的工作原理
• 二层交换机工作在数据链路层,它对数据帧的转发是建立在MAC地址基础之上的。交换机不同的接口发送和接收数据是独立的, 各接口属于不同的冲突域,因此有效地隔离了网络中的冲突域。
• 二层交换设备通过学习以太网数据帧的源MAC地址来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC地址表),通过其目的MAC地址来查找MAC地址表决定向哪个接口转发。
MAC地址表
每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。
• MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系。交换机在转发数据帧时,根据数据帧的目的MAC地址查询MAC地址表。如果MAC地址表中包含与该帧目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含该帧目的MAC地址对应的表项时,交换机将采取泛洪方式在除接收接口外的所有接口发送该报文。
交换机的3种数据帧处理行为
交换机对于从传输介质进入某一端口的帧的处理行为一共有3种:
• 交换机会通过传输介质进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。
• 交换机对帧的处理行为一共有三种:泛洪( Flooding),转发( Forwarding),丢弃
( Discarding)。
▫ 泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去( 注意, “所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。
▫ 转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。
▫ 丢弃:交换机把从某一端口进来的帧直接丢弃。
泛洪
• 如果从传输介质进入交换机的某个端口的帧是一个单播帧,交换机会去MAC表查这个帧的目的MAC地址。如果查不到这个MAC地址,则交换机将对该单播帧执行泛洪操作。
• 如果从传输介质进入交换机的某个端口的帧是一个广播帧,交换机不会去查MAC地址表,而是直接对该广播帧执行泛洪操作。
• 如图所示:
▫ 场景一:主机1想要访问主机2,发送单播数据帧,交换机收到后,若MAC地址表中查不到对应的表项,则会泛洪该数据帧。
▫ 场景二:主机1想要访问主机2,但不知道对应的MAC地址,则会发送ARP请求报文,该报文为广播数据帧,交换机收到后,则会泛洪该数据帧。
转发
• 如果从传输介质进入交换机的某个端口的帧是一个单播帧,则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表,则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果不是,则交换机执行转发操作(将该帧送至该帧目的MAC地址在MAC地址表中对应的那个端口,并从那个端口发送出去)。
• 如图所示:
▫ 主机1想要访问主机2,发送单播数据帧,交换机收到后,在MAC地址表中查到了对应的表项,则会点对点转发该数据帧。
丢弃
• 如果从传输介质进入交换机的某个端口的帧是一个单播帧,则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表,则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果是,则交换机将对该帧执行丢弃操作。
• 如图所示:
▫ 主机1想要访问主机2,发送单播数据帧,交换机1收到后,若MAC地址表中查不到对应的表项,则会泛洪该数据帧。
▫ 交换机2收到该数据帧后,发现目的MAC地址对应的端口就是接收数据帧的端口,则会丢弃该数据帧。
交换机的MAC地址学习
1.初始状态
• 初始状态下,交换机并不知道所连接主机的MAC地址,所以MAC地址表为空。
2.主机1发送数据帧
• 主机1想要发送数据给主机2(假设已知对端的IP地址和MAC地址),会封装数据帧,包含自己的源IP地址和源MAC地址。
• 交换机收到后会查自己的MAC地址表,发现没有对应表项,则收到的数据帧是“未知单播帧” 。
3.交换机泛洪数据
• 由于收到的数据帧是“未知单播帧”,因此交换机会泛洪该数据帧。
• 同时, 交换机将收到的数据帧的源MAC地址和对应端口编号记录到MAC地址表中。
• 注意: MAC地址表中动态学习的表项并非永远有效,每一条表项都有一个生存周期,到达
生存周期仍得不到更新的表项将被删除,这个生存周期被称作老化时间。例如华为S系列交换机的老化时间缺省值是300秒。
4.主机2发出数据
• 广播网络中的所有主机均会收到该数据帧,但是只有主机2会处理(因为目的MAC地址是主机2)。
• 主机2会回复数据帧给主机1,也是单播数据帧。
5.交换机记录主机2mac并将数据发送至主机1
• 交换机收到该单播数据帧后,会查看自己的MAC地址表,发现有对应的表项,则将数据从对应的端口转发出去。
• 同时,交换机将收到的数据帧的源MAC地址和对应端口编号记录到MAC地址表中。
VLAN的原理与配置
什么是VLAN
传统以太网的问题
• 广播域:
▫ 如图是一个典型的交换网络,网络中只有终端计算机和交换机。在这样的网络中,如果某一台计算机发送了一个广播帧,由于交换机对广播帧执行泛洪操作,结果所有其他的计算机都会收到这个广播帧。
▫ 把广播帧所能到达的整个访问范围称为二层广播域,简称广播域 (Broadcast Domain)。显然,一个交换网络其实就是一个广播域。
• 网络安全问题和垃圾流量问题:
▫ 如图:如果PC1向PC2发送了一个单播帧。此时SW1、 SW3、 SW7的MAC地址表中存在关于PC2的MAC地址表项,但SW2和SW5不存在关于PC2的MAC地址表项。那么,SW1和SW3将对该单播帧执行点对点的转发操作, SW7将对该单播帧执行丢弃操作,SW2和SW5将对该单播帧执行泛洪操作。最后的结果是, PC2虽然收到了该单播帧,但网络中的很多其他非目的主机,同样收到了不该接收的数据帧。
• 显然,广播域越大,网络安全问题和垃圾流量问题就越严重。
虚拟局域网(VLAN,Virtual LAN)
• 为了解决广播域带来的问题,人们引入了VLAN (Virtual Local Area Network),即虚拟局域网技术:
▫ 通过在交换机上部署VLAN,可以将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域,由此可以有效地提升网络的安全性,同时减少垃圾流量,节约网络资源。
• VLAN的特点:
▫ 一个VLAN就是一个广播域,所以在同一个VLAN内部,计算机可以直接进行二层通信;而不同VLAN内的计算机,无法直接进行二层通信,只能进行三层通信来传递信息,即广播报文被限制在一个VLAN内。
▫ VLAN的划分不受地域的限制。
• VLAN的好处:
▫ 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
▫ 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
▫ 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
▫ 提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
• 注:二层,即数据链路层。
VLAN的基本原理
如何实现VLAN
-
Switch1与Switch2同属一个企业,该企业统一规划了网络中的VLAN。其中VLAN10用于A部门,VLAN20用于B部门。A、B部门的员工在Switch1和Switch2上都有接入。
-
PC1发出的数据经过Switch1和Switch2之间的链路到达了Switch2。如果不加处理,后者无法判断该数据所属的VLAN,也不知道应该将这个数据输出到本地哪个VLAN中。
VLAN标签(VLAN TAG)
交换机如何识别接收到的数据帧属于哪个VLAN?
• 如图所示, SW1识别出某个帧是属于哪个VLAN后,会在这个帧的特定位置上添加一个标签。这个标签明确地标明了这个帧是属于哪个VLAN的。其他交换机(如SW2)收到这个带标签的数据帧后,就能轻而易举地直接根据标签信息识别出这个帧属于哪个VLAN。
• IEEE 802.1Q定义了这种带标签的数据帧的格式。满足这种格式的数据帧称为IEEE 802.1Q数据帧,也称VLAN数据帧。
VLAN数据帧
• 在一个VLAN交换网络中,以太网帧主要有以下两种形式:
▫ 有标记帧( Tagged帧): IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag)的数据帧。
▫ 无标记帧( Untagged帧):原始的、未加入4字节VLAN标签的数据帧。
• VLAN数据帧中的主要字段:
▫ TPID: 2字节, Tag Protocol Identifier(标签协议标识符),表示数据帧类型。
▪ 取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
▪ 各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。
▫ PRI: 3 bit, Priority,表示数据帧的优先级,用于QoS。
▪ 取值范围为0~ 7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。
VLAN的实现
-
Switch1和Switch.2之间的链路要承载多个VLAN的数据,需要一种基于VLAN的数据“标记”手段,以便对不同VLAN的数据帧进行区分。
-
IEEE802.1Q标准(也被称为Dot1Q)定义了该“标记”方法。该标准对传统的以太网数据帧进行修改,在帧头中插入802.1QTag,而在该Tag中,便可以写入VAN信息。
VLAN的划分方式
• 计算机发出的数据帧不带任何标签。对已支持VLAN特性的交换机来说,当计算机发出的Untagged帧一旦进入交换机后,交换机必须通过某种划分原则把这个帧划分到某个特定的VLAN中去。
• VLAN的划分包括如下5种方法:
▫ 基于接口划分:根据交换机的接口来划分VLAN。
▪ 网络管理员预先给交换机的每个接口配置不同的PVID,当一个数据帧进入交换机时,如果没有VLAN标签,该数据帧就会被打上接口指定PVID的标签, 然后数据帧将在指定VLAN中传输。
▫ 基于MAC地址划分:根据数据帧的源MAC地址来划分VLAN。
▪ 网络管理员预先配置MAC地址和VLAN ID映射关系表,当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的标签, 然后数据帧将在指定VLAN中传输。
▫ 基于IP子网划分:根据数据帧中的源IP地址和子网掩码来划分VLAN。
▪ 网络管理员预先配置IP地址和VLAN ID映射关系表,当交换机收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的标签, 然后数据帧将在指定VLAN中传输。
▫ 基于协议划分:根据数据帧所属的协议(族)类型及封装格式来划分VLAN。
▪ 网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的标签, 然后数据帧将在指定VLAN中传输。
▫ 基于策略划分:根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、 IP地址等。
▪ 网络管理员预先配置策略,如果收到的是Untagged帧,且匹配配置的策略时,给数据帧添加指定VLAN的标签, 然后数据帧将在指定VLAN中传输。
基于VLAN的接口划分
• 划分原则:
▫ 将VLAN ID配置到交换机的物理接口上,从某一个物理接口进入交换机的、由终端计算机发送的Untagged数据帧都被划分到该接口的VLAN ID所表明的那个VLAN。
• 特点:
▫ 这种划分原则简单而直观,实现容易,是目前实际的网络应用中最为广泛的划分VLAN的方式。
▫ 当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属可能会发生变化。
• 缺省VLAN, PVID (Port VLAN ID)
▫ 每个交换机的接口都应该配置一个PVID,到达这个端口的Untagged帧将一律被交换机划分到PVID所指代的VLAN。
▫ 默认情况下, PVID的值为1。
基于MAC地址划分
• 划分原则:
▫ 交换机内部建立并维护了一个MAC地址与VLAN ID的对应表。当交换机接收到计算机发送的Untagged帧时,交换机将分析帧中的源MAC地址,然后查询MAC地址与VLAN ID的对应表,并根据对应关系把这个帧划分到相应的VLAN中。
• 特点:
▫ 这种划分实现稍微复杂,但灵活性得到了提高。
▫ 当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属不会发生变化(因为计算机的MAC地址没有变)。
▫ 但这种类型的VLAN划分安全性不是很高,因为恶意计算机很容易伪造MAC地址。
以太网二层接口类型
• 基于接口的VLAN划分依赖于交换机的接口类型。
• Access接口
Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。
• Trunk接口
Trunk接口一般用于连接交换机、路由器、 AP以及可同时收发Tagged帧和Untagged帧的语音终端。
• Hybrid接口
▫ Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。
▫ 华为设备默认的接口类型是Hybrid。
ACCESS接口
• 上文已经介绍了交换机如何识别数据帧属于哪个VLAN以及VLAN的划分方式,那交换机对于Untagged帧和Tagged帧又是如何处理的呢?
• Access接口特点:
▫ 仅允许VLAN ID与接口PVID相同的数据帧通过。
• Access接口接收数据帧:
▫ 当Access接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后对得到的Tagged帧进行转发操作(泛洪、转发、丢弃)。
▫ 当Access接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否与PVID相同。如果相同,则对这个Tagged帧进行转发操作;如果不同,则直接丢弃这个Tagged帧。
• Access接口发送数据帧:
▫ 当一个Tagged帧从本交换机的其他接口到达一个Access接口后,交换机会检查这个帧的Tag中的VID是否与PVID相同:
▪ 如果相同,则将这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;
▪ 如果不同,则直接丢弃这个Tagged帧。
Trunk接口
• 对于Trunk接口,除了要配置PVID外,还必须配置允许通过的VLAN ID列表,其中VLAN 1是默认存在的。
• Trunk接口特点:
▫ Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过。
▫ Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。
• Trunk接口接收数据帧:
▫ 当Trunk接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在允许通过的VLAN ID列表中。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧。
▫ 当Trunk接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在允许通过的VLAN ID列表中。如果在,则对这个Tagged帧进行转发操作;如果不在,则直接丢弃这个Tagged帧。
• Trunk接口发送数据帧:
▫ 当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的PVID不在允许通过的VLAN ID列表中,则该Tagged帧会被直接丢弃。
▫ 当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的PVID在允许通过的VLAN ID列表中,则会比较该Tag中的PVID是否与接口的PVID相同:
▪ 如果相同,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;
▪ 如果不同,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去。
Access接口与Trunk接口举例
• 在本例中, SW1和SW2连接主机的接口为Access接口, PVID如图所示。 SW1和SW2互连的
接口为Trunk接口, PVID都为1,此Trunk接口的允许通过的VLAN ID列表也如图所示。
• 请描述主机之间数据互访的全流程。
Hybrid接口
• 对于Hybrid接口,除了要配置PVID外, 还存在两个允许通过的VLAN ID列表,一个是Untagged VLAN ID列表,另一个是Tagged VLAN ID列表,其中VLAN 1默认在UntaggedVLAN列表中。这两个允许通过列表中的所有VLAN的帧都是允许通过这个Hybrid接口的。
• Hybrid接口特点:
▫ Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过。
▫ Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag。
▫ 与Trunk最主要的区别就是,能够支持多个VLAN的数据帧,不带标签通过。
• Hybrid接口接收数据帧:
▫ 当Hybrid接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在Untagged或Tagged VLAN ID列表中。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧。
▫ 当Hybrid接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否Untagged或Tagged VLAN ID列表中。如果在,则对这个Tagged帧进行转发操作;如果不在,则直接丢弃这个Tagged帧。
• Hybrid接口发送数据帧:
▫ 当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID既不在Untagged VLAN ID列表中,也不在Tagged VLAN ID列表中,则该Tagged帧会被直接丢弃。
▫ 当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Untagged VLAN ID列表中,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去。
▫ 当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Tagged VLAN ID列表中,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去。
Hybrid接口举例
• 在本例中, SW1和SW2连接主机的接口以及互连的接口均为Hybrid接口, PVID如图所示,Hybrid接口的允许通过的VLAN ID列表也如图所示。
• 请描述两个主机互访服务器的全流程。
小结
• 各类接口添加或剥除VLAN标签的处理过程总结如下:
▫ 当接收数据帧时:
▪ 当接收到不带VLAN标签的数据帧时, Access接口、 Trunk接口、 Hybrid接口都会给数据帧打上VLAN标签,但Trunk接口、 Hybrid接口会根据数据帧的VID是否为其允许通过的VLAN来判断是否接收,而Access接口则无条件接收。
▪ 当接收到带VLAN标签的数据帧时, Access接口、 Trunk接口、 Hybrid接口都会根据数据帧的VID是否为其允许通过的VLAN( Access接口允许通过的VLAN就是缺省VLAN)来判断是否接收。
▫ 当发送数据帧时:
▪ Access接口直接剥离数据帧中的VLAN标签。
▪ Trunk接口只有在数据帧中的VID与接口的PVID相等时才会剥离数据帧中的VLAN标签。
▪ Hybrid接口会根据接口上的配置判断是否剥离数据帧中的VLAN标签。
• 因此, Access接口发出的数据帧肯定不带Tag; Trunk接口发出的数据帧只有一个VLAN的数据帧不带Tag,其他都带VLAN标签; Hybrid接口发出的数据帧可根据需要设置某些VLAN的数据帧带Tag,某些VLAN的数据帧不带Tag。
VLAN的应用
VLAN的规划
• VLAN编号建议连续分配,以保证VLAN资源合理利用。最常用的划分方式是基于接口的方式。
应用场景-基于接口的VLAN划分
应用场景-基于MAC的VLAN划分
VLAN的配置
VLAN的基础配置命令
1.创建LAN
[Huawei]vlan vlan-id
通过此命令创建VLAN并进入VLAN视图,如果VLAN已存在,直接进入该VLAN的视图。
vlan-id是整数形式,取值范围是1~4094。
[Huawei]vlan batch{vlan-id1[ to vlan-id2]}通过此命令批量创建VAN。其中:
-
batch:指定批量创建的VLAN ID。
-
vlan-id1:表示第一个VLAN的编号。
-
vlan-id2:表示最后一个VLAN的编号。
• vlan命令用来创建VLAN并进入VLAN视图,如果VLAN已存在,直接进入该VLAN的视图。
• undo vlan用来删除指定VLAN。
• 缺省情况下,将所有接口都加入到一个缺省的VLAN中,该VLAN标识为1。
▫ 命令:
▫ vlan vlan-id
▪ vlan-id:指定VLAN ID。整数形式,取值范围是1~ 4094。
▫ vlan batch { vlan-id1 [ to vlan-id2 ] }
▪ batch:指定批量创建VLAN。
▪ vlan-id1 to vlan-id2:指定批量创建的VLAN ID,其中:
- vlan-id1表示第一个VLAN的编号。
- vlan-id2表示最后一个VLAN的编号。 vlan-id2的取值必须大于等于vlanid1,它与vlan-id1共同确定一个VLAN范围。
▪ 如果不指定to vlan-id2参数,则只创建vlan-id1所指定的VLAN。
▪ vlan-id1和vlan-id2是整数形式,取值范围是1~ 4094。
1.关联MAC地址与VLAN
[Huawei-vlan10]mac-vlan mac-address mac-address mac-address-mask|mac-address-mask-length
通过此命令配置MAC地址与VLAN关联。
·mac-address.:指定与VLAN关联的MAC地址。格式为H-H-H。其中H为4位的十六进制数,可以输入1~4位,如00e0、fc01。当输入不足4位时,表示前面的几位为0,如:输入e0,等同于00e0。MAC地址不可设置为0000-0000-0000、FFFF-FFFF-FFFF和组播地址。
·mac-address-.mask:指定MAC地址掩码。格式为H-H-H,其中H为1至4位的十六进制数。
·mac-address-.mask-length:指定MAC地址掩码长度。整数形式,取值范围是1~48。
2.使能MAC地址与VLAN
[Huawei-GigabitEtherneto/0/1]mac-vlan enable
通过此命令使能接口的MAC VLAN功能。
Access接口的基础配置命令
-
配置接口类型
[Huawei-GigabitEtherneto/0/1]port link-type access
在接口视图下,配置接口的链路类型为Access。.
-
配置Access接口的缺省VLAN
[Huawei-GigabitEtherneto/0/1]port default vlan vlan-id
在接口视图下,配置接口的缺省VLAN并同时加入这个VLAN。
vlan-id:配置缺省VLAN的编号。整数形式,取值范围是1~4094。
Trunk接口的基础配置命令
1.配置接口类型
[Huawei-GigabitEtherneto/0/1]port link-type trunk
在接口视图下,配置接口的链路类型为Trunk。
2.配置Trunk接口加入指定VLAN
[Huawei-GigabitEthernet0/0/1]port trunk allow-passvlan {vlan-id7 to vlan-id2]all
在接口视图下,配置Trunk类型接口加入的VLAN。
3.(可选)配置Trunk接口的缺省VAN
[Huawei-GigabitEthernet0/0/1]port trunk pvid vlan vlan-id
在接口视图下,配置Trunk类型接口的缺省VLAN。
• 命令: port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] | all }
▫ vlan-id1 [ to vlan-id2 ]:指定Trunk类型接口加入的VLAN,其中:
▪ vlan-id1表示第一个VLAN的编号。
▪ to vlan-id2表示最后一个VLAN的编号。 vlan-id2的取值必须大于等于vlan-id1
的取值。
▪ vlan-id1和vlan-id 2为整数形式,取值范围是1~ 4094。
▫ all:指定Trunk接口加入所有VLAN。
• 命令: port trunk pvid vlan vlan-id,设置Trunk类型接口的缺省VLAN。
▫ vlan-id:指定Trunk类型接口的缺省VLAN编号。整数形式,取值范围是1~ 4094。
Hybrid接口的基础配置命令
1.配置接口类型
[Huawei-GigabitEtherneto/0/1]port link-type hybrid
在接口视图下,配置接口的链路类型为Hybrid。
2.配置Hybrid接口加入指定VLAN
[Huawei-GigabitEtherneto/0/1]port hybrid untagged vlan{{vlan-id7 to vlan-id2]all
在接口视图下,配置Hybrid类型接口加入的VAN,这些VLAN的以Untagged方式通过接口。
[Huawei-GigabitEtherneto/0/1]port hybrid tagged vlan{{vlan-id7 to vlan-id2]}all
在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Tagged方式通过接口。
3.(可选)配置Hybrid:接口的缺省VLAN
[Huawei-GigabitEtherneto/0/1]port hybrid pvid vlan vlan-id
在接口视图下,配置Hybrid类型接口的缺省VLAN。
• 命令: port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
▫ vlan-id1 [ to vlan-id2 ]:指定Hybrid类型接口加入的VLAN,其中:
▪ vlan-id1表示第一个VLAN的编号。
▪ to vlan-id2表示最后一个VLAN的编号。 vlan-id2的取值必须大于等于vlan-id1
的取值。
▪ vlan-id1和vlan-id 2为整数形式,取值范围是1~ 4094。
▫ all:指定Hybrid接口加入所有VLAN。
• 命令: port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
▫ vlan-id1 [ to vlan-id2 ]:指定Hybrid类型接口加入的VLAN,其中:
▪ vlan-id1表示第一个VLAN的编号。
▪ to vlan-id2表示最后一个VLAN的编号。 vlan-id2的取值必须大于等于vlan-id1
的取值。
▪ vlan-id1和vlan-id 2为整数形式,取值范围是1~ 4094。
▫ all:指定Hybrid接口加入所有VLAN。
• 命令: port hybrid pvid vlan vlan-id,设置Hybrid类型接口的缺省VLAN。
▫ vlan-id: 指定Hybrid类型接口的缺省VLAN编号。整数形式,取值范围是1~ 4094。
思考题
-
(多选)下列关于VLAN的描述中,错误的是?(AC)
A.VLAN技术可以将一个规模较大的冲突域隔离成若干个规模较小的冲突域
B.VLAN技术可以将一个规模较大的二层广播域隔离成若干个规模较小的二层广播域
C.位于不同VLAN的计算机之间无法进行通信
D.位于同一VLAN中的计算机之间可以进行二层通信
-
如果一个Trunk接口的PVID是5,且端口下配置port trunk allow-pass vlan23,那么哪些VLAN的流量可以通过该Trunk接口进行传输?
执行了port trunk allow-pass vlan 2 3命令后, VLAN 5的数据帧不能在此接口上进行传输。VLAN 1的数据默认可以通过Trunk接口进行传输。所以VLAN 1, VLAN 2和VLAN 3的数据帧可以在Trunk接口上传输。
本章总结
-
本章节主要介绍了虚拟局域网(VLAN)的相关技术知识,包括:VLAN的作用,VLAN的标识及划分,VLAN的数据交互,VLAN的实际规划和应用,以及VLAN的相关基本配置。
-
通过VLAN技术,可以将物理的局域网划分成多个广播域,实现同一VLAN内的网络设备可以直接进行二层通信,不同VLAN内的设备不可以直接进行二层通信。
生成树
生成树技术概述
技术背景:二层交换机网络的冗余性与环路
• 随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如图, 接入层交换机单链路上联,则存在单链路故障,也就是如果这根上联链路发生故障, 交换机下联用户就断网了。另一个问题的单点故障,也就是交换机如果宕机, 交换机下联用户也就断网了。
• 为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。
技术背景:人为错误导致的二层环路
• 在现实中,除了冗余链路会引起环路,还有一些人为错误导致的环路。
二层环路带来的问题
• 问题一:广播风暴
▫ 根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
▫ 本例中, SW3收到了一个广播帧将其进行泛洪, SW1和SW2也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SW3, 这种循环会一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。
• 问题二: MAC地址表漂移
▫ 交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。
▫ 本例中, SW3收到一个广播帧泛洪, SW1从GE0/0/1接口接收到广播帧后学习且泛洪,形成MAC地址5489-98EE-788A与GE0/0/1的映射; SW2收到广播帧后学习且泛洪,SW1再次从GE0/0/2收到源MAC地址为5489-98EE-788A的广播帧并进行学习, 5489-98EE-788A会不断地在GE0/0/1与GE0/0/2接口之间来回切换,这被称为MAC地址漂移现象。
初识生成树协议
• 在以太网中,二层网络的环路会带来广播风暴, MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP。
• STP通过构造一棵树来消除交换网络中的环路。
• 运行STP算法,判断网络中存在环路的地方并阻断冗余链路,将环路网络修剪成无环路的树型网络,从而避免了数据帧在环路网络中的增生和无穷循环。
生成树能够动态响应网络拓扑变化调整阻塞接口
交换机上运行的生成树协议会持续监控网络的拓扑结构,当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动做出调整。
因此,生成树既能解决二层环路问题,也能为网络的冗余性提供一种方案。
• 如图,交换机上运行STP协议,会通过报文监控网络的拓扑结构,正常情况下是将SW3上的一个接口进行阻塞( Block),从而打破环路,当监控到SW1与SW3之间出现链路故障,则恢复阻塞端口进入转发状态。
二层及三层环路
• 常见环路主要分为二层环路和三层环路。
▫ 二层环路主要因为网络中部署了二层冗余环境,或人为的误接线缆导致,可以通过借助特定的协议或机制实现二层防环;
▫ 三层环路主要因为路由环路,可以通过动态路由协议防环和IP报文头部中的TTL字段用于防止报文被无止尽地转发。
生成树协议在园区网络中的应用位置
• 生成树协议应用于园区网络的二层网络中,进行链路备份和消除环路。
STP概述
STP是一个用于局域网中消除环路的协议。
-
运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路。
-
STP在网络中运行后会持续监控网络的状态,当网络出现拓扑变更时,STP能够感知并且进行自动响应,从而使得网络状态适应新的拓扑结构,保证网络可靠性。
-
由于局域网规模的不断增长,生成树协议已经成为了当前最重要的局域网协议之一。
STP的基本概念及工作原理
STP的基本概念:桥ID
• 在STP中,每一台交换机都有一个标示符,叫做Bridge ID或者桥ID, 桥ID由16位的桥优先级( Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~ 65535,默认值为32768,可以修改但是修改值必须为4096的倍数。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址, MAC地址越小则越优先。
• 如图,需要在该网络中选举根桥,首先比较三台交换机的桥优先级,桥优先级都为4096,再比较三台交换机的MAC地址,谁小谁优先,最终选择SW1为根桥。
STP的基本概念:根桥
• 树形的网络结构必须有树根,于是STP引入了根桥( Root Bridge)概念。
• 对于一个STP网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。
• 网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备仅对该报文进行处理,传达拓扑变化记录,从而保证拓扑的稳定。
STP的基本概念:Cost
• 交换机的每个端口都有一个端口开销( Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。
• 华为交换机支持多种STP的路径开销计算标准,提供多厂商场景下最大程度的兼容性。缺省情况下,华为交换机使用IEEE 802.1t标准来计算路径开销。
STP的基本概念:Cost计算方法
STP的基本概念:RPC
• 从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC,并生成无环树状网络。根桥的根路径开销是0。
STP的基本概念:PORT ID
• 运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。 端口ID可以用来确定端口角色。
STP的基本概念:BPDU
• 为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU中。
• BPDU有两种类型:配置BPDU和TCN BPDU。
• 配置BPDU包含了桥ID、路径开销和端口ID等参数。 STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
• TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
配置BPDU报文的格式
配置BPDU的比较原则
• STP操作:
1. 选举一个根桥。
2. 每个非根交换机选举一个根端口。
3. 每个网段选举一个指定端口。
4. 阻塞非根、非指定端口。
• STP中定义了三种端口角色:指定端口,根端口和预备端口。
▫ 指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。
▫ 根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
▫ 如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。
配置BPDU的转发过程
• 交换机在刚启动时都认为自己是根桥,互相发送配置BPDU进行STP运算。
STP的计算过程
STP的计算过程(1)
• 什么是根桥?
▫ 根桥是STP树的根节点。
▫ 要生成一棵STP树,首先要确定出一个根桥。
▫ 根桥是整个交换网络的逻辑中心,但不一定是它的物理中心。
▫ 当网络的拓扑发生变化时,根桥也可能发生变化。(抢占)
• 选举过程:
▫ STP交换机初始启动之后,都会认为自己是根桥,并在发送给其他交换机的BPDU中宣告自己为根桥。因此,此时BPDU中的根桥ID为各自设备的网桥ID。
▫ 当交换机收到网络中其他设备发送来的BPDU后,会比较BPDU中的根桥ID和自己的BID。
▫ 交换机不断交互BPDU,同时对BID进行比较,最终选举一台BID最小的交换机作为根桥,其他的则为非根桥。
▫ 如图:根桥的选举先比较优先级,交换机SW1、 2、 3的优先级相等,则比较MAC地址,也优选最小的,所以SW1的BID最小,因此SW1为根桥, SW2和SW3为非根桥。
• 注意:
▫ 根桥的角色可抢占。当有更优的BID的交换机加入网络时,网络会重新进行STP计算,选出新的根桥。
STP的计算方式(2)
• 什么是根端口?
▫ 一个非根桥设备上会有多个端口与网络相连,为了保证从某台非根桥设备到根桥设备
的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根
端口”的端口,由根端口来作为该非根桥设备与根桥设备之间进行报文交互的端口。
▫ 在选举出根桥后,根桥仍然持续发送BPDU,而非根桥将持续不断的收到根桥发送的
BPDU。因此,在所有非根桥上选举一个距离根桥“最近”的端口(根端口),在网
络收敛后,根端口将不断的收到来自根桥的BPDU。
▫ 即:根端口保证了交换机与根桥之间工作路径的唯一性和最优性。
• 注意:一个非根桥设备上,最多只能有一个根端口。
• 选举过程:
1. 交换机有多个端口接入网络,各个端口都会收到BPDU报文,报文中会携带“ RootID、RPC、 BID、 PID”等关键字段,端口会针对这些字段进行PK。
2. 首先比较根路径开销( RPC), STP协议把根路径开销作为确定根端口的重要依据。RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。
3. 当RPC相同时,比较上行交换机的BID, 即比较交换机各个端口收到的BPDU中的BID,值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。
4. 当上行交换机BID相同时,比较上行交换机的PID, 即比较交换机各个端口收到的BPDU中的PID,值越小,越优先,因此交换机会选上行设备PID最小的端口作为根端口。
5. 当上行交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口。
STP的计算方式(3)
• 什么是指定端口?
▫ 网络中的每个链路与根桥之间的工作路径必须是唯一的且最优的。当一个链路有两条及以上的路径通往根桥时(该链路连接了不同的交换机,或者该链路连接了同一台交换机的不同端口),与该链路相连的交换机(可能不止一台)就必须确定出一个唯一的指定端口。
▫ 因此,每个链路( Link)选举一个指定端口,用于向这个链路发送BPDU。
• 注意:一般情况下,根桥上不存在任何根端口,只存在指定端口。
• 选举过程:
指定端口也是通过比较RPC来确定的,选择RPC最小的作为指定端口,如果RPC相同,则比较BID和PID。
1. 首先比较根路径开销( RPC),值越小,越优选,因此交换机会选RPC最小的端口作为指定端口。
2. 若RPC相等,则比较链路两端交换机的BID,值越小,越优选,因此交换机会选BID最小的交换机的端口作为指定端口。
3. 若BID相等,则比较链路两端端口的PID,值越小,越优选,因此交换机会选PID最小的交换机的端口作为指定端口。
STP的计算方式(4)
• 什么是非指定端口(预备端口)?
• 在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为预备端口。
• 阻塞非指定端口
▫ STP会对这些非指定端口进行逻辑阻塞,即这些端口不能转发由终端计算机产生并发送的帧(用户数据帧)。
▫ 一旦非指定端口被逻辑阻塞后, STP树(无环路工作拓扑)就生成了。
• 注意:
▫ 非指定端口可以接收并处理BPDU。
▫ 根端口和指定端口既可以接收和发送BPDU,也可以转发用户数据帧。
思考题1:识别以下拓扑中的根桥及各种接口角色
• 如图,首先选举根桥,三台交换机的桥优先级相同,则比较桥MAC地址,谁小谁优先,最终选举SW1为根桥;
• 其次选举根端口, SW2上GE0/0/1距离根桥最近, RPC最小,所以SW2的GE0/0/1为根端口,同理SW3的GE0/0/1也为根端口;
• 然后选举指定端口, SW1为根桥,所以SW1上的GE0/0/0和GE0/0/1端口为指定端口, SW2的GE0/0/2端口接收到SW3的配置BPDU,比较BID, SW2比SW3的BID更优,所以SW2的GE0/0/2端口为指定端口;
• 最终非根端口,非指定端口的SW3的GE0/0/2端口为预备端口。
思考题2:识别以下拓扑中的根桥及各种接口角色
• 如图,首先选举根桥,四台交换机的桥优先级相同,则比较桥MAC地址,谁小谁优先,最终选举SW1为根桥;
• 其次选举根端口, SW2上GE0/0/1距离根桥最近, RPC最小,所以SW2的GE0/0/1为根端口,同理SW3的GE0/0/2也为根端口, SW4的两个端口RPC相同,然后比较SW4的G0/0/1对应的交换机SW2的BID与G0/0/2对应的交换机SW3的BID,谁小谁优先,最终选举出SW4的GE0/0/1端口为根端口;
• 然后选举指定端口, SW1为根桥,所以SW1上的GE0/0/0和GE0/0/1端口为指定端口, SW2的GE0/0/2端口接收到SW4的配置BPDU,比较BID, SW2比SW4的BID更优,所以SW2的GE0/0/2端口为指定端口,同理可得SW3的GE0/0/1端口为指定端口;
• 最终非根端口,非指定端口的SW4的GE0/0/2端口为预备端口。
思考题3:识别以下拓扑中的根桥及各种接口角色
• 如图,首先选举根桥,两台交换机的桥优先级相同,则比较桥MAC地址,谁小谁优先,最终选举SW1为根桥;
• 其次选举根端口, SW2上两个端口RPC相同,再比较两个接口对端的BID也相同,然后比较两个端口对端的PID, SW2的G0/0/1的对端PID: 128.1, SW2的G0/0/2的对端PID: 128.2,越小越优先,所以SW2的G0/0/1为根端口;
• 然后选举指定端口, SW1为根桥,所以SW1上的GE0/0/1和GE0/0/2端口为指定端口;
• 最终非根端口,非指定端口的SW2的GE0/0/2端口为预备端口。
STP的接口状态
STP的接口状态迁移
• 图中所示为STP的端口状态迁移机制,运行STP协议的设备上端口状态有5种:
▫ Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
▫ Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
▫ Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
▫ Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
▫ Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。
拓扑变化-根桥故障
• 根桥故障:
▫ 在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。
▫ 如果根桥发生了故障,停止发送BPDU,下游交换机就无法收到来自根桥的BPDU报文。
▫ 如果下游交换机一直收不到BPDU报文, Max Age计时器(缺省: 20s)就会超时,从而导致已经收到的BPDU报文失效,此时,非根桥会互相发送配置BPDU,重新选举新的根桥。
• 端口状态:
▫ SW3的预备端口, 20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。
• 收敛时间:
▫ 根桥故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay收敛时间。
拓扑变化-直连链路故障
• 直连链路故障:
▫ 当两台交换机间用两条链路互连时,其中一条是主用链路,另一条为备用链路。
▫ 当网络稳定时,交换机SWB检测到根端口的链路发生故障,则其备用端口会进入用户流量转发状态。
• 端口状态:
▫ 备用端口会从Blocking状态,迁移到Listening-Learning-Forwarding状态。
▫ 收敛时间:
▫ 直连链路故障,备用端口会经过30s后恢复转发状态。
拓扑变化-非直连链路故障
-
非直连链路故障后,SW3的备用端口恢复到转发状态,非直连故障会导致50s左右的恢复时间。
• 非直连故障
▫ 在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。
▫ 若SW1与SW2之间的链路发生了某种故障(非物理故障),因此SW2一直收不到来自根桥SW1的BPDU报文, Max Age计时器(缺省: 20 s)就会超时,从而导致已经收到的BPDU报文失效。
▫ 此时,非根桥SW2会认为根桥失效,并且认为自己是根桥,从而发送自己的配置BPDU给SW3,通知SW3自己是新的根桥。
▫ 在此期间, SW3的预备端口一直收不到包含根桥ID的BPDU, Max Age计时器超时后,端口进入到Listening状态,开始向SW2“转发”从上游发来的包含根桥ID的BPDU。
▫ 因此, Max Age定时器超时后, SW2和SW3几乎同时收到对方发来的BPDU,再进行STP重新计算, SW2发现SW3发来的BPDU更优,就放弃宣称自己是根桥并重新确定端口角色。
• 端口状态:
▫ SW3预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。
• 收敛时间:
▫ 非直连故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay收敛时间。
拓扑改变导致MAC地址表错误
• 在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下, MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。
• 本例中, SW2中的MAC地址表项定义了通过端口GigabitEthernet 0/0/1可以到达主机A,通过端口GigabitEthernet 0/0/3可以到达主机B。由于SW3的根端口产生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛之后,从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒,主机A发往主机B的帧到达SW2后, SW2会继续通过端口GigabitEthernet 0/0/3转发该数据帧。
• 拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。
• 拓扑变更以及MAC地址表项更新的具体过程如下:
▫ SW3感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。
▫ SW2收到SW3发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SW3,告知SW3停止发送TCN BPDU报文。
▫ SW2向根桥转发TCN BPDU报文。
▫ SW1把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300 s修改为Forward Delay的时间(默认为15 s)。
▫ 最多等待15 s之后, SW2中的错误MAC地址表项会被自动清除。此后, SW2就能重新开始MAC表项的学习及转发操作。
STP的基础配置
STP的基础配置命令
1.配置生成树工作模式
[Huawei]stp mode stp rstp|mstp
交换机支持sTP、RSTP和MSTP(Multiple Spanning Tree Protocol)三种生成树工作模式,默认情况工作在MSTP模式。
2.(可选)配置根桥
[Huawei]stp root primary
配置当前设备为根桥。缺省情况下,交换机不作为任何生成树的根桥。配置后该设备优先级数值自动为0,并且不能更改设备优先级。
3.(可选)备份根桥
[Huawei]stp root secondary
配置当前交换机为备份根桥。缺省情况下,交换机不作为任何生成树的备份根桥。配置后该设备优先级数值为4096,并且不能更改设备优先级。
1.(可选)配置交换机的STP优先级
[Huawei]stp priority priority
缺省情况下,交换机的优先级取值是32768。
2.(可选)配置接口路径开销
[Huawei]stp pathcost-standard {dot1d-1998 dot1t|legacy}
配置接口路径开销计算方法。缺省情况下,路径开销值的计算方法为1EEE802.1t(dot1t)标准方法。
同一网络内所有交换机的接口路径开销应使用相同的计算方法。
[Huawei-GigabitEtherneto/0/1]stp cost cost
设置当前接口的路径开销值。
1,(可选)配置接口优先级
[Huawei-intf]stp priority priority
配置接口的优先级。缺省情况下,交换机接口的优先级取值是128。
2.启用STP/RSTP/MSTP
[Huawei]stp enable
使能交换机的STP/RSTP/MSTP功能。缺省情况下,设备的STP/RSTP/MSTP功能处于启用状态。
案例:STP的基础配置
RSTP对STP的改进
STP的不足之处
-
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的。
-
STP没有细致区分接口状态和接口角色,不利于初学者学习及部署。
-
网络协议的优劣往往取决于协议是否对各种情况加以细致区分。
-
从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。
-
从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色。
-
根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding:状态。
-
STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。
-
STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一。
RSTP概述
-
IEEE802.1w中定义的RSTP可以视为STP的改进版本,RSTP在许多方面对STP进行了优化,它的收敛速度更快,而且能够兼容STP。
-
RSTP引入了新的接口角色,其中替代接口的引入使得交换机在根接口失效时,能够立即获得新的路径到达根桥。备份端口作为指定端口的备份,帮助链路上的网桥快速获得到根桥的备份路径。RSTP的状态规范根据端口是否转发用户流量和学习MAC地址把原来的5种状态缩减为3种。另外,RSTP还引入了边缘接口的概念,这使得交换机连接终端设备的接口在初始化之后能够立即进入转发状态,提高了工作效率。
• IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP( Rapid Spanning-Tree Protocol), RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
• RSTP(快速生成树)是从STP演化而来的,基本思想一样;当交换网络拓扑结构发生变化时, RSTP可以通过Proposal/Agreement机制更快地恢复网络的连通性。
• 根据STP的不足, RSTP删除了3种端口状态,新增加了2种端口角色,并且把端口属性充分的按照状态和角色解耦;此外, RSTP还增加了相应的一些增强特性和保护措施,实现网络的稳定和快速收敛。
• RSTP是可以与STP实现后向兼容的,但在实际中,并不推荐这样的做法,原因是RSTP会失去其快速收敛的优势,而STP慢速收敛的缺点会暴露出来。
RSTP对STP的其他改进:
▫ 配置BPDU的处理发生变化:
▪ 拓扑稳定后,配置BPDU报文的发送方式进行了优化;
▪ 使用更短的BPDU超时计时;
▪ 对处理次等BPDU的方式进行了优化;
▫ 配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了接口角色。
▫ RSTP拓扑变化处理:相比于STP进行了优化,加速针对拓扑变更的反应速度。
端口角色不同
• 从配置BPDU报文发送角度来看:
▫ 预备( Alternate)接口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的接口。
▫ 备份( Backup)接口就是由于学习到自己发送的配置BPDU报文而阻塞的接口。
• 从用户流量角度来看:
▫ Alternate接口提供了从指定桥到根的另一条可切换路径,作为根接口的备份接口。
▫ Backup接口作为指定接口的备份,提供了另一条从根桥到相应网段的备份通路。
边缘端口
-
如果指定端口位于整个域的边缘,不再与任何交换设备连接,这种端口叫做边缘端口。
• 在STP中用户终端接入交换设备端口状态由Disabled状态转到Forwarding状态需要经过15s,
那么用户在这段时间无法上网,如果网络频繁变化,用户上网状态非常不稳定,时断时续。
• 边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口正常情况下接收不到配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。
端口状态不同
-
RSTP的状态规范把原来的5种状态缩减为3种。
如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。
如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态。
• RSTP把原来STP的5种端口状态简化成了3种。
▫ Discarding状态,端口既不转发用户流量也不学习MAC地址。
▫ Learning状态,端口不转发用户流量但是学习MAC地址。
▫ Forwarding状态,端口既转发用户流量又学习MAC地址。
生成树技术进阶
STP/RSTP的缺陷:所有的VLAN共享一棵生成树
-
RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
-
但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据
-
流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发。
VBST:基于VLAN的生成树
-
华为公司提出了VBST(VLAN-Based Spanning Tree)生成树解决方案。该解决方案中,生成树的形成是基于VLAN的,不同VLAN间可形成相互独立的生成树,不同VLAN内的流量沿着各自的生成树转发,进而可实现流量的负载分担。
• 企业网中部署VBST:
▫ 可消除网络中可能存在的通信环路。
▫ 可实现链路的复用和流量的负载分担,进而有效地提高链路带宽的利用率。
▫ 配置和维护简单,进而可降低配置和维护成本。
• 但是如果网络中VLAN的数量较多,为每个VLAN执行独立的生成树计算将耗费交换机大量的资源。
MSTP:多生成树
-
为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。
-
MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP概述
-
MSTP把一个交换网络分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。
-
每棵生成树叫做一个多生成树实例MSTl(Multiple Spanning Tree Instance)。
-
所谓生成树实例就是多个VLAN的集合所对应的生成树。
-
通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。
-
MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。
-
可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。
堆叠与园区网络树形结构组网形态
• 堆叠iStack( Intelligent Stack),是指将多台支持堆叠特性的交换机设备组合在一起,从逻辑上组合成一台整体交换设备。
• 堆叠系统建立之前,每台交换机都是单独的实体,有自己独立的IP地址和MAC地址,对外体现为多台交换机,用户需要独立的管理所有的交换机;堆叠建立后堆叠成员对外体现为一个统一的逻辑实体,用户使用一个IP地址对堆叠中的所有交换机进行管理和维护,如图所示。通过交换机堆叠,可以实现网络大数据量转发和网络高可靠性,同时简化网络管理。
Smart Link
• 如图所示Switch3采用双上行方式分别连接到FW1和FW2,这样Switch3到达上行的链路就可以有两条。在Switch3上配置Smart Link,正常情况下,可实现Port2所在链路作为Port1所在链路的备份。若Port1所在的链路发生故障, Smart Link会自动将数据流量切换到Port2所在链路,保证业务不中断。
思考题
1.(单选)以下关于STP接口状态的说法,错误的是(A)。
A被阻塞的接口不会侦听,也不发送BPDU。
B.处于Learning状态的接口会学习MAC地址,但是不会转发数据。
C处于Listening状态的接口会持续侦听BPDU。
D被阻塞的接口如果一定时间内收不到BPDU,则会自动切换到Listening状态。、
本章总结
-
生成树是一个用于局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路。由于局域网规模的不断增长,生成树协议已经成为了当前最重要的局域网协议之一。
-
在以太网交换网中部署生成树协议后,如果网络中出现环路,生成树协议通过拓扑计算,可实现:
-
消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路。
-
链路备份:当前活动的路径发生故障时,激活冗余备份链路,恢复网络连通性。
-
RSTP(Rapid Spanning-Tree Protocol)作为一种存在已久的协议,已经无法满足现代园区网络的需求,但是了解STP的工作原理,有助于为进一步熟悉并掌握RSTP及MSTP的原理与部署做好铺垫。
以太链路聚合与交换机堆叠、集群
-
随着业务的发展和园区网络规模的不断扩大,用户对于网络的带宽、可靠性要求越来越高。传统解决方案通过升级设备方式提高网络带宽,同时通过部署冗余链路并辅以STP(Spanning Tree Protocol,生成树协议)协议实现高可靠。传统解决方案存在灵活度低、故障恢复时间长、配置复杂等缺点。
-
本章节将介绍通过链路聚合技术与堆叠、集群技术实现网络带宽提升与高可靠性保障。
网络可靠性需求
-
网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。
-
网络的可靠性可以从单板、设备、链路多个层面实现。
-
随着网络的快速普及和应用的日益深入,各种增值业务得到了广泛部署,网络中断可能导致大量业务异常、造成重大经济损失。因此,作为承载业务主体的基础网络,其可靠性成为备受关注的焦点。
单板可靠性
-
框式交换机由机框、电源模块、风扇模块、主控板、交换网板(SFU)、线路板(LPU)构成。
-
机框:为各种板卡、模块提供插槽,实现板卡间的通信。
-
电源模块:设备的供电系统
-
风扇模块:设备的散热系统
-
主控板(MPU,Main Processing Unit):负责整个系统的控制平面和管理平面。
-
交换网板(SFU,Switch Fabric Unit):负责整个系统的数据平面。数据平面提供高速无阻塞数据通道,实现各个业务模块之间的业务交换功能。
-
线路板(LPU,Line Processing Unit):线路处理单元是物理设备上用于提供数据转发功能的模块,提供不同速率的光口、电口。
-
以S12700E-8为例,设备提供8个线路板槽位、4个交换网板槽位2个主控板槽位、6个电源模块槽位、4个风扇模块槽位。
-
框式交换机配置多个主控板、交换网板可保证设备自身的可靠性,单个槽位的交换网板、主控板损坏不影响设备的正常运行。
-
框式交换机的线路板损坏后,该板卡上的接口无法正常转发数据。
设备可靠性
链路可靠性
-
为保证设备间链路可靠性,在设备间部署多条物理线路,为防止环路STP只保留一条链路
转发流量,其余链路成为备份链路。
链路聚合技术原理与配置
基本原理
提升链路带宽
-
设备之间存在多条链路时,由于STP的存在,实际只会有一条链路转发流量,设备间链路
带宽无法得到提升。
以太网链路聚合
-
以太网链路聚合Eth-Trunk:简称链路聚合,通过将多个物理接口捆绑成为一个逻辑接口,
可以在不进行硬件升级的条件下,达到增加链路带宽的目的。
链路聚合基本术语
-
聚合组(Link Aggregation Group,LAG):若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。
-
成员接口和成员链路:组成Eth-Truk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。
-
活动接口和活动链路:活动接口又叫选中(Selected)接口,是参与数据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)
-
非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。
-
聚合模式:根据是香开启LACP(Link Aggregation Control Protocol,链路聚合控制协议),链路聚合可以分为手工模式和LACP模式。
-
其他椰念:活动接口上限阈值和活动接口下限阈值。
-
链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
-
一个聚合组内要求成员接口以下参数相同:
▫ 接口速率
▫ 双工模式
▫ VLAN配置:接口类型都是Trunk或者Access,如果为Access接口的default VLAN需要
一致,如果为Trunk接口,接口放通的VLAN、缺省VLAN需要一致。
手工模式
-
手工模式:Eth-Trunk的建立、成员接口的加入均由手动配置,双方系统之间不使用LACP进行协商。
-
正常情况下所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
-
当聚合的两端设备中存在一个不支持ACP协议时,可以使用手工模式。
手工模式缺陷
-
为了使链路聚合接口正常工作,必须保证本端链路聚合接口中所有成员接口的对端接口:
-
属于同一设备
-
加入同一链路聚合接口
-
手工模式下,设备间没有报文交互,因此只能通过管理员人工确认。
-
在上图示例中SW1将四个接口加入到同一个聚合接口,但是其中一个接口的对端为SW3,
而不是SW2,导致部分流量被负载分担到SW3,从而导致通信异常。
-
手动模式下,设备只能通过物理层状态判断对端接口是否正常工作。
LACP模式
LACPDU
-
LACP模式:采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。
-
LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。
系统优先级
-
LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端成为主动端,另一端(被动端)根据主动端选择活动接口。
-
通过系统LACP优先级确定主动端,值越小优先级越高。
接口优先级
-
选出主动端后,两端都会以主动端的接口优先级来选择活动接口,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
最大活动接口数
-
LACP模式支持配置最大活动接口数目,当成员接口数目超过最大活动接口数目时会通过比较接口优先级、接口号选举出较优的接口成为活动接口,其余的则成为备份端口(非活动接口),同时对应的链路分别成为活动链路、非活动链路。交换机只会从活动接口中发送、接收报文。
-
当活动链路中出现链路故障时,可以从非活动链路中找出一条优先级最高(接口优先级、接口编号比较)的链路替换故障链路,实现总体带宽不发生变化、业务的不间断转发。
活动链路选举
-
SW1、SW2配置LACP模式的链路聚合。两端都设置最大活跃接口数为2。
-
通过LACPDU:选举出优先级较高的交换机SW1,作为LACP协商过程的主动端。
-
SW1、 SW2配置LACP模式的链路聚合,将四个接口加入Eth-Trunk中,接口编号分别为1、 2、3、 4。 SW1、 SW2配置Eth-Trunk最大活动接口数目为2,其余配置保持默认(系统优先级、接口优先级)。
-
SW1、 SW2分别从成员接口1、 2、 3、 4对外发送LACPDU。
-
SW1、 SW2收到对端发送的LACPDU,比较系统优先级,都为默认的32768,继续比较MAC地址, SW1 MAC: 4c1f-cc58-6d64, SW2 MAC: 4c1f-cc58-6d65, SW1拥有更小的MAC地址,优选成为LACP选举的主动端。
-
SW1在本端通过比较接口优先级、接口编号选举出活动接口,其中1、2号接口在相同的接口优先级下拥有更小的接口编号,成为活动接口。
-
SW1通过LACPDU:将本端活动端口选举结果告知对端。
-
LACP通过LACPDU中的三个flags来标识该端口的状态,如果是活跃端口如下三个flags
的值将会是1:
Synchronization
Collecting
Distributing
-
如果是非活跃端口,该三个flags字段的值将为0。
-
SW2依据SW1的选举结果,明确本端的活动接口,同时对应的链路成为活动链路。
-
至此,Eth-Trunk的活动链路选举过程完成。
负载分担
负载分担模式
-
Eth-truk支持基于报文的IP地址或MAC地址来进行负载分担,可以配置不同的模式(本地有效,对出方向报文生效)将数据流分担到不同的成员接口上。
-
常见的模式有:源IP、源MAC、目的IP、目的MAC、源目IP、源目MAC。
-
实际业务中用户需要根据业务流量特征选择配置合适的负载分担方式。业务流量中某种参数变化越频繁,选择与此参数相关的负载分担方式就越容易实现负载均衡。
• 如果报文的IP地址变化较频繁,那么选择基于源IP、目的IP或者源目IP的负载分担模式更有利于流量在各物理链路间合理的负载分担;
• 如果报文的MAC地址变化较频繁, IP地址比较固定,那么选择基于源MAC、目的MAC或源目MAC的负载分担模式更有利于流量在各物理链路间合理的负载分担。
• 如果负载分担模式选择的和实际业务特征不相符,可能会导致流量分担不均,部分成员链路负载很高,其余的成员链路却很空闲,如在报文源目IP变化频繁但是源目MAC固定的场景下选择源目MAC模式,那将会导致所有流量都分担在一条成员链路上。
典型使用场景
场景1
场景2
配置举例
配置命令介绍
-
创建链路聚合组
[Huawei]interface eth-trunk trunk-id
创建Eth-Trunk接口,并进入Eth-Trunk接口视图。
2.配置链路聚合模式
[Huawei-Eth-Trunk1]mode flacp/manual load-balance
Mode lacpi配置链路聚合模式为lacp模式,mode manual load-balancei配置链路聚合模式为手工模式。
注意:需要保持两端链路聚合模式一致。
3.将接口加入链路聚合组中(以太网接口视图)】
[Huawei-GigabitEtherneto/0/1]eth-trunk trunk-id
在接口视图下,把接口加入到Eth-Trunk中。
4.将接口加入链路聚合组中(Eth-Trunk视图)
[Huawei-Eth-Trunk1]trunkport interface-type {interface-number}
在Eth-Truk视图中将接口加入到链路聚合组中。3、4两种方式都可以将接口加入到链路聚合组中。
5.使能允许不同速率端口加入同一Eth-Trunk接口的功能
[Huawei-Eth-Trunk1]mixed-rate link enable
缺省情况下,设备未使能允许不同速率端口加入同一Eth-Tuk接口的功能,只能相同速率的接口加入到同一个Eth-Trunk接口中。
6.配置系统LACP优先级
[Huawei]lacp priority priority
系统LACP优先级值越小优先级越高,缺省情况下,系统LACP优先级为32768。
7.配置接口LACP优先级
[Huawei-GigabitEthernet0/0/1]lacp priority priority
在接口视图下配置接口LACP优先级。缺省情况下,接口的ACP优先级是32768。接口优先级取值越小,接口的LACP优先级越高。只有在接口已经加入到链路聚合中才可以配置该命令。
8.配置最大活动接口数
[Huawei-Eth-Trunk1]max active-linknumber {number}
配置时需注意保持本端和对端的最大活动接口数一致,只有LACP模式支持配置最大活动接口数。
9.配置最小活动接口数
[Huawei-Eth-Trunk1]least active-linknumber {number}
本端和对端设备的活动接口数下限阈值可以不同,手动模式、LACP模式都支持配置最小活动接口数。
配置最小活动接口数目的是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Truk接口的状态转为Dowm。
• 不同型号交换机的可设置的最大活动接口数并不一致,如S6720HI、 S6730H、 S6730S和
S6730S-S链路聚合组活动接口数的上限阈值是32,而S6720LI、 S6720S-LI、 S6720SI和
S6720S-SI链路聚合组活动接口数的上限阈值是16。具体数值查阅产品手册确定。
• 设置最小活动接口数目是为了保证最小带宽,当带宽过小时一些对链路带宽有要求的业务
将会出现异常,此时切断Eth-Trunk通过网络自身的高可靠性将业务切换到其他路径,从而
保证业务的正常运行。
手工模式链路聚合配置举例
LACP模式链路聚合配置举例
堆叠/集群的概述
什么是堆叠/集群?
-
堆叠(iStack):多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发。
-
集群(Cluster Switch System,CSS):将两台支持集群特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。
-
集群只支持两台设备,一般框式交换机支持CSS,盒式设备支持iStack。
堆叠/集群的优势
-
交换机多虚一:堆叠交换机对外表现为一台逻辑交换机,控制平面合一,统一管理。
-
转发平面合一:堆叠内物理设备转发平面合一,转发信息共享并实时同步。
-
跨设备链路聚合:跨物理设备的链路被聚合成一个Eth-Trunk端口,和下游设备实现互联。
实际应用
实际应用1
实际应用2
-
两台设备组成集群,虚拟成单一的逻辑设备。简化后的组网不再需要使用MSTP、VRRP等协议,简化了网络配置,同时依靠跨设备的链路聚合,实现快速收敛,提高了可靠性。
推荐架构
思考题
-
基于包和基于流的负载分担有何区别?
基于包每个数据包负载到不同的链路,有可能导致报文乱序,基于流一条相同的流负载到一个相同的链路,不会发生报文乱序,但是单条流无法利用整个聚合接口的逻辑带宽。
-
LACP模式如何选举主动端?
比较系统优先级,越小越优。如果系统优先级相同则继续比较桥M八C,越小越优。优先级高者成为主动端。
-
CSS、iStack有何优势?
简化网络管理、提高网络可靠性、能够充分利用网络链路带宽、使用跨设备的Eth-Truk可以构建物理上无环的网络。
本章总结
-
为提高链路可靠性、链路利用率、链路带宽可以使用链路聚合技术,按照聚合方式不同可以分为静态聚合和LACP模式聚合。
-
LACP模式采用报文协商,可以实现活动链路的备份,在链路出现故障时将备份链路选举为活动链路继续参与转发。
-
为保证报文到达的顺序,链路聚合的负载分担采用基于流的形式。
-
使用iStack、CSS技术可以简化网络管理、简化网络结构、提高网络可靠性。
IP路由基础
路由概述
路由基本概念
-
路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。
-
路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器。
-
路由设备维护着一张路由表,保存着路由信息。
• 网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个过程被称为路由转发。
• 中间节点选择路径所依赖的表项为称为路由表。
• 路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上。
路由信息介绍
• 通过路由中包含的信息,路由设备可以转发IP报文到相应的路径。
• 目的地址、掩码用于识别IP报文目的地址,路由设备将IP报文匹配到相应的路由之后,根据路由的出接口、下一跳确认转发的路径。
• 只有出接口并不能够确认转发IP报文的下一跳设备,还需要明确的下一跳设备地址。
路由表
• 路由器依据路由表转发报文。
• 路由表由一条条详细的路由条目组成。
• 路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的”路由。
• 对路由表中的路由条目的管理实际上就是路由器维护、管理路由信息的具体实现。
路由条目生成
路由信息获取方式
路由器依据路由表进行路由转发,为实现路由转发,路由器需要发现路由,以下为常见的路由获取方式。
• 直连路由:直连接口所在网段的路由,由设备自动生成。
• 静态路由:由网络管理员手工配置的路由条目
• 动态路由:路由器通过动态路由协议(如OSPF、 IS-IS、 BGP等)学习到的路由
直连路由
• 当匹配中直连路由进行转发时,此时路由器会查看ARP表项,将报文直接转到目的地址,此时该路由器为路由转发的最后一跳路由器。
• 直连路由的下一跳地址并不是其他设备上的接口地址,因为该路由的目的网段为接口所在网段,本接口就是最后一跳,不需要再转发给下一跳,所以在路由表中的下一跳地址就是接口自身地址。
• 使用直连路由进行路由转发时,转发的动作不是交给下一跳,而是查询ARP表项,根据ARP表项封装报文,将报文发送到目的IP。
最优路由条目优选
查看IP路由表
路由表中各个内容的含义
-
Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。
-
Proto(Protocol):该路由的协议类型,也即路由器是通过什么协议获知该路由的。
-
Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
-
Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
-
NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。
-
Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。
Preference用于不同路由协议间路由优先级的比较, Cost用于同一种路由协议内部不同路由的优先级的比较。在业界, Cost也被称为路由度量值( Metric)。
路由的优先级-基本概念
路由的优先级-比较过程
• RTA通过静态、动态路由协议学习到相同的路由条目,比较路由协议优先级, OSPF优先。OSPF的路由条目被加入到路由表。
路由的优先级-常见默认数值
常见路由类型的默认优先级如下:
• 这里例举了一些常见的路由协议优先级,实际上动态路由的类型存在多种,我们将会在后续的学习中详细地了解它们,上表中只展示了OSPF的路由优先级。
度量值-基本概念
度量值-比较过程
路由转发
最长匹配原则
当路由器收到一个P数据包时,会将数据包的目的P地址与自己本地路由表中的所有路由表项进行逐位(Bit-By-Bit)比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。
最长匹配实例
1.
2.
路由转发流程
• 来自10.0.1.0/24网段的IP报文想要去往40.0.1.0/24网段,首先到达网关,网关查找路由表项,确定转发的下一跳、出接口,之后报文转发给R2。报文到达R2之后, R2通过查找路由表项转发给R3, R3收到后查找路由表项,发现IP报文目的IP属于本地接口所在网段,直接本地转发。
IP路由表小结
-
当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会选择路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表。
-
当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的P地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。
-
路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包。
-
数据通信往往是双向的,因此要关注流量的往返(往返路由)。
静态路由
静态路由应用场景
静态路由配置
关联下一跳P的方式
[Huawei]ip route-static ip-address{mask|mask-length nexthop-address
关联出接口的方式
[Huawei]ip route-static ip-address{mask mask-length interface-type interface-number
关联出接口和下一跳IP方式
[Huawei]ip route-static ip-address mask mask-length interface-type interface-number[nexthop-address
在创建静态路由时,可以同时指定出接口和下一跳。对于不同的出接口类型,也可以只指定出接口或只指定下一跳。对于点到点接口(如串口),必须指定出接口。
对于广播接口(如以太网接口)和VT(Virtual-template)接口,必须指定下一跳。
配置举例
缺省路由
-
缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。
-
缺省路由在路由表中的形式为0.0.0.0/0,缺省路由也被叫做默认路由。
缺省路由应用场景
缺省路由一般用于企业网络出口,配置一条缺省路由让出口设备能够转发前往Internet.上任意地址的IP报文。
动态路由
动态路由概述
• 静态路由的缺点是不能自动适应网络拓扑的变化,需要人工干预。
• 动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三
层设备的网络。
动态路由分类
• 根据路由信息传递的内容、计算路由的算法,可以将动态路由协议分为两大类
▫ 距离矢量协议( Distance-Vector Protocol)
▪ RIP
▫ 链路状态协议( Link-State Protocol)
▪ OSPF
▪ IS-IS
▫ BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量( Path Vector)算法。因此在某些场合下, BGP也被称为路径矢量路由协议。
• 根据工作范围不同,又可以分为
▫ 内部网关协议IGP( Interior Gateway Protocol) :在一个自治系统内部运行。 RIP、OSPF、 ISIS为常见的IGP协议。
▫ 外部网关协议EGP( Exterior Gateway Protocol):运行于不同自治系统之间。 BGP是目前最常用的EGP协议。
路由高级特性
路由递归
-
路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。
-
路由递归也被称为路由迭代。
等价路由
-
路由表中存在等价路由之后,前往该目的网段的报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担。
浮动路由-基本概念
-
静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份。
-
浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表。
浮动路由-示例
• RTA-RTB之间的链路正常时, 20.0.0.0/30的两条路由条目都是有效的条目,此时比较优先级,下一跳为10.1.1.2的优先级60,下一跳为10.1.2.2的优先级70,因此下一跳为10.1.1.2的加入路由表。
• RTA-RTB之间的链路故障时, 10.1.1.2不可达,因此下一跳为10.1.1.2的路由失效,此时前往20.0.0.0/30的路由就只存在一条,该条路由将会被选入路由表。前往20.0.0.1的流量将会被转发到10.1.2.2。
CIDR
-
CIDR(classless inter-.domain routing,无类别域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
-
CDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。
路由汇总需求
-
子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题:路由表中的路由条目数量增加。
-
为减少路由条目数量可以使用路由汇总。
• 对于一个大规模的网络来说,路由器或其他具备路由功能的设备势必需要维护大量的路由
表项,为了维护臃肿的路由表,这些设备就不得不耗费大量的资源。 同时, 由于路由表的
规模变大,会导致路由器在查表转发时效率降低。 因此在保证网络中的路由器到各网段都
具备IP可达性的同时, 需要减小设备的路由表规模。一个网络如果具备科学的IP编址,并且
进行合理的规划,是可以利用多种手段减小设备路由表规模的。一个非常常见而又有效的
办法就是使用路由汇总( Route Summarization)。路由汇总又被称为路由聚合( Route
Aggregation) ,是将一组有规律的路由汇聚成一条路由,从而达到减小路由表规模以及优
化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚
之后的这条路由称为汇总路由或聚合路由。
路由汇总简介
• RTA上为了能够前往远端地址,需要为每一个远端网段配置一条明细路由。去往10.1.1.0/24、10.1.2.0/24、 10.1.3.0/24…拥有相同下一跳。将拥有相同下一跳,一组有规律的路由汇总成一条路由,这叫做路由汇总。
• 路由汇总可以有效减少路由表项大小。
汇总计算
-
基于一系列连续的、有规律的P网段,如果需计算相应的汇总路由,且确保得出的汇总路由刚好“囊括”上述P网段,则需保证汇总路由的掩码长度尽可能长。
-
诀窍在于:将明细路由的目的网络地址都换算成二进制,然后排列起来,找出所有目的网络地址中“相同的比特位”。
汇总引发的问题
1.
2.
• 一般来说一条路由,无论是静态的或者是动态的,都需要关联到一个出接口,路由的出接口指的是设备要到达一个目的网络时的出站接口。路由的出接口可以是该设备的物理接口,例如百兆、千兆以太网接口,也可以是逻辑接口,例如VLAN接口( VLAN Interface),或者隧道( Tunnel)接口等。在众多类型的出接口中,有一种接口非常特殊,那就是Null(无效)接口,这种类型的接口只有一个编号,也就是0。 Null0是一个系统保留的逻辑接口,当网络设备在转发某些数据包时,如果使用出接口为Null0的路由,那么这些报文将被直接丢弃,就像被扔进了一个黑洞里,因此出接口为Null0的路由又被称为黑洞路由。
精确汇总
思考题
-
路由器如何优选路由条目?
首先根据preference选择,如果preference相同则继续比较度量值,如果度量值也相同,则都会被加入路由表形成等价路由。
-
如何配置实现浮动路由?
配置一条和被备份的路由目的网段、掩码相同的静态路由,但下一跳不同,最后加上一个preference xx,x值大于被备份路由的preference值即可实现备份路由。
-
将10.1.1.0/24、10.1.3.0/24、10.1.9.0/24汇总之后的网段是?
10.1.0.0/20
OSPF基础
OSPF协议概述
为什么需要动态路由协议?
静态路由是由工程师手动配置和维护的路由条目,命令行简单明确,适用于小型或稳定的网络。 静态路由有以下问题:
1.无法适应规模较大的网络:随着设备数量增加,配置量急剧增加。
2.无法动态响应网络变化:网络发生变化,无法自动收敛网络,需要工程师手动修改。
动态路由协议的分类
BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量( Path Vector)算
法。因此在某些场合下, BGP也被称为路径矢量路由协议。
距离矢量路由协议
1.运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。
2.对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这即是距离矢量算法的本质。
链路状态路由协议
链路状态路由协议-LSA泛洪
与距离矢量路由协议不同,链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)。
链路状态通告,可以简单的理解为每台路由器都产生一个描述自己直连接口状态(包括接
口的开销、与邻居路由器之间的关系等)的通告。
链路状态路由协议-LSDB组建
每台路由器都会产生LSAs,路由器将接收到的LSAs放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过LSDB,掌握了全网的拓扑。
链路状态路由协议-SPF计算
每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的优选路径。
SPF是OSPF路由协议的一个核心算法,用来在一个复杂的网络中做出路由优选的决策。
链路状态路由协议-路由表生成
最后,路由器将计算出来的优选路径,加载进自己的路由表(Routing Table)。
链路状态路由协议总结
• 链路状态路由协议有四个步骤:
▫ 第一步是建立相邻路由器之间的邻居关系。
▫ 第二步是邻居之间交互链路状态信息和同步LSDB。
▫ 第三步是进行优选路径计算。
▫ 第四步是根据最短路径树生成路由表项加载到路由表。
OSPF简介
OSPF简介
• OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的GP协议之一。
• 目前针对IPv4协议使用的是OSPF Version2(RFC2328);针对IPv6协议使用OSPF Version3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPF Version2。
• 运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息。
• OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。
• 每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。
• OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总。
• 多区域的设计使得OSPF能够支持更大规模的网络。
OSPF在园区网络中的应用
OSPF基础术语
OSPF基础术语:区域
• OSPF Area用于标识一个OSPF的区域。
• 区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
OSPF基础术语:Router-ID
• Router-lD(Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。
• Router-D的设定可以通过手工配置的方式,或使用系统自动配置的方式。
• 在实际项目中,通常会通过手工配置方式为设备指定OSPF Router-ID。请注意必须保证在
OSPF域中任意两台设备的Router-ID都不相同。通常的做法是将Router-ID配置为与该设备
某个接口(通常为Loopback接口)的IP地址一致。
OSPF的基础术语:度量值
• OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省时接口Cost值=100Mbit/s除以接口带宽。其中100Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
• 笼统地说,一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。
OSPF协议报文类型
OSPF有五种类型的协议报文。这些报文在OSPF路由器之间交互中起不同的作用。
OSPF三大表项
OSPF三大表项-邻居表
OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表。对于OSPF的邻居表,需要了解:
OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
OSPF的邻居关系通过交互Hello报文建立。
OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peeri查看。
• OSPF邻居表有很多关键信息,例如可以查看对端设备的Router ID和接口地址。更多详细信
息在第二小结” OSPF协议工作原理”展开。
OSPF三大表项-LSDB表
对于OSPF的LSDB表,需要了解:
1.LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
2.Type标识LSA的类型,AdvRoutert标识发送LSA的路由器。
3.使用命令行display ospf lsdb查看LSDB表。
OSPF三大表项-OSPF路由表
对于OSPF的路由表,需要了解:
OSPF路由表和路由器路由表是两张不同的表项。本例中OSPF路由表有三条路由。
OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
使用命令display ospf routing查看OSPF路由表。
OSPF协议工作原理
OSPF路由器之间的关系
• 关于OSPF路由器之间的关系有两个重要的概念,邻居关系和邻接关系。
• 考虑一种简单的拓扑,两台路由器直连。在双方互联接口上激活OSPF,路由器开始发送
及侦听Helo报文。在通过Hello报文发现彼此后,这两台路由器便形成了邻居关系。
• 邻居关系的建立只是一个开始,后续会进行一系列的报文交互,例如前文提到的DD、LSR、LSU和LS ACK等。当两台路由器LSDB同步完成,并开始独立计算路由时,这两台路由器形成了邻接关系。
初识OSPF邻接关系建立过程
OSPF完成邻接关系的建立有四个步骤,建立邻居关系、协商主/从、交互LSDB信息,同步LSDB。
OSPF邻接关系建立流程-1
• 当一台OSPF路由器收到其他路由器发来的首个Hello报文时会从初始Down状态切换为Init
状态。
• 当OSPF路由器收到的Hello报文中的邻居字段包含自己的Router ID时,从Init切换2-way状
态。
OSPF邻接关系建立流程-2&3
• 邻居状态机从2-way转为Exstart状态后开始主从关系选举:
▫ R1向R2发送的第一个DD报文内容为空,其Seq序列号假设为X。
▫ R2也向R1发出第一个DD报文,其Seq序列号假设为Y。
▫ 选举主从关系的规则是比较Router ID,越大越优。 R2的Router ID比R1大, 因此R2成
为真正的主设备。主从关系比较结束后, R1的状态从Exstart转变为Exchange。
• R1邻居状态变为Exchange后, R1发送一个新的DD报文,包含自己LSDB的描述信息,其序
列号采用主设备R2的序列号。 R2收到后邻居状态从Exstart转变为Exchange。
• R2向R1发送一个新的DD报文,包含自己LSDB的描述信息,序列号为Y+1。
• R1作为从路由器需要对主路由R2发送的每个DD报文进行确认,回复报文的序列号与主路由
R2一致。
• 发送完最后一个DD报文后, R1将邻居状态切换为Loading。
OSPF邻接关系建立流程-4
• 邻居状态转变为Loading后, R1向R2发送LSR报文,请求那些在Exchange状态下通过DD报
文发现的,但是在本地LSDB中没有的LSA。
• R2收到后向R1回复LSU。在LSU报文中包含被请求的LSA的详细信息。
• R1收到LSU报文后,向R2回复LS ACK报文,确认已接收到,确保信息传输的可靠性。
• 此过程中R2也会向R1发送LSA请求。当两端LSDB完全一致时,邻居状态变为Full,表示成
功建立邻接关系。
OSPF邻居表回顾
• 如图所示输入display ospf peer命令之后,各项参数含义如下:
▫ OSPF Process 1 with Router ID 1.1.1.1:本地OSPF进程号为1与本端OSPF Router ID
为1.1.1.1
▫ Router ID:邻居OSPF路由器ID
▫ Address:邻居接口地址
▫ GR State:使能OSPF GR功能后显示GR的状态( GR为优化功能),默认为Normal
▫ State:邻居状态,正常情况下LSDB同步完成之后,稳定停留状态为Full
▫ Mode:用于标识本台设备在链路状态信息交互过程中的角色是Master还是Slave
▫ Priority:用于标识邻居路由器的优先级(该优先级用于后续DR角色选举)
▫ DR:指定路由器
▫ BDR:备份指定路由器
▫ MTU:邻居接口的MTU值
▫ Retrans timer interval:重传LSA的时间间隔,单位为秒
▫ Authentication Sequence:认证序列号
OSPF网络类型简介
• 在学习DR和BDR的概念之前,需要首先了解OSPF的网络类型。
• OSPF网络类型是一个非常重要的接口变量,这个变量将影响OSPF在接口上的操作,例如采用什么方式发送OSPF协议报文,以及是否需要选举DR、BDR等。
• 接口默认的OSPF网络类型取决于接口所使用的数据链路层封装。
• 如图所示,OSPF的有四种网络类型,Broadcast、NBMA、P2MP和P2P。
OSPF网络类型
一般情况下,链路两端的OSPF接口网络类型必须一致,否则双方无法建立邻居关系。
OSPF网络类型可以在接口下通过命令手动修改以适应不同网络场景,例如可以将BMA网络类型修改为P2P。
DR与BDR
DR与BDR的背景
• MA(Multi--Access)多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播型多路访问网络(NBMA)。以太网(Ethernet)是一种典型的广播型多路访问网络。
• 在MA网络中,如果每台OSPF路由器都与其他的所有路由器建立OSPF邻接关系,便会导致网络• 中存在过多的OSPF邻接关系,增加设备负担,也增加了网络中泛洪的OSPF报文数量。
• 当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗。
DR与BDR
• 为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份,DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备用指定路由器)和DRotheri路由器。只允许DR、BDR与其他OSPF路由器建立邻接关系。DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态。
• BDR会监控DR的状态,并在当前DR发生故障时接替其角色。
• 选举规则: OSPF DR优先级更高的接口成为该MA的DR,如果优先级相等(默认为1),则
具有更高的OSPF Router-ID的路由器(的接口)被选举成DR,并且DR具有非抢占性。
OSPF域与单区域
• OSPF域(Domain):一系列使用相同策略的连续OSPF网络设备所构成的网络。
• OSPF路由器在同一个区域(Area)内网络中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。
• 如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题:
。LSDB越来越庞大,同时导致OSPF路由表规模增加。路由器资源消耗多,设备性能下降,影响数据转发。
。基于庞大的LSDB进行路由计算变得困难。
。当网络拓扑变更时,LSA全域泛洪和全网SPF重计算带来巨大负担。
OSPF多区域
• OSPF引入区域(Area)的概念,将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网。
• OSPF多区域的设计减小了LSA泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的。
• 在区域边界可以做路由汇总,减小了路由表规模。
• 多区域提高了网络扩展性,有利于组建大规模的网络。
• 区域的分类:区域可以分为骨干区域与非骨干区域。骨干区域即Area0,除Area0以外其他
区域都称为非骨干区域。
• 多区域互联原则:基于防止区域间环路的考虑,非骨干区域与非骨干区域不能直接相连,
所有非骨干区域必须与骨干区域相连。
OSPF路由器类型
• 区域内路由器( Internal Router):该类路由器的所有接口都属于同一个OSPF区域。
• 区域边界路由器ABR( Area Border Router):该类路由器的接口同时属于两个以上的区域,
但至少有一个接口属于骨干区域。
• 骨干路由器( Backbone Router):该类路由器至少有一个接口属于骨干区域。
• 自治系统边界路由器ASBR( AS Boundary Router):该类路由器与其他AS交换路由信息。
只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
OSPF单区域&多区域典型组网
OSPF基础配置命令
1.(系统视图)创建并运行OSPF进程
[Huawei]ospf process-id|router-id router-id]
porcess-id佣于标识OSPF进程,默认进程号为1。OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。router-id用于手工指定设备的1D号。如果没有通过命令指定ID号,系统会从当前接口的IP地址中自动选取一个作为设备的ID号。
2.(OSPF视图)创建并进入OSPF区域
[Huawei]area area-id
area命令用来创建OSPF区域,并进入OSPF区域视图。
ara-id何以是十进制整数或点分十进制格式。采取整数形式时,取值范围是0~4294967295。
3.(OSPF区域视图)指定运行OSPF的接口
[Huawei-ospf-1-area-0.0.0.0]network network-address wildcard-mask
network命令用来指定运行OSPF协议的接口和接口所属的区域。network-address为接口所在的网段地址。wildcard-mask为IP地址的反码,相当于将P地址的掩码反转(0变1,1变0)),例如0.0.0.255表示掩码长度24bit。
4.(接口视图)配置OSPF接口开销
[Huawei-GE1/0/1]ospf cost cost
ospf costi命令用来配置接口上运行OSPF协议所需的开销。缺省情况下,OSPF会根据该接口的带宽自动计算其开销值cost取值范围是1~65535。
5.(OSPF视图)设置OSPF带宽参考值
Huawei-ospf-1]bandwidth-reference value
bandwidth-reference命令用来设置通过公式计算接口开销所依据的带宽参考值。value取值范围是1~2147483648,单位是Mbit/s,缺省值是100Mbit/s。
6.(接口视图)设置接口在选举DR时的优先级
[Huawei-GigabitEthernet0/0/0]ospf dr-priority priority
ospf dr-priority?命令用来设置接口在选举DR时的优先级。priori值越大,优先级越高,取值范围是0~255。