ACL的原理和配置
ACL技术概述
技术背景
保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制
1.ACL概述
ACL是由一个系列permit或deny语句组成的、有序规则的列表。
ACL是一个匹配工具,能够对报文进行匹配和区分。
• 通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻
击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠
性。
▫ ACL是由permit或deny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相
关字段实现对报文的分类。
▫ ACL是能够匹配一个IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等
元素的基础性工具; ACL还能够用于匹配路由条目。
• 在本章课程中主要通过流量过滤来介绍ACL。
ACL的基本概念及其工作原理
ACL的组成
ACL是由一个系列permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。
• ACL的组成:
▫ ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,
用来标识ACL。不同分类的ACL编号范围不同,这个后面具体讲。
▫ 规则:前面提到了,一个ACL通常由若干条“ permit/deny”语句组成,每条语句就是
该ACL的一条规则。
▫ 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以
自定义,也可以系统自动分配。 ACL规则的编号范围是0~ 4294967294,所有规则均
按照规则编号从小到大进行排序。
▫ 动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。 permit指
“允许”, deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理
动作的含义也有所不同。
▪ 比如: ACL如果与流量过滤技术结合使用(即流量过滤中调用ACL), permit就
是“允许通行”的意思, deny就是“拒绝通行”的意思。
▫ 匹配项: ACL定义了极其丰富的匹配项。例子中体现的源地址, ACL还支持很多其他
规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类
型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口
号)等。
规则编号
• 规则编号和步长的概念:
▫ 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以
自定义,也可以系统自动分配。
▫ 步长:系统自动为ACL规则分配编号时,每个相邻规则编号之间会有一个差值,这个
差值称为“步长”。缺省步长为5,所以规则编号就是5/10/15…以此类推。
▪ 如果手工指定了一条规则,但未指定规则编号,系统就会使用大于当前ACL内
最大规则编号且是步长整数倍的最小整数作为规则编号。
▪ 步长可以调整,如果将步长改为2,系统则会自动从当前步长值开始重新排列规
则编号,规则编号就变成2、 4、 6…。
• 那步长的作用是什么? 直接rule 1/2/3/4…为什么不可以?
▫ 先来看一个小题目:如果希望增加一条规则,该如何处理?
▫ 可以在rule 10和rule 15之间,手工加入一条rule 11。
▫ 因此,设置一定长度的步长的作用,是方便后续在旧规则之间插入新的规则。
通配符
• 当进行IP地址匹配的时候,后面会跟着32位掩码位,这32位称为通配符。
• 通配符,也是点分十进制格式,换算成二进制后,“ 0”表示“匹配”,“ 1”表示“不关心”。
• 具体看下这2条规则:
▫ rule 5: 拒绝源IP地址为10.1.1.1报文通过——因为通配符为全0,所以每一位都要严格
匹配,因此匹配的是主机IP地址10.1.1.1;
▫ rule 15:允许源IP地址为10.1.1.0/24网段地址的报文通过——因为通配符:
0.0.0.11111111,后8位为1,表示不关心,因此10.1.1.xxxxxxxx 的后8位可以为任意
值,所以匹配的是10.1.1.0/24网段。
• 例子: 如果要精确匹配192.168.1.1/24这个IP地址对应的网段地址,通配符是多少?
▫ 可以得出:网络位需要严格匹配,主机位无所谓,因此通配符为“ 0.0.0.255”。
• 如果想匹配192.168.1.0/24网段中的奇数IP地址,通配符该怎么写呢?
▫ 我们先来看一看,奇数IP地址都有哪些: 192.168.1.1、 192.168.1.5、 192.168.1.11……
▫ 后八位写成二进制: 192.168.1.00000001、 192.168.1.00000101、
192.168.1.00001011……
▫ 可以看出共同点:最后8位的高7位是任意值,最低位固定为1,因此答案是:
192.168.1.1 0.0.0.254( 0.0.0.11111110)
• 这就得出了通配符的一个特点:通配符中的1或者0是可以不连续的。
• 还有两个特殊的通配符:
▫ 当通配符全为0来匹配IP地址时,表示精确匹配某个IP地址;
▫ 当通配符全为1来匹配0.0.0.0地址时,表示匹配了所有IP地址。
ACL的分类与标识
基于ACL规则定义方式的分类
基于ACL标识方法的分类
• 基于ACL规则定义方式的划分,可分为:
▫ 基本ACL、高级ACL、二层ACL、用户自定义ACL和用户ACL。
• 基于ACL标识方法的划分,则可分为:
▫ 数字型ACL和命名型ACL。
• 注意:用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了
便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,
也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定
编号,系统则会自动为其分配一个数字型ACL的编号。
基本ACL&高级ACL
• 基本ACL:
▫ 主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。
▫ 比如这个例子,创建的是acl 2000,就意味着创建的是基本ACL。
• 高级ACL:
▫ 可以根据IP报文中的源IP地址、目的IP地址、协议类型, TCP或UDP的源目端口号等
元素进行匹配,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本
ACL定义出更精确、更复杂、更灵活的规则。
ACL的匹配机制
• ACL的匹配机制概括来说就是:
▫ 配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。
▫ 一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。
• 匹配流程:首先系统会查找设备上是否配置了ACL。
▫ 如果ACL不存在,则返回ACL匹配结果为:不匹配。
▫ 如果ACL存在,则查找设备是否配置了ACL规则。
▪ 如果规则不存在,则返回ACL匹配结果为:不匹配。
▪ 如果规则存在,则系统会从ACL中编号最小的规则开始查找。
- 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹
配(允许)。
- 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配
(拒绝)。
- 如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最
后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
• 从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和
“不匹配”。
▫ 匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹
配的动作是“ permit”还是“ deny”,都称为“匹配”,而不是只是匹配上permit规则
才算“匹配”。
▫ 不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所
有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
• 匹配原则:一旦命中即停止匹配。
ACL的匹配顺序及匹配结果
配置顺序(config模式)
系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易匹配
• 一条ACL可以由多条“ deny或permit”语句组成,每一条语句描述一条规则,这些规则可能
存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。
• 华为设备支持两种匹配顺序:自动排序( auto模式)和配置顺序( config模式)。缺省的
ACL匹配顺序是config模式。
▫ 自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,
并按照精确度从高到低的顺序进行报文匹配。 ——这个比较复杂,这里就不具体展开
了,感兴趣的同学可以课后查看资料。
▫ 配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容
易被匹配。 ——这个就是我们前面提到的匹配顺序。
▪ 如果后面又添加了一条规则,则这条规则会被加入到相应的位置,报文仍然会
按照从小到大的顺序进行匹配。
• 匹配结果:(如图所示,以192.168.1.3/24为例)
▫ 首先理解ACL 2000的含义:
▪ rule 1:允许源IP地址为192.168.1.1的报文
▪ rule 2:允许源IP地址为192.168.1.2的报文
▪ rule 3:拒绝源IP地址为192.168.1.3的报文
▪ rule 4:允许其他所有IP地址的报文
▫ 当源IP地址为192.168.1.3的报文经过配置了ACL的设备时:
▪ 首先查看rule 1,发现不匹配;
▪ 继续查看rule 2,发现仍不匹配;
▪ 继续查看rule 3,发现匹配,且是“拒绝”动作。
• 注意: ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许
(permit)”及“拒绝 (deny)”的内涵和作用也会不同。例如,当ACL技术与流量过滤技术
结合使用时, permit就是“允许通行”的意思, deny就是“拒绝通行”的意思。
ACL的匹配位置
入站(Inbound)及出站(Outbound)方向
ACL的基础配置及应用
基本ACL的基础配置命令
• 创建基本ACL
• [Huawei] acl [ number ] acl-number [ match-order config ]
▫ acl-number:指定访问控制列表的编号。
▫ match-order config:指定ACL规则的匹配顺序, config表示配置顺序。
• [Huawei] acl name acl-name { basic | acl-number } [ match-order config ]
▫ acl-name:指定创建的ACL的名称。
▫ basic:指定ACL的类型为基本ACL。
• 配置基本ACL规则
• [Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address
source-wildcard | any } | time-range time-name ]
▫ rule-id:指定ACL的规则ID。
▫ deny:指定拒绝符合条件的报文。
▫ permit:指定允许符合条件的报文。
▫ source { source-address source-wildcard | any }:指定ACL规则匹配报文的源地址信
息。如果不配置,表示报文的任何源地址都匹配。其中:
▪ source-address:指定报文的源地址。
▪ source-wildcard:指定源地址通配符。
▪ any:表示报文的任意源地址。相当于source-address为0.0.0.0或者sourcewildcard为 255.255.255.255。
▫ time-range time-name:指定ACL规则生效的时间段。其中, time-name表示ACL规
则生效时间段名称。如果不指定时间段,表示任何时间都生效。
高级ACL的基础配置命令
• 创建高级ACL
• [Huawei] acl [ number ] acl-number [ match-order config ]
▫ acl-number:指定访问控制列表的编号。
▫ match-order config:指定ACL规则的匹配顺序, config表示配置顺序。
• [Huawei] acl name acl-name { advance | acl-number } [ match-order config ]
▫ acl-name:指定创建的ACL的名称。
▫ advance:指定ACL的类型为高级ACL。
• 配置高级ACL的规则
• 当参数protocol为IP时:
▫ rule [ rule-id ] { deny | permit } ip [ destination { destination-address destinationwildcard | any } | source { source-address source-wildcard | any } | time-range
time-name | [ dscp dscp | [ tos tos | precedence precedence ] ] ]
▪ ip :指定ACL规则匹配报文的协议类型为IP。
▪ destination { destination-address destination-wildcard | any }:指定ACL规则
匹配报文的目的地址信息。如果不配置,表示报文的任何目的地址都匹配。
▪ dscp dscp:指定ACL规则匹配报文时,区分服务代码点( Differentiated
Services Code Point),取值为: 0~63。
▪ tos tos:指定ACL规则匹配报文时,依据服务类型字段进行过滤,取值为:
0~15。
▪ precedence precedence:指定ACL规则匹配报文时,依据优先级字段进行过滤。
precedence表示优先级字段值,取值为: 0~7。
• 当参数protocol为TCP时:
▫ rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ destination
{ destination-address destination-wildcard | any } | destination-port { eq port | gt
port | lt port | range port-start port-end } | source { source-address sourcewildcard | any } | source-port { eq port | gt port | lt port | range port-start portend } | tcp-flag { ack | fin | syn } * | time-range time-name ] *
▪ protocol-number | tcp:指定ACL规则匹配报文的协议类型为TCP。可以采用数
值6表示指定TCP协议。
▪ destination-port { eq port | gt port | lt port | range port-start port-end}:指
定ACL规则匹配报文的UDP或者TCP报文的目的端口,仅在报文协议是TCP或者
UDP时有效。如果不指定,表示TCP/UDP报文的任何目的端口都匹配。其中:
- eq port:指定等于目的端口;
- gt port:指定大于目的端口;
- lt port:指定小于目的端口;
- range port-start port-end:指定源端口的范围。
▪ tcp-flag:指定ACL规则匹配报文的TCP报文头中SYN Flag。
AAA原理及配置
AAA概述
AAA基本概念
AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。
• 认证( Authentication ):验证用户是否可以获得访问权,确定哪些用户可以访问网络。 • 授权( Authorization ):授权用户可以使用哪些服务。 • 计费( Accounting ):记录用户使用网络资源的情况。 • 网络运营商( ISP )需要验证家庭宽带用户的账号密码之后才允许其上网,并记录用户的上 网时长或上网流量等内容,这就是 AAA 技术最常见的应用场景。AAA常见架构
AAA常见网络架构中包括用户、NAS、AAA服务器
• NAS 基于域来对用户进行管理,每个域都可以配置不同的认证、授权和计费方案,用于对 该域下的用户进行认证、授权和计费。 • 每个用户都属于某一个域。用户属于哪个域是由用户名中的域名分隔符 @ 后的字符串决定。 例如,如果用户名是 user1@domain1 ,则用户属于 domain1 域。如果用户名后不带有 @ , 则用户属于系统缺省域。认证
AAA支持的认证方式有:不认证,本地认证,远端认证。
• AAA 支持三种认证方式 : ▫ 不认证:完全信任用户,不对用户身份进行合法性检查。鉴于安全考虑,这种认证方 式很少被采用。 ▫ 本地认证:将本地用户信息(包括用户名、密码和各种属性)配置在 NAS 上,此时 NAS 就是 AAA Server 。本地认证的优点是处理速度快、运营成本低;缺点是存储信息 量受设备硬件条件限制。这种认证方式常用于对用户登录设备进行管理,如 Telnet , FTP 用户等。 ▫ 远端认证:将用户信息(包括用户名、密码和各种属性)配置在认证服务器上。支持 通过 RADIUS 协议或 HWTACACS 协议进行远端认证。 NAS 作为客户端,与 RADIUS 服 务器或 HWTACACS 服务器进行通信。授权
AA支持的授权方式有:不授权,本地授权,远端授权。
授权信息包括:用户所属组,所属VLAN,ACL编号等
• AAA授权功能赋予用户访问的特定网络或设备的权限。 AAA 支持以下授权方式: ▫ 不授权:不对用户进行授权处理。 ▫ 本地授权:根据NAS 上对应域下的配置进行授权。 ▫ 远端授权:支持由RADIUS 服务器授权或 HWTACACS 服务器授权。 ▪ HWTACACS 授权,使用 HWTACACS 服务器对所有用户授权。 ▪ RADIUS 授权,只支持对通过 RADIUS 服务器认证的用户授权。 RADIUS 协议的认 证和授权是绑定在一起的,不能单独使用RADIUS 进行授权。 • 当采用远端授权时,用户可以同时从授权服务器和 NAS 获取授权信息。 NAS 配置的授权信 息优先级比授权服务器下发的授权信息低。计费
计费功能用于监控授权用户的网络行为和网络资源的使用情况
AAA支持的计费方式有:不计费,远端计费
• AAA 支持以下两种计费方式: ▫ 不计费:为用户提供免费上网服务,不产生相关活动日志。 ▫ 远端计费:支持通过 RADIUS 服务器或 HWTACACS 服务器进行远端计费。AAA实现协议-RADIUS
AAA可以用多种协议来实现,最常用的是RADIUS协议
• AAA 可以用多种协议来实现,最常用的是 RADIUS 协议。 RADIUS 是一种分布式的、客户端 / 服务器结构的信息交互协议,可以实现对用户的认证、计费和授权功能。 • 通常由 NAS 作为 RADIUS 客户端,负责传输用户信息到指定的 RADIUS 服务器,然后根据从 服务器返回的信息进行相应处理(如接受 / 拒绝用户接入)。 • RADIUS 服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信 息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受 / 拒绝 认证请求)。 RADIUS 使用 UDP ( User Datagram Protocol )作为传输协议,并规定 UDP 端 口 1812 、 1813 分别作为认证、计费端口,具有良好的实时性;同时也支持重传机制和备用 服务器机制,从而具有较好的可靠性。 • RADIUS 客户端与服务器间的消息流程如下: 1. 当用户接入网络时,用户发起连接请求,向 RADIUS 客户端(即 NAS )发送用户名和 密码。 2. RADIUS客户端向RADIUS 服务器发送包含用户名和密码信息的认证请求报文。 3. RADIUS服务器接收到合法的请求后,完成认证,并把所需的用户授权信息返回给客 户端;对于非法的请求,RADIUS 服务器返回认证失败的信息给客户端。 4. RADIUS客户端通知用户认证是否成功。 5. RADIUS客户端根据接收到的认证结果接入 / 拒绝用户。如果允许用户接入,则 RADIUS客户端向 RADIUS 服务器发送计费开始请求报文。 6. RADIUS服务器返回计费开始响应报文,并开始计费。 7. 用户开始访问网络资源。 8. 当用户不再想要访问网络资源时,用户发起下线请求,请求停止访问网络资源。 9. RADIUS客户端向 RADIUS 服务器提交计费结束请求报文。 10. RADIUS服务器返回计费结束响应报文,并停止计费。 11. RADIUS客户端通知用户访问结束,用户结束访问网络资源。AAA常见应用场景
AAA配置实现
AAA配置
1.进入AAA视图
[Huawei]aaa
2.创建认证方案
[Huawei-aaa]authentication-scheme authentication-scheme-name
创建认证方案并进入相应的认证方案视图
[Huawei-aaa-authentication-scheme-name]authentication-mode {hwtacacs | local | radius}
配置认证方式,local指定认证方式为本地认证。缺省情况下,认证方式为本地认证。
[Huawei-aaa]domain domain-name
创建domain并进入相应的domain视图
[Huawei-aaa-domain-name]authentication-scheme authentication-scheme-name
在相应的domain视图下绑定认证方案
4.创建用户
[Huawei-aaa]local-user user-name password cipher password
创建本地用户,并配置本地用户的密码:
·如果用户名中带域名分隔符,如@,则认为@前面的部分是用户名,后面部分是域名
·如果没有@,则整个字符串为用户名,域为默认域 5.配置用户接入类型
[Huawei-aaa]local-user user-name service-type {{terminal | telnet | ftp | ssh | snmp |http} | ppp | none}
设置本地用户的接入类型。缺省情况下,本地用户关闭所有的接入类型。
6.配置用户级别
[Huawei-aaa]local-user user-name privilege level level
指定本地用户的权限级别。
AAA配置案例
在设备R1配置用户密码和级别,是主机A可以通过配置的用户名和密码远程登录到设备
验证
WLAN概述
wlan概述
什么是WLAN
wlan即Wireless LAN(无线局域网),是指通过无线技术构建的无线局域网络。WLAN广义上是指以无线电波、激光、红外线等无线信号来代替有线局域网中的部分或全部传输截止所构成的网络。
通过WLAN技术,用户可以方便地接入到无线网络,并在无线网络覆盖区域内自由移动,彻底摆脱有限网络的束缚。
• WLAN即Wireless LAN(无线局域网),是指通过无线技术构建的无线局域网络。
▫ 这里指的无线技术不仅仅包含Wi-Fi,还有红外、蓝牙、 ZigBee等等。
▫ 通过WLAN技术,用户可以方便地接入到无线网络,并在无线网络覆盖区域内自由移
动,摆脱有线网络的束缚。
• 无线网络根据应用范围可分为WPAN、 WLAN、 WMAN、 WWAN。
▫ WPAN (Wireless Personal Area Network):个人无线网络,常用技术有: Bluetooth、
ZigBee、 NFC、 HomeRF、 UWB。
▫ WLAN (Wireless Local Area Network):无线局域网,常用技术有: Wi-Fi。 (WLAN
中也会使用WPAN的相关技术。 )
▫ WMAN (Wireless Metropolitan Area Network):无线城域网,常用技术有: WiMax。
▫ WWAN (Wireless Wide Area Network):无线广域网,常用技术有: GSM、 CDMA、
WCDMA、 TD-SCDMA、 LTE、 5G。
• WLAN的优点:
▫ 网络使用自由:凡是自由空间均可连接网络,不受限于线缆和端口位置。在办公大楼、
机场候机厅、度假村、商务酒店、体育场馆、咖啡店等场所尤为适用。
▫ 网络部署灵活:对于地铁、公路交通监控等难于布线的场所,采用WLAN进行无线网
络覆盖,免去或减少了繁杂的网络布线,实施简单,成本低,扩展性好。
• 本课程介绍的WLAN特指通过Wi-Fi技术基于802.11标准系列,利用高频信号(例如2.4GHz
或5GHz)作为传输介质的无线局域网。
IEEE802.11、WLAN与Wi-Fi
• IEEE 802.11标准聚焦在TCP/IP对等模型的下两层:
▫ 数据链路层:主要负责信道接入、寻址、数据帧校验、错误检测、安全机制等内容。
▫ 物理层:主要负责在空口(空中接口)中传输比特流,例如规定所使用的频段等。
• Wi-Fi联盟成立于1999年,当时的名称叫做Wireless Ethernet Compatibility Alliance
( WECA)。在2002年10月,正式改名为Wi-Fi Alliance。
• IEEE 802.11第一个版本发表于1997年。此后,更多的基于IEEE 802.11的补充标准逐渐被
定义,最为熟知的是影响Wi-Fi代际演进的标准: 802.11b、 802.11a、 802.11g、 802.11n、
802.11ac等。
• 在IEEE 802.11ax标准推出之际, Wi-Fi联盟将新Wi-Fi规格的名字简化为Wi-Fi 6,主流的
IEEE 802.11ac改称Wi-Fi 5、 IEEE 802.11n改称Wi-Fi 4,其他世代以此类推。
Wi-Fi在办公场景的发展趋势
• 第一阶段:初级移动办公时代,无线作为有线的补充
▫ WaveLAN技术的应用可以被认为是最早的企业WLAN雏形。早期的Wi-Fi技术主要应
用在类似“无线收音机”这样的物联设备上,但是随着802.11a/b/g标准的推出,无
线连接的优势越来越明显。企业和消费者开始认识到Wi-Fi技术的应用潜力,无线热
点开始出现在咖啡店、机场和酒店。
▫ Wi-Fi也在这一时期诞生,它是Wi-Fi联盟的商标,该联盟最初的目的是为了推动
802.11b标准的制定,并在全球范围内推行Wi-Fi产品的兼容认证。随着标准的演进和
遵从标准产品的普及,人们往往将Wi-Fi等同于802.11标准。
▫ 802.11标准是众多WLAN技术中的一种,只是802.11标准已成为业界的主流技术,所
以人们提到WLAN时,通常是指使用Wi-Fi技术的WLAN。
▫ 这是WLAN应用的第一阶段,主要是解决“无线接入”的问题,核心价值是摆脱有线
的束缚,设备在一定范围内可以自用移动,用无线网络延伸了有线网络。但是这一阶
段的WLAN对安全、容量和漫游等方面没有明确的诉求,接入点( Access Point, AP)
的形态还是单个接入点,用于单点组网覆盖。通常称单个接入点架构的AP为FAT AP。
WLAN的基本概念
WLAN设备介绍
• 华为无线局域网产品形态丰富,覆盖室内室外、家庭企业等各种应用场景,提供高速、安
全和可靠的无线网络连接。
• 家庭WLAN产品:
▫ 家庭Wi-Fi路由器:通过把有线网络信号转换成无线信号,供家庭电脑、手机等设备
接收,实现无线上网功能。
• 企业WLAN产品:
▫ 无线接入点 (AP, Access Point)
▪ 一般支持FAT AP(胖AP)、 FIT AP(瘦AP)和云管理AP三种工作模式,根据
网络规划的需求,可以灵活地在多种模式下切换。
▪ FAT AP:适用于家庭,独立工作,需单独配置,功能较为单一,成本低。独立
完成用户接入、认证、数据安全、业务转发和QoS等功能。
▪ FIT AP:适用于大中型企业,需要配合AC使用,由AC统一管理和配置,功能丰
富,对网络维护人员的技能要求高。用户接入、 AP上线、认证、路由、 AP管理、
安全协议、 QoS等功能需要同AC配合完成。
▪ 云管理:适用于中小型企业,需要配合云管理平台使用,由云管理平台统一管
理和配置,功能丰富,即插即用,对网络维护人员的技能要求低。
▫ 无线接入控制器 (AC, Access Controller)
▪ 一般位于整个网络的汇聚层,提供高速、安全、可靠的WLAN业务。
▪ 提供大容量、 高性能、高可靠性、易安装、易维护的无线数据控制业务,具有
组网灵活、绿色节能等优势。
基本的WLAN组网架构
• WLAN网络架构分有线侧和无线侧两部分,有线侧是指AP上行到Internet的网络使用以太网
协议,无线侧是指STA到AP之间的网络使用802.11协议。
• 无线侧接入的WLAN网络架构为集中式架构。从最初的FAT AP架构,演进为AC+FIT AP架构。
▫ FAT AP (胖AP)架构
▪ 这种架构不需要专门的设备集中控制就可以完成无线用户的接入、业务数据的
加密和业务数据报文的转发等功能,因此又称为自治式网络架构。
▪ 适用范围:家庭
▪ 特点: AP独立工作,需要单独配置,功能较为单一,成本低。
▪ 缺点:随着WLAN覆盖面积增大,接入用户增多,需要部署的FAT AP数量也会
增多,但FAT AP是独立工作的,缺少统一的控制设备,因此管理维护这些FAT
AP就十分麻烦。
▫ AC+FIT AP (瘦AP)架构
▪ 这种架构中, AC负责WLAN的接入控制、转发和统计、 AP的配置监控、漫游管
理、 AP的网管代理、安全控制; FIT AP负责802.11报文的加解密、 802.11的物
理层功能、接受AC的管理等简单功能。
▪ 适用范围:大中型企业
▪ 特点: AP需要配合AC使用,由AC统一管理和配置,功能丰富,对网络运维人
员的技能要求高。
敏捷分布式AP架构
有线侧组网概念:CAPWAP协议
• 为满足大规模组网的要求,需要对网络中的多个AP进行统一管理, IETF成立了CAPWAP工
作组,最终制定CAPWAP协议。该协议定义了AC如何对AP进行管理、业务配置,即AC与
AP间首先会建立CAPWAP隧道,然后AC通过CAPWAP隧道来实现对AP的集中管理和控制。
• CAPWAP是基于UDP进行传输的应用层协议。
▫ CAPWAP协议在传输层运输两种类型的消息:
▪ 业务数据流量, 封装转发无线数据帧 。 ——通过CAPWAP数据隧道。
▪ 管理流量, 管理AP和AC之间交换的管理消息 。 ——通过CAPWAP控制隧道。
▫ CAPWAP数据和控制报文基于不同的UDP端口发送:
▪ 管理流量端口为UDP端口5246。
▪ 业务数据流量端口为UDP端口5247。
有线侧组网概念:AP-AC组网方式
AP和AC间的组网分为:二层组网和三层组网
• AP-AC组网:二层是指AP和AC之间是二层组网,三层是指AC和AP之间是三层组网;二层
组网AP可以通过二层广播,或者DHCP过程,即插即用上线;三层网络下, AP无法直接发
现AC,需要通过DHCP或DNS方式动态发现,或者配置静态IP。
• 在实际组网中,一台AC可以连接几十甚至几百台AP,组网一般比较复杂。比如在企业网络
中, AP可以布放在办公室,会议室,会客间等场所,而AC可以安放在公司机房。这样, AP
和AC之间的网络就是比较复杂的三层网络。因此,在大型组网中一般采用三层组网。
有线侧组网概念:AC连接方式
AC连接方式分为:直连式组网和旁挂式组网
• AC连接方式:直连模式下AC部署在用户的转发路径上,旁挂则相反;直连模式用户流量要
经过AC,会消耗AC转发能力,旁挂一般流量不会经过AC。
• 直连式组网:
▫ 采用这种组网方式,对AC的吞吐量以及处理数据能力要求比较高,否则AC会是整个
无线网络带宽的瓶颈。
▫ 但用此种组网,组网架构清晰,组网实施起来简单。
• 旁挂式组网:
▫ 由于实际组网中,大部分不是早期就规划好无线网络,无线网络的覆盖架设大部分是
后期在现有网络中扩展而来。而采用旁挂式组网就比较容易进行扩展,只需将AC旁挂
在现有网络中,比如旁挂在汇聚交换机上,就可以对终端AP进行管理。所以此种组网
方式使用率比较高。
▫ 在旁挂式组网中, AC只承载对AP的管理功能,管理流封装在CAPWAP隧道中传输。
数据业务流可以通过CAPWAP数据隧道经AC转发,也可以不经过AC转发直接转发,
后者无线用户业务流经汇聚交换机由汇聚交换机传输至上层网络。
无线侧组网概念:无线通信系统
无线通信系统中,信息可以是图像、文字、声音等。信息需要先经过信源编码转换为方便于电路计算和处理的数字信号,再经过信道编码和调制,转换为无线电波发射出去
• 编码:
▫ 信源编码:将最原始的信息,经过对应的编码,转换为数字信号的过程。
▫ 信道编码:是一种对信息纠错、检错的技术,可以提升信道传输的可靠性。信息在无
线传输过程中容易受到噪声的干扰,导致接收信息出错,引入信道编码能够在接收设
备上最大程度地恢复信息,降低误码率。
• 调制:将数字信号叠加到高频振荡电路产生的高频信号上,才能通过天线转换成无线电波
发射出去。叠加动作就是调制的过程。
• 信道:传输信息的通道,无线信道就是空间中的无线电波。
• 空中接口:简称空口,无线信道使用的接口。发送设备和接收设备使用接口和信道连接,
对于无线通信,接口是不可见的,连接着不可见的空间。
无线侧组网概念:无线电磁波
•无线电磁波是频率介于3赫兹和约300G赫兹之间的电磁波,也叫作射频电波,或简称射频、射电。无线电技术将声音讯号或其他信号经过转换,利用无线电磁波传播。
•WLAN技术就是通过无线电磁波在空间中传输信息。当前我们使用的频段是:
▫ 2.4GHz频段(2.4GHz~2.4835GHz);
▫ 5GHz频段(5.15GHz~5.35GHz,5.725GHz~5.85GHz)。
• 极低频 (3Hz–30Hz):潜艇通讯或直接转换成声音。
• 超低频 (30Hz–300Hz) :直接转换成声音或交流输电系统( 50-60赫兹)。
• 特低频 (300Hz–3KHz) :矿场通讯或直接转换成声音。
• 甚低频 (3KHz–30KHz) :直接转换成声音、超声、地球物理学研究。
• 低频 (30KHz–300KHz) :国际广播。
• 中频 (300KHz–3MHz) :调幅(AM)广播、海事及航空通讯。
• 高频 (3MHz–30MHz) :短波、民用电台。
• 甚高频 (30MHz–300MHz) :调频(FM)广播、电视广播、航空通讯。
• 特高频 (300MHz–3GHz) :电视广播、无线电话通讯、无线网络、微波炉。
• 超高频 (3GHz–30GHz) :无线网络、雷达、人造卫星接收。
• 极高频 (30GHz–300GHz) :射电天文学、遥感、人体扫描安检仪。
• 300GHz以上:红外线、可见光、紫外线、射线等。
无线侧组网概念:无线信道
信道是传输信息的通道,无线信道就是空间中的无线电磁波。无线电磁波无处不在,如果随意使用频谱资源,那将带来无穷无尽的干扰问题,所以无线通信协议处理要定义出允许使用的频段,还要精确划分出频率范围,每个频率范围就是信道。
• WLAN中, AP的工作状态会受到周围环境的影响。例如,当相邻AP的工作信道存在重叠频
段时,某个AP的功率过大会对相邻AP造成信号干扰。
• 通过射频调优功能,动态调整AP的信道和功率,可以使同一AC管理的各AP的信道和功率保
持相对平衡,保证AP工作在最佳状态。
无线侧组网概念:BSS/SSID/BSSID
• BSS (Basic Service Set):
▫ 无线网络的基本服务单元,通常由一个AP和若干STA组成, BSS是802.11网络的基本
结构。由于无线介质共享性, BSS中报文收发需携带BSSID( MAC地址)。
• 基本服务集标识符BSSID( Basic Service Set Identifier):
▫ AP上的数据链路层MAC地址。
▫ 终端要发现和找到AP,需要通过AP的一个身份标识,这个身份标识就是BSSID。
▫ 为了区分BSS,要求每个BSS都有唯一的BSSID,因此使用AP的MAC地址来保证其唯
一性。
• 服务集标识符SSID( Service Set Identifier):
▫ 表示无线网络的标识,用来区分不同的无线网络。例如,当我们在笔记本电脑上搜索
可接入无线网络时,显示出来的网络名称就是SSID。
▫ 如果一个空间部署了多个BSS,终端就会发现多个BSSID,只要选择加入的BSSID就行。
但是做选择的是用户,为了使得AP的身份更容易辨识,则用一个字符串来作为AP的
名字。这个字符串就是SSID。
无线侧组网基本概念:VAP
• 虚拟接入点VAP( Virtual Access Point):
▫ 是AP设备上虚拟出来的业务功能实体。用户可以在一个AP上创建不同的VAP来为不
同的用户群体提供无线接入服务。
• VAP简化了WLAN的部署,但不意味VAP越多越好,要根据实际需求进行规划。一味增加
VAP的数量,不仅要让用户花费更多的时间找到SSID,还会增加AP配置的复杂度。而且
VAP并不等同于真正的AP,所有的VAP都共享这个AP的软件和硬件资源,所有VAP的用户
都共享相同的信道资源,所以AP的容量是不变的,并不会随着VAP数目的增加而成倍的增加。
无线侧组网概念:ESS
• ESS (Extend Service Set):
▫ 采用相同的SSID的多个BSS组成的更大规模的虚拟BSS。
▫ 用户可以带着终端在ESS内自由移动和漫游,不管用户移动到哪里,都可以认为使用
的同一个WLAN。
• WLAN漫游:
▫ 指STA在同属一个ESS的不同AP的覆盖范围之间移动且保持用户业务不中断的行为。
▫ WLAN网络的最大优势就是STA不受物理介质的影响,可以在WLAN覆盖范围内四处
移动并且能够保持业务不中断。同一个ESS内包含多个AP设备,当STA从一个AP覆盖
区域移动到另外一个AP覆盖区域时,利用WLAN漫游技术可以实现STA用户业务的平
滑切换。
WLAN的工作原理
WLAN工作流程概述
WLAN工作流程:步骤1
AP获取IP地址
AP获取IP地址:DHCP方式
CAPWAP隧道建立
• CAPWAP隧道可以实现:
▫ AP与AC间的状态维护;
▫ AC对AP进行管理和业务配置下发;
▫ 业务数据经过CAPWAP隧道集中到AC上转发。
• AP发现AC阶段:
▫ 静态方式: AP上预先配置了AC的静态IP地址列表。 AP上线时, AP分别发送Discovery
Request单播报文到所有预配置列表对应IP地址的AC。然后AP通过接收到AC返回的
Discovery Response报文,选择一个AC开始建立CAPWAP隧道。
▫ 动态方式:分为DHCP方式、 DNS方式和广播方式,其中本章主要介绍DHCP方式和
广播方式。
AP动态发现AC
• DHCP方式:
▫ 通过DHCP的四步交互过程,获取AC的IP地址:
▪ 在没有预配置AC的IP列表时,则启动AP动态AC发现机制。通过DHCP获取IP地
址,并通过DHCP协议中的Option返回AC地址列表(在DHCP服务器上配置
DHCP响应报文中携带Option 43,且Option 43携带AC的IP地址列表)。
▪ 首先是AP发送DHCP Discover广播报文,请求DHCP Server响应,在DHCP服务
器侦听到DHCP Discover报文后,它会从没有租约的地址范围中,选择最前面
的闲置IP,连同其他TCP/IP设定,响应AP一个DHCP Offer报文,该报文中会包
含一个租约期限的信息。
▪ 由于DHCP Offer报文既可以是单播报文,也可以是广播报文,当AP端收到多台
DHCP Server的响应时,只会挑选其中一个Offer(通常是最先抵达的那个),然
后向网络中发送一个DHCP Request广播报文,告诉所有的Offer,并重新发送
DHCP,将指定接收哪一台服务器提供的IP地址。
▪ 当DHCP Server接收到AP的Request报文之后,会向AP发送一个DHCP Ack响应,
该报文中携带的信息包括了AP的IP地址,租约期限,网关信息,以及DNS
Server IP等,以此确定租约的正式生效,就此完成DHCP的四步交互工作。
建立CAPWAP隧道
AP接入控制
• 在收到AP发送的Join Request报文之后, AC会进行AP合法性的认证,认证通过则添加相应
的AP设备。
• AC上支持三种对AP的认证方式:
▫ MAC认证
▫ 序列号( SN)认证
▫ 不认证
• AC上添加AP的方式有三种:
▫ 离线导入AP:预先配置AP的MAC地址和SN,当AP与AC连接时,如果AC发现AP和预
先增加的AP的MAC地址和SN匹配,则AC开始与AP建立连接。
▫ 自动发现AP:当配置AP的认证模式为不认证或配置AP的认证模式为MAC或SN认证且
将AP加入AP白名单中,则当AP与AC连接时, AP将被AC自动发现并正常上线。
▫ 手工确认未认证列表中的AP:当配置AP的认证模式为MAC或SN认证,但AP没有离线
导入且不在已设置的AP白名单中,则该AP会被记录到未授权的AP列表中。需要用户
手工确认后,此AP才能正常上线。
AP的版本升级
• 在AC上给AP升级方式:
▫ 自动升级:主要用于AP还未在AC中上线的场景。通常先配置好AP上线时的自动升级
参数,然后再配置AP接入。 AP在之后的上线过程中会自动完成升级。如果AP已经上
线,配置完自动升级参数后,任意方式触发AP重启, AP也会进行自动升级。但相比
于自动升级,使用在线升级方式升级能够减少业务中断的时间。
▪ AC模式: AP升级时从AC上下载升级版本,适用于AP数量较少时的场景。
▪ FTP模式: AP升级时从FTP服务器上下载升级版本,适用于网络安全性要求不是
很高的文件传输场景中,采用明文传输数据,存在安全隐患。
▪ SFTP模式: AP升级时从SFTP服务器上下载升级版本,适用于网络安全性要求高
的场景,对传输数据进行了严格加密和完整性保护。
▫ 在线升级:主要用于AP已经在AC中上线并已承载了WLAN业务的场景。
▫ 定时升级:主要用于AP已经在AC中上线并已承载了WLAN业务的场景。通常指定在
网络访问量少的时间段升级。
CAPWAP隧道维持
• 数据隧道维持:
▫ AP与AC之间交互Keepalive (UDP端口号为5247)报文来检测数据隧道的连通状态。
• 控制隧道维持:
▫ AP与AC交互Echo (UDP端口号为5246)报文来检测控制隧道的连通状态。
为确保AP能够上线,AC需预先配置如下内容
• 域管理模板:
▫ 域管理模板提供对AP的国家码、调优信道集合和调优带宽等的配置。
▫ 国家码用来标识AP射频所在的国家,不同国家码规定了不同的AP射频特性,包括AP
的发送功率、支持的信道等。配置国家码是为了使AP的射频特性符合不同国家或区域
的法律法规要求。
• 配置AC的源接口或源地址:
▫ 每台AC都必须唯一指定一个IP地址、 VLANIF接口或者Loopback接口,该AC设备下挂
接的AP学习到此IP地址或者此接口下配置的IP地址,用于AC和AP间的通信。此IP地址
或者接口称为源地址或源接口。
▫ 只有为每台AC指定唯一一个源接口或源地址, AP才能与AC建立CAPWAP隧道。
▫ 设备支持使用VLANIF接口或Loopback接口作为源接口,支持使用VLANIF接口或
Loopback接口下的IP地址作为源地址。
• 添加AP设备:即配置AP认证模式, AP上线。
▫ 添加AP有三种方式:离线导入AP、自动发现AP以及手工确认未认证列表中的AP。
WLAN工作流程:步骤2
• AP上线后,会主动向AC发送Configuration Status Request报文,该信息中包含了现有AP
的配置,为了做AP的现有配置和AC设定配置的匹配检查。当AP的当前配置与AC要求不符
合时, AC会通过Configuration Status Response通知AP。
• 说明: AP上线后,首先会主动向AC获取当前配置,而后统一由AC对AP进行集中管理和业
务配置下发。
配置模板
为了方便用户配置和维护WLAN的各个功能,针对WLAN的不同功能和特性设计了各种类型的模板,这些模板统称为WLAN模板
• WLAN网络中存在着大量的AP,为了简化AP的配置操作步骤,可以将AP加入到AP组中,在
AP组中统一对AP进行同样的配置。但是每个AP也有着不同于其它AP的参数配置,不便于
通过AP组来进行统一配置,这类个性化的参数可以直接在每个AP下配置。每个AP在上线时
都会加入并且只能加入到一个AP组中。当AP从AC上获取到AP组和AP个性化的配置后,会
优先使用AP下的配置。
• AP组和AP下都能够引用如下模板:域管理模板、 AP系统模板、、射频模板、 VAP模板,部
分模板例还能继续引用其它模板。
▫ 域管理模板:
▪ 国家码用来标识AP射频所在的国家,不同国家码规定了不同的AP射频特性,包
括AP的发送功率、支持的信道等。配置国家码是为了使AP的射频特性符合不同
国家或区域的法律法规要求。
▪ 通过配置调优信道集合,可以在配置射频调优功能时指定AP信道动态调整的范
围,同时避开雷达信道和终端不支持信道。
▫ 射频模板:
▪ 根据实际的网络环境对射频的各项参数进行调整和优化,使AP具备满足实际需
求的射频能力,提高WLAN网络的信号质量。射频模板中各项参数下发到AP后,
只有AP支持的参数才会在AP上生效。
▪ 可配置的参数包括:射频的类型、射频的速率、射频的无线报文组播发送速率、
AP发送Beacon帧的周期等。
VAP模板
• SSID模板:主要用于配置WLAN网络的SSID名称,还可以配置其他功能,主要包括如下功能:
▫ 隐藏SSID功能:用户在创建无线网络时,为了保护无线网络的安全,可以对无线网络
名称进行隐藏设置。这样,只有知道网络名称的无线用户才能连接到这个无线网络中。
▫ 单个VAP下能够关联成功的最大用户数:单个VAP下接入的用户数越多,每个用户能
够使用的平均网络资源就越少,为了保证用户的上网体验,可以根据实际的网络状况
配置合理的最大用户接入数。
▫ 用户数达到最大时自动隐藏SSID的功能:使能用户数达到最大时自动隐藏SSID的功能
后,当WLAN网络下接入的用户数达到最大时, SSID会被隐藏,新用户将无法搜索到
SSID。
• 安全模板:配置WLAN安全策略,可以对无线终端进行身份验证,对用户的报文进行加密,
保护WLAN网络和用户的安全。
▫ WLAN安全策略支持开放认证、 WEP、 WPA/WPA2-PSK、 WPA/WPA2-802.1X等,在
安全模板中选择其中一种进行配置。
WLAN工作流程:步骤3
扫描
• 主动扫描:
▫ 携带有指定SSID的主动扫描方式:适用于STA通过主动扫描接入指定的无线网络。
▫ 携带空SSID的主动扫描方式:适用于STA通过主动扫描可以获知是否存在可使用的无
线服务。
• 被动扫描:
▫ STA也支持被动扫描搜索无线网络。
▫ 被动扫描是指客户端通过侦听AP定期发送的Beacon帧(信标帧,包含: SSID、支持
速率等信息)发现周围的无线网络,缺省状态下AP发送Beacon帧的周期为100TUs
( 1TU=1024us)。
无线接入安全协议
• WLAN安全提供了WEP、 WPA、 WPA2等安全策略机制。每种安全策略体现了一整套安全
机制,包括无线链路建立时的链路认证方式,无线用户上线时的用户接入认证方式和无线
用户传输数据业务时的数据加密方式。
• WEP( Wired Equivalent Privacy)
▫ 有线等效加密WEP协议是由802.11标准定义的,用来保护无线局域网中的授权用户所
传输的数据的安全性,防止这些数据被窃听。 WEP的核心是采用RC4算法,加密密钥
长度有64位、 128位和152位,其中有24bit的IV(初始向量)是由系统产生的,所以
WLAN服务端和WLAN客户端上配置的密钥长度是40位、 104位或128位。 WEP加密
采用静态的密钥,接入同一SSID下的所有STA使用相同的密钥访问无线网络。
• WPA/WPA2 (Wi-Fi Protected Access)
▫ 由于WEP共享密钥认证采用的是基于RC4对称流的加密算法,需要预先配置相同的静
态密钥,无论从加密机制还是从加密算法本身,都很容易受到安全威胁。为了解决这
个问题,在802.11i标准没有正式推出安全性更高的安全策略之前, Wi-Fi联盟推出了
针对WEP改良的WPA。 WPA的核心加密算法还是采用RC4,在WEP基础上提出了临
时密钥完整性协议TKIP( Temporal Key Integrity Protocol)加密算法,采用了
802.1X的身份验证框架,支持EAP-PEAP、 EAP-TLS等认证方式。随后802.11i安全标
准组织又推出WPA2,区别于WPA, WPA2采用安全性更高的区块密码锁链-信息真实
性检查码协议CCMP( Counter Mode with CBC-MAC Protocol)加密算法。
▫ 为了实现更好的兼容性,在目前的实现中, WPA和WPA2都可以使用802.1X的接入认
证、 TKIP或CCMP的加密算法,他们之间的不同主要表现在协议报文格式上,在安全
性上几乎没有差别。
▫ 综上所述, WPA/WPA2安全策略涉及了链路认证阶段、接入认证阶段、密钥协商和
数据加密阶段。
链路认证
• WLAN需要保障用户接入安全,即保障用户接入无线网络的合法性和安全性, STA接入
WLAN网络前需要进行终端身份验证,即链路认证。链路认证通常被认为是终端连接AP并
访问WLAN的起点。
• 共享密钥认证:
▫ STA和AP预先配置相同的共享密钥, AP在链路认证过程验证两边的密钥配置是否相同。
如果一致,则认证成功;否则,认证失败。
▫ 认证过程:
1. STA向AP发送认证请求( Authentication Request)。
2. AP随即生成一个“挑战短语( Challenge)”发给STA。
3. STA使用预先设置好的密钥加密“挑战短语”( EncryptedChallenge)并发给AP。
4. AP接收到经过加密的“挑战短语”,用预先设置好的密钥解密该消息,然后将
解密后的“挑战短语”与之前发送给STA的进行比较。如果相同,认证成功;
否则,认证失败。
关联
• 瘦接入点( FIT AP)架构中关联阶段处理过程:
1. STA向AP发送Association Request请求,请求帧中会携带STA自身的各种参数以及根
据服务配置选择的各种参数(主要包括支持的速率、支持的信道、支持的QoS的能力等)。
2. AP收到Association Request请求帧后将其进行CAPWAP封装,并上报AC。
3. AC收到关联请求后判断是否需要进行用户的接入认证,并回应Association Response。
4. AP收到Association Response后将其进行CAPWAP解封装,并发给STA。
接入认证
• 数据加密:
▫ 除了用户接入认证外,对数据报文还需要使用加密的方式来保证数据安全,也是在接
入认证阶段完成的。数据报文经过加密后,只有持有密钥的特定设备才可以对收到的
报文进行解密,其他设备即使收到了报文,也因没有对应的密钥,无法对数据报文进
行解密。
STA地址分配
用户认证
• 随着企业网络的应用和发展,病毒、木马、间谍软件、网络攻击等各种信息安全威胁也在
不断增加。在传统的企业网络建设思路中,一般认为企业内网是安全的,安全威胁主要来
自外界。但是研究证明, 80%的网络安全漏洞都存在于网络内部。它们对网络的破坏程度
和范围持续扩大,经常引起系统崩溃、网络瘫痪。另外,内部员工在浏览某些网站时,一
些间谍软件、木马程序等恶意软件也会不知不觉地被下载到电脑中,并且在企业内网传播,
产生严重的安全隐患。
• 因此,随着安全挑战的不断升级,仅通过传统的安全措施已经远远不够。安全模型需要由
被动模式向主动模式转变。从根源(终端)彻底解决网络安全问题,提高整个企业的信息
安全水平。
WLAN工作流程步骤:步骤4
数据转发方式
• 隧道转发方式:
▫ 优点: AC集中转发数据报文,安全性好,方便集中管理和控制。
▫ 缺点:业务数据必须经过AC转发,报文转发效率比直接转发方式低, AC所受压力大。
• 直接转发方式:
▫ 优点:数据报文不需要经过AC转发,报文转发效率高, AC所受压力小。
▫ 缺点:业务数据不便于集中管理和控制。
WLAN的配置实现
WLAN的基础配置命令-配置AP上线
1.配置AC作为DHCP服务器,配置Option43字段
[AC-ip-pool-pool1]option code [sub-option sub-code] {ascii ascii-string|hex hex-string|cipher cipher-string ip-address ip-address
配置DHCP服务器分配给DHCP客户端的自定义选项。
2.创建域管理模板,并配置国家码
[AC]wlan
[AC-wlan-view]
进入WLAN视图。
[AC-wlan-view]regulatory-domain-profile name profile-name
[AC-wlan-regulate-domain-profile-name]
创建域管理模板,并进入模板视图,若模板已存在则直接进入模板视图。
[AC-wlan-regulate-domain-profile-name]country-code country-code
配置设备的国家码标识。
• 命令: option code [ sub-option sub-code ] { ascii ascii-string | hex hex-string | cipher
cipher-string | ip-address ip-address
▫ code:指定自定义选项Option的数值。整数形式,取值范围1~ 254,但1、 3、 6、 15、
44、 46、 50、 51、 52、 53、 54、 55、 57、 58、 59、 61、 82、 121、 184不能配置。
▫ sub-option sub-code: 指定自定义的Option子选项的数值。整数形式,取值范围是
1~ 254。知名选项请参考RFC2132。
▫ ascii | hex | cipher:指定自定义的选项码为ASCII字符串类型,或十六进制字符串类
型,或密文字符串类型。
▫ ip-address ip-address:指定自定义的选项码为IP地址类型。
• 命令: regulatory-domain-profile name profile-name
▫ name profile-name:指定域管理模板的名称。字符串类型,不区分大小写,可输入
的字符串长度为1~ 35个字符。可见字符,不能包含“ ?”和空格,双引号不能出现在
字符串的首尾。
• 命令: country-code country-code
▫ country-code: 指定设备的国家码标识。字符串格式,枚举类型。
▫ AC支持的国家码有很多,如:
▫ CN 中国(缺省值)
▫ AU 澳大利亚
▫ CA 加拿大
▫ DE 德国
▫ FR 法国
▫ US 美国
[AC-wlan-view]ap-group name group-name
[AC-wlan-ap-group-group-name]
创建AP组,并进入AP组视图,若AP组已存在则直接进入AP组视图。
[AC-wlan-ap-group-group-name]regulatory-domain-profile profile-name
将指定的域管理模板引用到AP或AP组。
3.配置源接口或源地址
[AC]capwap source interface loopback loopback-number vlanif vlan-id
配置AC与AP建立CAPWAP隧道的源接▣。
[AC]capwap source ip-address ip-address
配置AC的源IP地址。
4.添加AP设备-离线导入AP
[AC-wlan-view]ap auth-mode mac-auth sn-auth
配置AP认证模式为MAC地址认证,或SN认证,缺省为MAC地址认证。
[AC-wlan-view]ap-id ap-id [type-id type-idl ap-type ap-type ap-mac ap-macl ap-sn ap-sn ap-mac ap-mac ap-snap-sn}】
[AC-wlan-ap-ap-id]ap-name ap-name
离线增加AP设备或进入AP视图,并配置单个AP的名称。
[AC-wlan-view]ap-id 0
[AC-wlan-ap-0]ap-group ap-group
配置AP所加入的组。
5.检查AP上线结果
[AC]display ap alll ap-group ap-group))
查看AP信息。
• 命令: ap-id ap-id [ [ type-id type-id | ap-type ap-type ] { ap-mac ap-mac | ap-sn ap-sn
| ap-mac ap-mac ap-sn ap-sn } ]
▫ ap-id: AP设备索引。整数类型,取值范围: 0~ 8191。
▫ type-id type-id: AP设备类型索引。整数类型,取值范围: 0~ 255。
▫ ap-type ap-type: AP设备类型。字符串类型,取值范围为1~ 31个字符。
▫ ap-mac ap-mac: AP的MAC地址。格式为H-H-H,其中H为4位的十六进制数。
▫ ap-sn ap-sn: AP的序列号。字符串类型,取值范围为1~ 31个字符,只能包括字母和数字。
WLAN的基础配置命令-配置射频
1.进入射频视图
[AC-wlan-view]ap-id 0
[AC-wlan-ap-0]radio radio-id
[AC-wlan-radio-0]
2.配置指定射频的工作带宽和信道
[AC-wlan-radio-0/0]channel{20mhz 40mhz-minus 40mhz-plus|80mhz 160mhz}channe/
Warning:This action may cause service interruption.Continue?[Y/N]y
[AC-wlan-radio-0/0]channel80+80mhz channe//channel2
Warning:This action may cause service interruption.Continue?[Y/N]y
配置AP组中所有AP或单个AP指定射频的工作带宽和信道。
3.配置天线的增益
[AC-wlan-radio-0/0]antenna-gain antenna-gain
配置AP组中所有AP或单个AP指定射频的天线增益。
• 命令: radio radio-id
▫ radio-id:射频ID。必须是已存在的射频ID。
• 命令:
▫ channel { 20mhz | 40mhz-minus | 40mhz-plus | 80mhz | 160mhz } channel
▫ channel 80+80mhz channel1 channel2
▫ 20mhz:指定射频的工作带宽为20MHz。
▫ 40mhz-minus:指定射频的工作带宽为40MHz Minus。
▫ 40mhz-plus:指定射频的工作带宽为40MHz Plus。
▫ 80mhz:指定射频的工作带宽为80MHz。
▫ 160mhz:指定射频的工作带宽为160MHz。
▫ 80+80mhz:指定射频的工作带宽为80+80MHz。
▫ channel/channel1/channel2:指定射频的工作信道,信道基于国家代码和射频模式
来进行选择。枚举值类型,取值范围根据国家代码和射频模式来进行选择。
• 命令: antenna-gain antenna-gain
▫ antenna-gain:天线增益。整数类型,取值范围: 0~ 30,单位: dB。
4.配置射频的发射功率
[AC-wlan-radio-0/0]eirp eirp
配置AP组中所有AP或单个AP指定射频的发射功率。
5.配置射频覆盖距离参数
[AC-wlan-radio-0/0]coverage distance distance
配置AP组中所有AP或单个AP指定射频的射频覆盖距离参数。
6.配置射频工作的频段
[AC-wlan-radio-0/0]frequency 2.4g I 5g
• 命令: eirp eirp
▫ eirp:发射功率值。整数形式,取值范围是1~ 127,单位: dBm。
• 命令: coverage distance distance
▫ distance:射频覆盖距离参数。每个射频覆盖距离参数对应一组slottime、
acktimeout和ctstimeout数值。根据AP间的实际距离配置射频覆盖距离参数后, AP
设备根据此参数值调整对应的slottime、 acktimeout和ctstimeout数值。整数类型,
取值范围: 1~ 400,单位为100m。
• 命令: frequency { 2.4g | 5g }
▫ 缺省情况下,射频0工作在2.4GHz频段,射频2工作在5GHz频段。
7.创建射频模板
[AC-wlan-view]radio-2g-profile name profile-name
创建2G射频模板,并进入模板视图,若模板已存在则直接进入模板视图。
8.引用射频模板
[AC-wlan-view]ap-group name group-name
[AC-wlan-ap-group-group-name]radio-2g-profile profile-name radio radio-idl all
在AP组中,将指定的2G射频模板引用到2G射频。
• 命令: radio-2g-profile name profile-name
▫ name profile-name:指定2G射频模板的名称。字符串类型,不区分大小写,可输入
的字符串长度为1~ 35个字符。可见字符,不能包含“ ?”和空格,双引号不能出现在
字符串的首尾。
▫ 缺省情况下,系统上存在名为default的2G射频模板。
• 命令: radio-2g-profile profile-name radio { radio-id | all }
▫ profile-name:指定2G射频模板的名称。必须是已存在的2G射频模板名称。
▫ radio radio-id:指定射频的ID。整数类型,取值范围: 0和2。
▫ radio all:指定所有的射频。
WLAN的基础配置命令-配置VAP
1.创建VAP模板
[AC-wlan-view]vap-profile name profile-name
[AC-wlan-vap-prof-profile-name]
创建VAP模板,并进入模板视图,若模板已存在则直接进入模板视图。
2.配置数据转发方式
[AC-wlan-vap-prof-profile-name]forward-mode direct-forward tunnel}
配置VAP模板下的数据转发方式,可以是直接转发或隧道转发。
3.配置业务VLAN
[AC-wlan-vap-prof-profile-name]service-vlan{vlan-id vlan-id|vlan-pool pool-name
配置VAP的业务VLAN。
4.配置安全模板
[AC-wlan-view]security-profile name profile-name
[AC-wlan-sec-prof-profile-name]
创建安全模板或者进入安全模板视图。
缺省情况下,系统已经创建名称为default、default-wds和default-.mesh的安全模板。
[AC-wlan-view]vap-profile name profile-name
[AC-wlan-vap-prof-profile-name]security-profile profile-name
在指定VAP模板中引用安全模板。
5.配置SS1D模板
[AC-wlan-view]ssid-profile name profile-name
[AC-wlan-ssid-prof-profile-name]
创建5SD模板,并进入模板视图,若模板已存在则直接进入模板视图。
缺省情况下,系统上存在名为default的sSID模板。
[AC-wlan-ssid-prof-profile-name]ssid ssid
配置当前SSID模板中的服务组合识别码sSID(Service Set Identifier)。
缺省情况下,SSID模板中的SSID为HUAWEI-WLAN。
[AC-wlan-view]vap-profile name profile-name
[AC-wlan-vap-prof-profile-name]ssid-profile profile-name
在指定VAP模板中引用SSID模板。
• 命令: ssid ssid
▫ ssid:指定SSID的名称。文本类型,区分大小写,可输入的字符串长度为1~ 32字符,
支持中文字符,也支持中英文字符混合,不支持制表符。
▫ 如果想设置SSID首字符为空格,则输入的SSID内容应该以“ "”开头以“ "”结束,如"
hello",其中前后的“ "”占用两个字符。如果想设置SSID首字符为“ "”,则需要在“ "”
前输入转义字符“ \”,如\"hello,其中“ \”占用一个字符。
6.引用VAP模板
[AC-wlan-view]ap-group name group-name
[AC-wlan-ap-group-group-name]vap-profile profile-name wlan wlan-id radio radio-idl all service-vlan vlan-id vlan-id|vlan-pool pool-name)
在AP组中,将指定的VAP模板引用到射频。
7.查看VAP信息
[AC]displayvap ap-group ap-group-namel ap-name ap-namel ap-id ap-id radio radio-id]ssid ssid
[AC]display vap all ssidssid
查看业务型VAP的相关信息。
• 命令: display vap { ap-group ap-group-name | { ap-name ap-name | ap-id ap-id }
[ radio radio-id ] } [ ssid ssid ]
▫ ap-group ap-group-name:查看指定AP组下的所有业务型VAP的相关信息。必须是
已存在的AP组名称。
▫ ap-name ap-name:查看指定名称的AP的业务型VAP的相关信息。必须是已存在的
AP名称。
▫ ap-id ap-id:查看指定ID的AP的业务型VAP的相关信息。必须是已存在的AP ID。
▫ radio radio-id:查看指定射频的业务型VAP的相关信息。整数类型,取值范围: 0~ 2。
▫ ssid ssid:查看指定SSID的业务型VAP的相关信息。必须是已存在的SSID。
• 命令: display vap { all | ssid ssid }
▫ all:查看所有业务型VAP的相关信息。
广域网技术
早期广域网技术概述
什么是广域网
广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络。
广域网和局域网的区别
• 广域网与局域网的区别主要体现在以下几个方面:
▫ 局域网带宽高但是传输距离短,无法满足广域网长距离传输;
▫ 局域网设备通常都是交换机,广域网设备大多都是路由器;
▫ 局域网属于某一个单位或者组织,广域网服务大多由ISP提供;
▫ 广域网与局域网一般仅在物理层和数据链路层采用不同的协议或技术,其他层次基本
没有差异;
▫ 银行、政府、军队、大型公司的专用网络也属于广域网,且与Internet实现物理隔离;
▫ Internet只是广域网的一种,小企业借用Internet作为广域网连接。
早期广域网技术介绍
早期广域网与局域网的区别在于数据链路层和物理层的差异性,在TCL/IP参考模型中,其他各层无差异。
• 初期广域网常用的物理层标准有EIA( Electronic Industries Alliance,电子工业协会)和
TIA( Telecommunications Industry Association, 电信工业协会)制定的公共物理层接口
标准EIA/TIA-232(即RS-232)、 ITU( International Telecommunication Union,国际电
信联盟)制定的串行线路接口标准V.24和V.35,以及有关各种数字接口的物理和电气特性
的G.703标准等。
• 广域网常见的数据链路层标准有: HDLC( High-level Data Link Control,高级数据链路控
制)、 PPP( Point-to-Point Protocol,点到点协议)、 FR( Frame Relay, 帧中继) 、
ATM异步传输模式等,其中:
▫ HDLC协议是一种通用的协议,工作在数据链路层。数据报文加上头开销和尾开销后
封装成HDLC帧,只支持在点到点的同步链路上的数据传输,不支持IP地址协商与认
证,过于追求高可靠性,导致数据帧开销较大,传输效率较低。
▫ PPP协议工作在数据链路层,主要用在支持全双工的同、异步链路上,进行点到点之
间的数据传输。由于它能够提供用户认证,易于扩充,并且支持同、异步通信,因而
获得广泛应用。
▫ 帧中继是一种工业标准的、交换式的数据链路协议,通过使用无差错校验机制,加快
了数据转发速度。
▫ ATM是建立在电路交换和分组交换基础上的一种面向连接的交换技术, ATM传送信
息的基本载体是53 Byte固定长度ATM信元。
广域网络设备角色介绍
广域网设备基本角色有三种,CE(customer edge,用户边缘设备)、PE(Provider Edge,服务提供商边缘设备)和P(provider,服务提供商设备)。具体定义是:
▫ CE:用户端连接服务器提供商的边缘设备。CE连接多个或一个PE,实现用户接入。
▫ PE:服务通过商连接CE的边缘设备。PE通史连接CE和P设备,是重要的网络节点
▫ P: 服务提供商不连接任何CE的设备。
早期广域网技术的应用
早期的广域网技术主要是针对不同的物理链路类型,在数据链路层进行不同的二层封装。在CE与PE之间常用的广域网封装协议有PPP/HDLC/FR等,用于解决用户接入广域网的长距离传输问题。在ISP内部常用的广域网协议主要是ATM,它用于解决骨干网高速转发的问题。
PPP协议原理与配置
PPP协议原理
PPP协议概述
• PPP(Point-to-Point Protocol,.点到点协议)是一种常见的广域网数据链路层协议,主要用于在全 双工的链路上进行点到点的数据传输封装。
• PPP提供了安全认证协议族PAP(Password Authentication Protocol,密码验证协议) 和 CHAP(Challenge Handshake Authentication Protocol,挑h战握手认证协议)。
• PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为 PPPoE。
• PPP协议提供LCP(Link Control Protocol,链路控制协议),用于各种链路层参数的协商,例如最大接收单元,认证模式等。
• PPP协议提供各种NCP(Network Control Protocol,网络控制协议),如IPCP(IP Control Protocol,IP控制协议),用于各网络层参数的协商,更好地支持了网络层协议。
PPP链路建立流程
PPP链路的建立有三个阶段的协商过程,链路层协商,认证协商(可选)和网络层协商。
链路层协商:通过LCP报文进行链路参数协商,检录链路层连接。
认证协商(可选):通过链路层建立阶段协商 的认证方式进行链路认证。
网络层协商:通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。
PPP链路接口状态
PPP协商由链路两端的接口完成。接口的状态表示了协议的协商阶段。
• 正常PPP链路建立需要经历链路建立阶段、认证阶段和网络层协商阶段,详细过程如下:
1. 通信双方开始建立PPP链路时,先进入到Establish阶段。
2. 在Establish阶段,进行LCP协商:协商通信双方的MRU( Maximum Receive Unit,
最大接收单元)、认证方式和魔术字( Magic Number)等选项。协商成功后进入
Opened状态,表示底层链路已建立。
3. 如果配置了认证,将进入Authenticate阶段。否则直接进入Network阶段。
4. 在Authenticate阶段,会根据连接建立阶段协商的认证方式进行链路认证。认证方式
有两种: PAP和CHAP。如果认证成功,进入Network阶段,否则进入Terminate阶
段,拆除链路, LCP状态转为Down。
5. 在Network阶段, PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协
议并进行网络层参数协商。最常见的NCP协议是IPCP,用来协商IP参数。
6. 在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段。
• PPP运行过程中,可以随时中断连接,物理链路断开、认证失败、超时定时器时间到、管理
员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
LCP报文格式
PPP报文可由protocol字段标识不同类型的ppp报文。例如,当protocol字段为0xC021时,代表是LCP报文。此时又由Code字段标识不同类型LCP报文,如下表所示。
• PPP帧格式:
▫ Flag字段标识一个物理帧的起始和结束,该字节为二进制序列01111110( 0X7E)。
▫ PPP帧的Address字段字节固定为11111111 ( 0XFF) , 是一个广播地址。
▫ PPP数据帧的Control字段默认为00000011( 0X03) ,表明为无序号帧。
▫ 帧校验序列( FCS) 字段是个16 bit的校验和,用于检查PPP帧的完整性。
▫ Protocol字段用来说明PPP所封装的协议报文类型, 0XC021代表LCP报文, 0XC023代
表PAP报文, 0XC223代表CHAP报文。
▫ Information字段包含Protocol字段中指定协议的内容,该字段的最大长度被称为最大
接收单元MRU,缺省值为1500。
▫ 当Protocol字段为0XC021时, Information结构如下:
▪ Identifier字段为1个字节,用来匹配请求和响应。
▪ Length域的值就是该LCP报文的总字节数据。
▪ Data字段则承载各种TLV( Type/Length/Value)参数用于协商配置选项,包括
最大接收单元,认证协议等等。
• LCP报文携带的一些常见的配置参数有MRU、认证协议和魔术字。
▫ 在VRP( Versatile Routing Platform,通用路由平台)平台上, MRU参数使用接口上
配置的MTU( Maximum Transmission Unit,最大传输单元)值来表示。
▫ 常用的PPP认证协议有PAP和CHAP,一条PPP链路的两端可以使用不同的认证协议认
证对端,但是被认证方必须支持认证方要求使用的认证协议并正确配置用户名和密码
等认证信息。
▫ LCP使用魔术字来检测链路环路和其他异常情况。魔术字是随机产生的一个数字,随
机机制需要保证两端产生相同魔术字的可能性几乎为0。
LCP协商过程-正常协商
LCP协商由不同的LCP报文交互完成。协商由任意一方发送Configure-Request报文发起。如果对端接收此报文且参数匹配,则通过回复Configure-Ack相应协商成功。
• R1和R2使用串行链路相连,运行PPP协议。当物理层链路变为可用状态之后, R1和R2使用
LCP协商链路参数。
• 本例中, R1首先发送一个Configure-Request报文,此报文中包含R1上配置的链路层参数。
当R2收到此Configure-Request报文之后,如果R2能识别并接受此报文中的所有参数,则向
R1回应一个Configure-Ack报文。同样的, R2也需要向R1发送Configure-Request报文,使
R1检测R2上的参数是不是可接受的。
• R1在没有收到Configure-Ack报文的情况下,会每隔3秒重传一次Configure-Request报文,
如果连续10次发送Configure-Request报文仍然没有收到Configure-Ack报文,则认为对端
不可用,停止发送Configure-Request报文。
LCP协商过程-参数不匹配
在LCP报文交互过程中出现LCP参数不匹配时,接收方回复Configure-Nak相应告知对端修改参数然后重新协商。
• 当R2收到R1发送的Configure-Request报文之后,如果R2能识别此报文中携带的所有链路
层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则R2需要
向R1回应一个Configure-Nak报文。
• 在这个Configure-Nak报文中,只包含不能接受的链路层参数,并且此报文所包含的链路层
参数将被修改为R2上可以接受的取值(或取值范围)。
• 在收到Configure-Nak报文之后, R1需要根据此报文中的链路层参数重新选择本地配置的其
他参数,并重新发送一个Configure-Request。
LCP协商过程-参数不匹配
LCP报文交互中出现LCP参数不匹配时,接收方恢复Configure-Nak响应告知对端修改参数然后重新协商。
• 当R2收到R1发送的Configure-Request报文之后,如果R2能识别此报文中携带的所有链路
层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则R2需要
向R1回应一个Configure-Nak报文。
• 在这个Configure-Nak报文中,只包含不能接受的链路层参数,并且此报文所包含的链路层
参数将被修改为R2上可以接受的取值(或取值范围)。
• 在收到Configure-Nak报文之后, R1需要根据此报文中的链路层参数重新选择本地配置的其
他参数,并重新发送一个Configure-Request。
LCP协商过程-参数不识别
在LCP报文交互中出现参数不识别时,接收方恢复Configure-Reject响应告知对端删除不识别的参数然后重新协商。
• 当R2收到R1发送的Configure-Request报文之后,如果R2不能识别此报文中携带的部分或
全部链路层参数,则R2需要向R1回应一个Configure-Reject报文。在此Configure-Reject报
文中,只包含不能被识别的链路层参数。
• 在收到Configure-Reject报文之后, R1需要向R2重新发送一个Configure-Request报文,在
新的Configure-Request报文中,不再包含不被对端( R2)识别的参数。
PPP认证模式-PAP
链路协商成功后,进行认证协商(此过程可选)。认证协商有两种模式,PAP和CHAP。
PAP认证双方有两次握手,协商以明文的形式在链路上传输。
• LCP协商完成后,认证方要求被认证方使用PAP进行认证。
• PAP认证协议为两次握手认证协议,密码以明文方式在链路上发送,过程如下:
▫ 被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送
给认证方。
▫ 认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数
据库检查用户名和密码信息是否匹配;如果匹配,则返回Authenticate-Ack报文,表
示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。
PPP认证模式-CHAP
CHAP认证双方有三次握手。协商报文被加密再链路上传输。
• LCP协商完成后,认证方要求被认证方使用CHAP进行认证。
• CHAP 认证过程需要三次报文的交互。过程如下:
▫ 认证方主动发起认证请求,认证方向被认证方发送Challenge报文,报文内包含随机
数( Random)和ID。
▫ 被认证方收到此Challenge报文之后,进行一次加密运算,运算公式为MD5{ ID+随
机数+密码},意思是将Identifier、随机数和密码三部分连成一个字符串,然后对此
字符串做MD5运算,得到一个16 Byte长的摘要信息,然后将此摘要信息和端口上配
置的CHAP用户名一起封装在Response报文中发回认证方。
▫ 认证方接收到被认证方发送的Response报文之后,按照其中的用户名在本地查找相应
的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运
算方式相同;然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比
较,相同则认证成功,不相同则认证失败。
• 使用CHAP认证方式时,被认证方的密码时被加密后才进行传输的,这样就极大的提高了安
全性。
• 加密算法声明
▫ 使用加密算法时, MD5(数字签名场景和口令加密)加密算法安全性低,存在安全风
险,在协议支持的加密算法选择范围内,建议使用更安全的加密算法,例如AES/RSA
( 2048位以上) /SHA2/HMAC-SHA2。
NCP协商-静态IP地址协商
• PPP认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型。以常见的IPCP协议为例,它分为静态IP地址协商和动态IP地址协商。
• 静态IP地址协商需要手动在链路两端配置IP地址。
• NCP主要用来建立和配置不同的网络层协议,协商在该数据链路上所传输的数据包的格式
与类型。常见的有IPCP等。
• 静态IP地址协商过程如下:
▫ 每一端都要发送Configure-Request报文,在此报文中包含本地配置的IP地址;
▫ 每一端接收到此Configure-Request报文之后,检查其中的IP地址,如果IP地址是一
个合法的单播IP地址,而且和本地配置的IP地址不同(没有IP冲突),则认为对端可
以使用该地址,回应一个Configure-Ack报文。
NCP协商-动态IP地址协商
动态IP地址协商支持PPP链路一端为对端配置IP地址
• 动态协商IP地址的过程如下:
▫ R1向R2发送一个Configure-Request报文,此报文中会包含一个IP地址0.0.0.0,表示
向对端请求IP地址;
▫ R2收到上述Configure-Request报文后,认为其中包含的地址( 0.0.0.0)不合法,使
用Configure-Nak回应一个新的IP地址10.1.1.1;
▫ R1收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个ConfigureRequest报 文,包含新的IP地址10.1.1.1;
▫ R2收到Configure-Request报文后,认为其中包含的IP地址为合法地址,回应一个
Configure-Ack报文;
▫ 同时, R2也要向R1发送Configure-Request报文请求使用地址10.1.1.2, R1认为此地
址合法,回应Configure-Ack报文。
PPP协议配置
PPP基础配置命令
1.配置接口封装PPP协议
[Huawei-Serial0/0/0]link-protocol ppp
在接口视图下,将接口封装协议改为ppp,华为串行接口默认封装协议为ppp。
2.配置协商超时时间间隔
[Huawei-Serial0/0/0]ppp timer negotiate seconds
在PPP LCP协商过程中,本端设备会向对端设备发送LCP协商报文,如果在指定协商时间间隔内没有收到对端的应答报文,则重新发送。
PAP认证配置命令
1.配置验证方以PAP方式认证对端
[Huawei-aaa]local-user user-name password cipher irreversible-cipher password
[Huawei-aaa]local-user user-name service-type ppp
[Huawei-Serial0/0/0]ppp authentication-mode pap
配置验证方以PAP方式认证对端,首先需要通过AAA将被验证方的用户名和密码加入本地用户列表,然后选择认证模式。
2.配置被验证方以PAP方式被对端认证
[Huawei-Serial0/0/0]ppp pap local-user user-name password cipher|simple password
配置本地被对端以PAP方式验证时,本地发送PAP用户名和口令。
CHAP认证配置配置命令
1.配置验证方以CHAP方式认证对端
[Huawei-aaa]local-user user-name password cipher irreversible-cipher password
[Huawei-aaa]local-user user-name service-type ppp
[Huawei-Serial0/0/0]ppp authentication-mode chap
2.配置被验证方以CHAP方式被对端认证
[Huawei-Serial0/0/0]ppp chap user user-name
[Huawei-Serial0/0/0]ppp chap password {cipher|simple} password
配置本地用户名,配置本地被对端以CHAP方式验证时的口令。
配置举例-PAP认证
配置举例-CHAP认证
PPPOE原理与配置
PPPOE概述
什么是PPPOE
PPPOE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以是以太网网络中的多台主机连接到远端的宽带接入服务器。
PPPoE集中了PPP和Ethernet两个技术的优点。既有以太网的组网灵活优势,又可以利用PPP协议实现认证、计费等功能。
• 运营商希望把一个站点上的多台主机连接到同一台远程接入设备,同时接入设备能够提供
与拨号上网类似的访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设
备的比较经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产
生了在以太网上传输PPP报文的技术,即PPPoE。
• PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备接入因特网,并运用PPP协
议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。
PPPoE应用场景
PPPoE实现了在以太网上提供点到点的连接。PPPoE客户端与PPPoE服务器端之间建立PPP会话,封装PPP数据报文,为以太网上的主机童工接入服务,实现用户控制和计费,在企业网络与运营商网络中应用广泛。
PPPoE的常见应用场景有家庭用户拨号上网、企业用户拨号上网等。
PPPoE会话建立
PPPoE的会话有三个阶段,PPPoE发现阶段、PPPoE会话阶段和PPPoE终结阶段。
PPPoE报文
PPPoE会话的简历通过不同的PPPoE报文交互实现。PPPoE报文结构及常见的报文类型如下所示:
• PPPoE报文封装在Ethernet帧中, Ethernet中各字段解释如下:
• DMAC:表示目的设备的MAC地址,通常为以太网单播目的地址或者以太网广播地址
( 0xFFFFFFFF)。
• SMAC:表示源设备的以太网MAC地址。
• Eth-Type:表示协议类型字段,当值为0x8863时表示承载的是PPPoE发现阶段的报文。当
值为0x8864时表示承载的是PPPoE会话阶段的报文。
• PPPoE字段中的各个字段解释如下:
▫ VER:表示PPPoE版本号,值为0x01。
▫ Type:表示类型,值为0x01。
▫ Code:表示PPPoE报文类型,不同取值标识不同的PPPoE报文类型。
▫ PPPoE会话ID,与以太网SMAC和DMAC一起定义了一个PPPoE会话。
▫ Length:表示PPPoE报文的长度。
PPPoE发现阶段
PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。
1. PPPoE客户端在本地以太网中广播一个PADI报文,此PADI报文中包含了客户端需要的服务
信息。
▫ PADI报文的目的MAC地址是一个广播地址, Code字段为0x09, Session ID字段为0x0000。
▫ 所有PPPoE服务器端收到PADI报文之后, 会将报文中所请求的服务与自己能够提供的
服务进行比较。
2. 如果服务器端可以提供客户端请求的服务, 就会回复一个PADO报文。
▫ PADO报文的目的地址是发送PADI报文的客户端MAC地址, Code字段为0x07,
Session ID字段为0x0000。
3. 客户端可能会收到多个PADO报文,此时将选择最先收到的PADO报文对应的PPPoE服务器
端,并发送一个PADR报文给这个服务器端。
▫ PADR报文的目的地址是选中的服务器端的MAC地址, Code字段为0x19, Session ID
字段为0x0000。
4. PPPoE服务器端收到PADR报文后, 会生成一个唯一的Session ID来标识和PPPoE客户端的
会话,并发送PADS报文。
▫ PADS报文的目的地址是PPPoE客户端的MAC地址, Code字段为0x65, Session ID字
段是PPPoE服务器端为本PPPoE会话产生的Session ID。
• 会话建立成功后, PPPoE客户端和服务器端进入PPPoE会话阶段。
PPPoE会话阶段
PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。
• PPPoE会话阶段可分为两部分: PPP协商阶段和PPP报文传输阶段。
• PPPoE Session上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、 NCP三个阶段。
▫ LCP阶段主要完成建立、配置和检测数据链路连接。
▫ LCP协商成功后,开始进行认证,认证协议类型由LCP协商结果决定。
▫ 认证成功后, PPP进入NCP阶段, NCP是一个协议族,用于配置不同的网络层协议,
常用的是IP控制协议( IPCP),它负责配置用户的IP地址和DNS服务器地址等。
• PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。在这一阶段传输的数据包中必
须包含在发现阶段确定的Session ID并保持不变。
PPPoE会话终结阶段
• 当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文,用于关闭连接。
• 同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文。
• 在PADT报文中,目的MAC地址为单播地址, Session ID为希望关闭的连接的Session ID。
一旦收到一个PADT报文之后,连接随即关闭。
PPPoE基础配置
PPPoE基础配置
1.通过拨号规则来配置发起PPPoE会话的条件
[Huawei]dialer-rule
2.配置拨号接口用户名,此用户名必须与对端服务器用户名相同
[Huawei-Dialer1]dialer user username
3.将接口置于一个拨号访问组
[Huawei-Dialer1]dialer-group group-number
4.指定当前拨号接口使用的拨号绑定
[Huawei-Dialer1]dialer-bundle number
5.将物理端口与dialer-bundle进行绑定
[Huawei-Etherneto/0/0]pppoe-client dial-bundle-number number
配置实例-PPPoE客户端
• PPPoE客户端配置包括三个步骤。
• 第一步配置一个拨号接口。
▫ dialer-rule命令用于进入Dialer-rule视图,在该视图下,可以通过拨号规则来配置发
起PPPoE会话的条件。
▫ interface dialer number命令用来创建并进入Dialer接口。
▫ dialer user user-name命令用于配置对端用户名,这个用户名必须与对端服务器上的
PPP用户名相同。
▫ dialer-group group-number命令用来将接口置于一个拨号访问组。
▫ dialer bundle number命令用来指定Dialer接口使用的Dialer bundle。设备通过
Dialer bundle将物理接口与拨号接口关联起来。
▫ 注:必须确保命令dialer-group中的参数group-number和命令dialer-rule中的dialerrule- number保持一致。
• 第二步是在接口上将Dialer Bundle和接口绑定:
▫ pppoe-client dial-bundle-number number命令来实现Dialer Bundle和物理接口的绑
定, 用来指定PPPoE会话对应的Dialer Bundle, 其中number是与PPPoE会话相对应
的Dialer Bundle编号。
• 第三步配置一条缺省静态路由,该路由允许在路由表中没有相应匹配表项的流量都能通过
拨号接口发起PPPoE会话。
配置实例-PPPoE服务器端
• PPPoE服务器端配置
▫ interface virtual-template命令用来创建虚拟模板接口,或者进入一个已经创建的虚
拟模板接口视图。
▫ pppoe-server bind命令用来配置PPPoE接入用户上线绑定的虚拟模板接口。
配置验证
• display interface dialer[ number ]命令用于查看拨号接口的配置,便于定位拨号接口的故障。
• LCP opened, IPCP opened表示链路的状态完全正常。
• display pppoe-client session summary命令用于查看PPPoE客户端的PPPoE会话状态和统
计信息。
▫ ID表示PPPoE会话ID, Bundle ID和Dialer ID的值与拨号参数配置有关。
▫ Intf表示客户端侧协商时的物理接口。
▫ State表示PPPoE会话的状态,包括以下四种:
1. IDLE表示当前会话状态为空闲。
2. PADI表示PPPoE会话处于发现阶段,并已经发送PADI报文。
3. PADR表示PPPoE会话处于发现阶段,并已经发送PADR报文。
4. UP表示PPPoE会话建立成功。
广域网技术的发展
广域网技术的历史演进
• 早期广域网常用的数据链路层协议包括PPP、HDLC和ATM等。后期随着全网IP化的演进,基于 IP技术的Internet快速普及,但基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低 下,因此IP技术的转发性能成为当时限制网络发展的瓶颈。
• MPLS(Multiprotocol Label Switching,多协议标记交换)最初是为了提高路由器的转发速度而提出 的。与传统P路由方式相比,它在数据转发时,只在网络边缘解析P报文头,后续节点只基于标签 转发,而不用在每一跳都解析P报文头,减少软件处理流程节约了处理时间。
• 随着路由器性能的提升,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发 速度方面不再具备明显的优势。但是MPLS支持多层标签和转发平面面向连接的特性,使其在 VPN(Virtual PrivateNetwork,虚拟专用网)、TE(Traffic Engineering,流量工程)、QoS(Quality of Service,服务质量)等方面得到广泛应用。
传统IP路由转发
传统的IP转发采用的是逐跳转发。数据报文经过每一台路由器,都要被级封装查看报文网络层信息,然后根据路由最常匹配原则查找路由表指导报文转发。各路由器重复进行解封装查找路由表和再封装的过程,所以转发性能低。
MPLS标签转发
PMPLS转发存在的问题
• MPLS的标签分发有静态和动态两种方式,均面临着不同的问题:
▫ 静态标签分发为手工配置。随着网络规模不断的扩大,网络拓扑易变化,静态手工配置标签 不适应大型网络需求。
▫ 动态标签分发的问题,一方面在于部分动态标签协议本身并无算路能力,需依赖GP进行路 径计算,同时控制面协议复杂,设备之间需要发送大量的消息来维持邻居及路径状态,浪费 了链路带 宽及设备资源。另一方面部分标签分发协议虽然支持流量工程,但是配置复杂, 不支持负载分担,需要大量协议报文维护路径正常工作;同时每台设备都是独立存在,只知 道自己的状态,设备之间需要交互信令报文,也会浪费链路带宽及设备资源。
Segment Routing简介
为解决传统IP转发和MPLS转发的问题,业界提出了SR(Segment Routing,分段路由)。SR的转发机制有很大的改进,主要提线在以下几个方面:
1.基础现有协议进行扩展:
• 扩展后的IGP/BGP具有标签分发能力,因此网络中无需其他任何标签分发协议,实现协议简化。
2.引入源路由机制:
• 基于源路由机制,支持通过控制器进行集中算路。
3.由业务来定义网络:
• 业务驱动网络,由应用提出需求(时延、带宽、丢包率等),控制器手机网络拓扑、带宽利用率、时延等信息,根据业务需求计算显式路径。
Segment Routing转发原理
SR将网络路径分成一个个的段(Segment),并且为这些段分配SID(Segment ID)。
SID等分配对象有两种,,转发节点或者邻接链路。本例中转发节点SID 1600X,X为路由器编号;邻接链路SID 160XX,XX标识链路两端的节点编号。
• SID用于标识Segment,它的格式取决于具体的技术实现,例如可以使用MPLS标签、 MPLS
标签空间中的索引、 IPv6报文头部。例如使用MPLS标签被称为SR-MPLS,使用IPv6被称为
SRv6。
• 邻接链路编码和网络节点的SID有序排列形成段序列(Segment List),它代表一条转发路径。SR由源节点将段序列编码在数据包头部,随数据包传输。SR的本质是指令,指引报文去哪里喝怎么去。
• 接收端收到数据包后,对段序列进行解析,如果段序列的顶部段标识是本节点时,则弹出
该标识,然后进行下一步处理;如果不是本节点,则使用ECMP( Equal Cost Multiple
Path)方式将数据包转发到下一节点。
SR的部署方式
SR部署分为有控制器部署和无控制器部署。控制器配合方式由控制器手机信息,预留路径资源和计算路径,最后将结果下发到头节点,是更为推荐的部署方式。
• PCEP: Path Computation Element Communication Protocol,路径计算单元通信协议
• NETCONF: Network Configuration Protocol, 网络配置协议
Segment Routing的应用
SR可以简易的指定报文转发路径,在现网中可以为不同业务定义不同的路径。例如本例定义了数据下载、视频和语音三条显式路径,实现了业务驱动网络。设备有控制器纳管,支持路径实时快速发放。
网络管理与运维
网络管理与运维基本概念
什么事网络管理?
网络管理是通过对网络中设备的管理,保证设备工作正常,是通信网络正常的运行,以提供高效、可靠和安全的通信服务,是通信网络生命周期中的重要一环。
• 网络管理( Network Management)分为两类:
▫ 第一类是对网络应用程序、用户账号(例如文件的使用)和存取权限(许可)的管理。
它们都是与软件有关的网络管理问题,这里不作深入解释。
▫ 第二类是对构成网络的硬件即网元的管理,包括防火墙、交换机、路由器等等。本课
程主要针对此类网络管理。
• 一般企业网络中会有专门的部门或者人员负责网络的管理与运维。
• 注:
▫ NE( Network Element,网元):即网络单元,包含硬件设备及运行其上的软件。通
常一个网络单元至少具有一块主控板,负责整个网络单元的管理和监控。主机软件运
行在主控板上。
▫ 通常网络运维的操作都属于网络管理的范畴,本章后续所指的网络管理指对网络进行
管理和维护。
网络管理基本功能
OSI引定义了网络管理的五大功能模型:
。配置管理(Configuration Management):配置管理负责监控网络的配置信息,使网络管理人员可以生成、查询和修改硬件、软件的运行参数和条件,并可以进行相关业务的配置。
。性能管理(Performance Management):性能管理以网络性能为准则,保证在使用较少网络资源和具有较小时延的前提下,网络能够提供可靠、连续的通信能力。
。故障管理(Fault Management):故障管理的主要目标是确保网络始终可用,并在发生故障时尽快将其修复。
。安全管理(Security Management):安全管理可以保护网络和系统免受未经授权的访问和安全攻击。
。计费管理(Accounting Management):记录用户使用网络资源的情况并核收费用,同时也统计网络的利用率。
网络管理方式
• 传统网络管理:
▫ Web网管方式:利用设备内置的Web服务器,为用户提供图形化的操作界面。用户需
要从终端通过HTTPS( Hypertext Transfer Protocol Secure , HTTPS 加密协定)登
录到设备进行管理。
▫ CLI方式:用户利用设备提供的命令行,通过Console口、 Telnet或SSH等方式登录到
设备,对设备进行管理与维护。此方式可以实现对设备的精细化管理,但是要求用户
熟悉命令行。
▫ 基于SNMP集中管理: SNMP( Simple Network Management Protocol,简单网络
管理协议)提供了一种通过运行网络管理软件的中心计算机(即网络管理站)来管理
网元(如路由器、交换机)的方法。此方式可以实现对全网设备集中式、统一化管理,
大大提升了管理效率。
• 基于iMaster NCE的网络管理:
▫ iMaster NCE是集管理、控制、分析和AI智能功能于一体的网络自动化与智能化平台,
包括四大关键能力:全生命周期自动化、基于大数据和AI的智能闭环、开放可编程使
能场景化APP生态、超大容量全云化平台。
▫ iMaster NCE采用NETCONF( Network Configuration Protocol,网络配置协议)、
RESTCONF等协议对设备下发配置,使用Telemetry监控网络流量。
传统网络管理
通过CLI或Web进行管理
• 当网络规模较小时,CLI和Web方式常见的网络管理方式。
▫ 网络管理员可以通过HTTPS、Telnet、Console等方式登录设备后,对设备逐一进行管理。
▫这种管理方式不需要在网络上安装任何程序或部署服务器,成本较低。
▫ 网络管理员自身需要熟练掌握网络理论知识,各设备厂商网络配置命令。
▫ 当网络规模较大,网络拓扑较为复杂时,这种方式的局限性较大。
• 随着网络技术的飞速发展,在网络不断普及地同时也给网络管理带来了一些问题:
▫ 网络设备数量成几何级增长,使得网络管理员对设备的管理变得越来越困难;同时,
网络作为一个复杂的分布式系统,其覆盖地域不断扩大,也使得对这些设备进行实时
监控和故障排查变得极为困难。
▫ 网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,
这使得网络管理变得愈发复杂。
基于SNMP的集中式管理
SNMP(Simple Network Management Protocol,简单网络管理协议)是广泛用于TCL/IP网络的网络管理标准协议,提供了一种通过运行网络管理软件的中心计算机,即NMS(Network Management Station,网络管理工作站)来管理网元的方法。
• SNMP共有三个版本: SNMPv1、 SNMPv2c和SNMPv3。
▫ 1990年5月, RFC 1157定义了SNMP的第一个版本SNMPv1。 RFC 1157提供了一种监
控和管理计算机网络的系统方法。 SNMPv1基于团体名认证,安全性较差,且返回报
文的错误码也较少。
▫ 1996年, IETF颁布了RFC 1901,定义了SNMP的第二个版本SNMPv2c。 SNMPv2c中
引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型
( Counter64、 Counter32)。
▫ 鉴于SNMPv2c在安全性方面没有得到改善, IETF又颁布了SNMPv3的版本,提供了基
于USM( User-Based Security Model,用户安全模块)的认证加密和VACM( Viewbased Access Control Model,基于视图的访问控制模型)功能。
SNMP典型架构
• 在基于SNMP进行管理的网络中,NMS是整个网络的网管中心,在它之上运行管理进程。每个被管理设备需要运行代理(Agent)进程。管理进程和代理进程利用SNMP报文进行通信。
• NMS是一个采用SNMP协议对网络设备进行管理/监控的系统,运行在NMS服务器上。
• 被管理设备是网络中接受NMS管理的设备。代理进程运行于被管理设备上,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
• NMS通常是一个独立的设备,运行网络管理应用程序。网络管理应用程序至少能够提供一
个人机交互界面,网络管理员通过人机交互界面完成绝大多数网络管理工作。比较常见的
人机交互方式为通过Web页面进行交互,即网络管理员通过带显示器的终端,通过HTTP/HTTPS访问NMS提供的Web页面。
SNMP的信息交互
• NMS和被管理设备的信息交互分为两种:
▫ NMS通过SNMP协议给被管理设备发送修改配置信息请求或查询配置信息请求。被管理设备 上运行的代理进程根据NMS的请求消息做出响应。
▫ 被管理设备可以主动向NMS上报告警信息(Trap)以便网络管理员及时发现故障。
• 被管理对象(Managed object):每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。
• SNMP规定通过MlB(Management Information Base,管理信息库)去描述可管理实体的一组对象。
MIB
• MIB的定义与具体的网络管理协议无关。设备制造商可以在产品(如路由器)中包含SNMP
代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客
户软件来管理具有不同版本MIB的多个路由器。若一台路由器上不支持此MIB,那么就无法
提供相应的功能。
• MIB可以分为公有MIB和私有MIB两种。
▫ 公有MIB:一般由RFC定义,主要用来对各种公有协议进行结构化设计和接口标准化
处理。大多数的设备制造商都需要按照RFC的定义来提供SNMP接口。
▫ 私有MIB:是公有MIB的必要补充,当公司自行开发私有协议或者特有功能时,可以
利用私有MIB来完善SNMP接口的管理功能,同时对第三方网管软件管理存在私有协
议或特有功能的设备提供支持。如华为公司企业节点为: 1.3.6.1.4.1.2011。
常见MIB节点
用于查询或修改节点
用于告警通知的节点
• MIB节点的最大访问权限表明网管能够通过该MIB节点对设备进行的操作:
▫ not-accessible:无法进行任何操作。
▫ read-only:可以读取信息。
▫ read-write:可以读取信息和修改配置。
▫ read-create:可以读取信息、修改配置、新增配置和删除配置。
• 设备在生成告警时,不仅会上报当前发生的告警类型,同时会绑定一些变量。比如当发送
接口linkDown告警时,需要同时绑定接口索引,接口的当前配置状态等变量。
▫ ifIndex:接口索引(编号)
▫ ifAdminStatus:管理状态,即接口是否被shutdown: 1, undo shutdown; 2,
shutdown
▫ ifOperStasuts:接口当前的操作状态,即接口的链路层协议状态: 1, Up; 2, Down
▫ ifDesc:接口描述
SNMP管理模型
SNMPv1
• SNMPv1定义了5种协议操作:
▫ Get-Request: NMS从被管理设备的代理进程的MIB中提取一个或多个参数值。
▫ Get-Next-Request: NMS从代理进程的MIB中按照字典式排序提取下一个参数值。
▫ Set-Request: NMS设置代理进程MIB中的一个或多个参数值。
▫ Response:代理进程返回一个或多个参数值。它是前三种操作的响应操作。
▫ Trap:代理进程主动向NMS发送报文,告知设备上发生的紧急或重要事件。
SNMPv2c
• SNMPv2c新增了2种协议操作:
▫ GetBulk:相当于连续执行多次GetNext操作。在NMS上可以设置被管理设备在一次
GetBulk报文交互时,执行GetNext操作的次数。
▫ Inform:被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送
Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则会将
告警暂时保存在Inform缓存中,并且会重复发送该告警,直到NMS确认收到了该告
警或者发送次数已经达到了最大重传次数。
SNMPv3
• SNMPv3与SNMPv1和SNMPv2c的工作机制基本一致但添加了报头数据和安全参数。
• SNMPv3报文具有身份验证和加密处理的功能。
• SNMPv3适用于各种规模的网络,安全性极高。
• SNMPv3增加了身份验证和加密处理的功能。
▫ 身份验证:身份验证是指代理进程( NMS)接收到信息时首先必须确认信息是否来自
有权限的NMS(代理进程)并且信息在传输过程中未被改变。
▫ 加密处理: SNMPv3报文中添加了报头数据和安全参数字段。比如当管理进程发出
SNMPv3版本的Get-Request报文时可以携带用户名、密钥、加密参数等安全参数,
代理进程回复Response报文时也采用加密的Response报文。这种安全加密机制特别
适用于管理进程和代理进程之间需要经过公网传输数据的场景。
SNMP小结
• SNMP的特点如下:
▫ 简单:SNMP采用轮询机制,提供基本的功能集,适合快速、低价格的场景使用,而且 SNMP以UDP报文为承载,因而得到绝大多数设备的支持。
▫ 强大:SNMP的目标是保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索 信息,进行故障排查。
• SNMPv1版本适用于小型网络。组网简单、安全性要求不高或网络环境比较安全且比较稳定的网 络,比如校园网,小型企业网。
• SNMPV2c版本适用于大中型网络。安全性要求不高或者网络环境比较安全,但业务比较繁忙, 有可能发生流量拥塞的网络。
• SNMPV3版本作为推荐版本,适用于各种规模的网络。尤其是对安全性要求较高,只有合法的管 理员才能对网络设备进行管理的网络。
SNMP基本配置
1.使能SNMP代理功能
[Huawei]snmp-agent
2.配置SNMP的版本
[Huawei]snmp-agent sys-info version [v1 v2c|v3]
用户可以根据自己的需求配置对应的SNMP版本,但设备侧使用的协议版本必须与网管侧一致。
3.创建或者更新MIB视图的信息
[Huawei]snmp-agent mib-view view-name exclude|include subtree-name [mask mask]
4.增加一个新的SNMP组,将该组用户映射到SNMP视图
[Huawei]snmp-agent group v3 group-name {authentication | noauth | privacy} [read-view view-name
| write-view view-name | notify-view view-name]
该命令用于SNMPV3版本中创建SNMP组,指定认证加密方式、只读视图、读写视图、通知视图。是安全性需求较高的网管网络中的必需指令。
5.为一个SNMP组添加一个新用户
[Huawei]snmp-agent usm-user v3 user-name group group-name
6.配置SNMPV3用户认证密码
[Huawei]snmp-agent usm-user v3 user-name authentication-mode {md5 | sha | sha2-256}
7.配置SNMPv:3用户加密密码
[Huawei]snmp-agent usm-user v3 user-name privacy-mode{aes128 | des56}
8.配置设备发送Trap报文的参数信息
[Huawei]snmp-agent target-host trap-paramsname paramsname v3 securityname securityname
{authentication | noauth | privacy}
9.配置Trap报文的目的主机
[Huawei]snmp-agent target-host trap-hostname hostname address ipv4-address trap-paramsname paramsname
10.打开设备的所有告警开关
[Huawei]snmp-agent trap enable
注意该命令只是打开设备发送Trap告警的功能,要与snmp-agent target-host协同使用,由snmp-agent target-host指定Trap告警发送给哪台设备。
11.配置发送告警的源接口。
[Huawei]snmp-agent trap source interface-type interface-number
注意Trp告警无论从哪个接口发出都必须有一个发送的源地址,因此源接口必须是已经配置了P地址的接口。
SNMP配置举例(网络设备侧)
基于华为iMaster NCE的网络管理
网络产业的变革与挑战
• 伴随5G和云时代的到来,VR/AR、直播、无人驾驶等各类创新性业务大量涌现,整个CT产业进 发出蓬勃生机。与此同时,整个网络的流量也呈现出爆炸式增长,华为GV(Global Industry Vision,全球产业展望)预计,2025年新增的数据量将达到180ZB。业务的动态复杂性也使得整个网 络复杂度不断攀升。
• 整体来看,这些问题的源头都指向了现有的网络系统,只有通过构建自动化、智能化的以用户体 验为中心的网络系统才能有效应对。
华为iMaster NCE
华为iMaster NCE是一款集管理、控制、分析和AI智能功能于一体的网络自动化与智能化平台。
• iMaster NCE包含四大关键能力:
▫ 全生命周期自动化:以统一的资源建模和数据共享服务为基础,提供跨多网络技术域
的全生命周期的自动化能力,实现设备即插即用、网络即换即通、业务自助服务、故
障自愈和风险预警。
▫ 基于大数据和AI的智能闭环:基于意图、自动化、分析和智能四大子引擎构建完整的
智能化闭环系统。基于Telemetry采集并汇聚海量的网络数据, iMaster NCE实现实时
网络态势感知,通过统一的数据建模构建基于大数据的网络全局分析和洞察,并注入
基于华为30多年电信领域经验积累的AI算法,面向用户意图进行自动化闭环的分析、
预测和决策,提升客户满意度,持续提升网络的智能化水平。
▫ 开放可编程使能场景化APP生态: iMaster NCE对外提供可编程的集成开发环境
Design Studio和开发者社区,实现南向与第三方网络控制器或网络设备对接,北向与
云端AI训练平台和IT应用快速集成,并支持客户灵活选购华为原生APP,客户自行开
发或寻求第三方系统集成商的支持进行APP的创新与开发。
▫ 大容量全云化平台:基于Cloud Native的云化架构, iMaster NCE支持在私有云、公
有云中运行,也支持On-premise部署模式,具备大容量和弹性可伸缩能力,支持大
规模系统容量和用户接入,让网络从数据分散、多级运维的离线模式转变为数据共享、
流程打通的在线模式。
NETCONF简介
NETCONF(Network Configuration Protocol,网络配置协议),提供一套管理网络设备的机制。
用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。
• NETCONF客户端( Client): Client 利用NETCONF协议对网络设备进行系统管理。一般由
网络管理系统( NMS)作为NETCONF Client。 Client向Server发送
一个或多个具体的参数值。 Client可以接收Server发送的告警和事件,以获取被管理设备的
状态。
• NETCONF服务器端( Server): Server用于维护被管理设备的信息数据并响应Client的请求,
把管理数据汇报给Client。一般由网络设备(例如交换机、路由器等)作为NETCONF
Server。 Server收到Client 的请求后会进行数据解析,并在CMF( Configuration Manager
Frame,配置管理框架)的帮助下处理请求,然后给Client 返回响应。当设备发生故障或其
他事件时, Server利用Notification机制将设备的告警和事件通知给Client,向网络管理系统
报告设备的当前状态变化。
• Client与Server之间建立基于SSH( Secure Shell,安全外壳)或TLS( Transport Layer
Security,传输层安全性协议)等安全传输协议的连接,然后通过Hello报文交换双方支持
的能力后建立NETCONF会话, Client即可与Server之间进行交互请求,网络设备必须至少
支持一个NETCONF会话。 Client从运行的Server上获取的信息包括配置数据和状态数据。
NETCONF的优势
一次典型NETCONF交互
• NETCONF使用SSH实现安全传输,使用RPC( Remote Procedure Call,远程过程调用)实
现客户端和服务器端的通信。
YANG语言概述
• YANG(Yet Another Next Generation)是一种数据建模语言,实现了NETCONF数据内容的标准化。
• YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作。建模对象包括配置、状态数据、远程过程调用和通知。它可以对NETCONF客户端和服务器端之间发送的所有数据进行一个完整的描述。
• YANG起源于NETCONF,但不仅用于NETCONF。虽然统一了YANG建模语言,但是YANG
文件没有统一。
• YANG文件可以简单分为三类:
▫ 厂家私有YANG文件
▫ IETF标准YANG
▫ OpenConfig YANG
• YANG模型的最终呈现是.yang为后缀的文件。
• YANG模型的特点:
▫ 基于层次化的树状结构建模。
▫ 数据模型以模块和子模块呈现。
▫ 可以和基于XML的语法的YIN( YANG Independent Notation)模型无损转换。
▫ 定义内置的数据类型和允许可扩展类型。
YANG与XML
• 在NETCONF客户端(例如网管平台/SDN控制器)加载YANG文件。
• 通过YANG文件将数据转换为XML格式的NETCONF消息发送到设备。
• 在NETCONF服务器(例如路由器/交换机等)加载YANG文件。
• 通过YANG文件将接收到的XML格式的NETCONF消息转换为数据并做后续处理。
Telemetry基本概述
• Telemetryt也作Network Telemetry,即网络遥测技术,是一项远程地从物理设备或虚拟设备上高速采集数据的技术。
• 设备通过推模式(Push Mode)周期性地主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式((Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。
• 业界也有一种看法,将SNMP认为是传统的Telemetry技术,把当前Telemetry叫做
Streaming Telemetry或Model-Driven Telemetry。
• Telemetry将上送数据打包一起发送,提升传输效率。
IPv6基础
IPv6概述
IPv4现状
2011年2月3日,IANA(Internet Assigned Numbers Authority,因特网地址分配组织)宣布将其最后的468万个IPv4地址平均分配到全球5个RIR(Regional Internet Regist,区域互联网注册管理机构),伺候IANA再没有可分配的IPv4地址。
• IANA,是负责全球互联网IP地址编号分配的机构。 IANA将部分IPv4地址分配给大洲级的
RIR,再由各RIR进行所辖区域内地址分配,五大RIR包括:
▫ RIPE: Reseaux IP Europeans,欧洲IP地址注册中心,服务于欧洲、中东地区和中亚地区;
▫ LACNIC: Latin American and Caribbean Internet Address Registry,拉丁美洲和加
勒比海Internet地址注册中心,服务于中美、南美以及加勒比海地区;
▫ ARIN: American Registry for Internet Numbers,美国Internet编号注册中心,服务
于北美地区和部分加勒比海地区;
▫ AFRINIC: Africa Network Information Centre,非洲网络信息中心,服务于非洲地区;
▫ APNIC: Asia Pacific Network Information Centre,亚太互联网络信息中心,服务于
亚洲和太平洋地区。
• 实践证明IPv4是一个非常成功的协议,它本身也经受住了Internet从少量计算机组网发展到
目前上亿台计算机互联的考验。但该协议是几十年前基于当时的网络规模而设计的。在今
天看来, IPv4的设计者们对于Internet的估计和预想显得很不充分。随着Internet的扩张和
新应用的不断推出, IPv4越来越显示出它的局限性。
• Internet规模的快速扩张是当时完全没有预料到的,特别是近十年来,更是爆炸式增长,已
经走进了千家万户,人们的日常生活已经离不开它。但正因为发展太快, IP地址空间耗尽的
问题迫在眉睫。
• 20世纪90年代, IETF推出NAT( Network Address Translation,网络地址转换)与CIDR
( Classless Inter Domain Routing,无类别域间路由)等技术来推迟IPv4地址耗尽发生的
时间点。但是这些过渡方案只能减缓地址枯竭的速度,并不能从根本上解决问题。
为什么有IPv6?
IPv6优势
• 近乎无限的地址空间:与IPv4相比,这是最明显的好处。 IPv6地址是由128 bit构成,单从
数量级来说, IPv6所拥有的地址容量是IPv4的约8× 1028倍,号称可以为全世界的每一粒沙
分配一个网络地址。这使得海量终端同时在线,统一编址管理,变为可能,为万物互连提
供了强有力的支撑。
• 层次化的地址结构:正因为有了近乎无限的地址空间, IPv6在地址规划时就根据使用场景
划分了各种地址段。同时严格要求单播IPv6地址段的连续性,禁止出现IPv4的地址“打洞”
现象,便于IPv6路由聚合,缩小IPv6地址表规模。
• 即插即用:任何主机或者终端要获取网络资源,传输数据,都必须有明确的IP地址。传统的
分配IP地址方式是手工或者DHCP自动获取,除了上述两个方式外, IPv6还支持SLAAC
( Stateless Address Autoconfiguration,无状态地址自动配置)。
• 端到端网络的完整性:大面积使用NAT技术的IPv4网络,从根本上破坏了端到端连接的完
整性。使用IPv6之后,将不再需要NAT网络设备,上网行为管理、网络监管等将变得简单,
与此同时,应用程序也不需要开发复杂的NAT适配代码。
• 安全性得到增强: IPsec( Internet Protocol Security,因特网协议安全协议)最初是为
IPv6设计的,所以基于IPv6的各种协议报文(路由协议、邻居发现等),都可以端到端地加
密,当然该功能目前应用并不多。而IPv6的数据面报文安全性,跟IPv4+IPsec的能力,基本
相同。
• 可扩展性强: IPv6的扩展属性报文头部,并不是主数据包的一部分,但是在必要的时候,
这些扩展头部会插在IPv6基本头部和有效载荷之间,能够协助IPv6完成加密功能、移动功能、
最优路径选路、 QoS等,并可提高报文转发效率。
• 移动性改善:当一个用户从一个网段移动到另外一个网段,传统的网络会产生经典式“三
角式路由”, IPv6网络中,这种移动设备的通信,可不再经过原“三角式路由”,而做直
接路由转发,降低了流量转发的成本,提升了网络性能和可靠性。
• QoS可得到进一步增强: IPv6保留了IPv4所有的QoS属性,额外定义了20 Byte的流标签字
段,可为应用程序或者终端所用,针对特殊的服务和数据流,分配特定的资源,目前该机
制并没有得到充分的开发和应用。
IPv6基本包头
IPv6包头由一个IPv6基本包头(必须存在)和多个拓展包头(可能不存在)组成。
基本包头提供报文转发的基本信息,会被转发路径上的所有设备解析。
• IPv6基本包头字段解释如下:
▫ Version:版本号,长度为4 bit。对于IPv6,该值为6。
▫ Traffic Class:流类别,长度为8 bit。等同于IPv4中的ToS字段,表示IPv6数据包的类
或优先级,主要应用于QoS。
▫ Flow Label:流标签,长度为20 bit。 IPv6中的新增字段,用于区分实时流量,不同
的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高
效率的区分数据流。
▫ Payload Length:有效载荷长度,长度为16 bit。有效载荷是指紧跟IPv6包头的数据
包的其他部分(即扩展包头和上层协议数据单元)。
▫ Next Header:下一个包头,长度为8 bit。该字段定义紧跟在IPv6包头后面的第一个
扩展包头(如果存在)的类型,或者上层协议数据单元中的协议类型(类似于IPv4的
Protocol字段)。
▫ Hop Limit:跳数限制,长度为8 bit。该字段类似于IPv4中的Time to Live字段,它定
义了IP数据包所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的
值为0时,数据包将被丢弃。
▫ Source Address:源地址,长度为128 bit。表示发送方的地址。
▫ Destination Address:目的地址,长度为128 bit。表示接收方的地址。
IPv6拓展包头
• IPv4包头包含可选字段Options,内容涉及Security、 Timestamp、 Record route等,这些
Options可以将IPv4包头长度从20 Byte扩充到60 Byte。携带这些Options的IPv4报文在转发
过程中往往需要中间路由转发设备进行软件处理,对于性能是个很大的消耗,因此实际中
也很少使用。
• IPv6将这些Options从IPv6基本包头中剥离,放到了扩展包头中,扩展包头被置于IPv6基本
包头和上层协议数据单元之间。一个IPv6报文可以包含0个、 1个或多个扩展包头,仅当需
要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,
IPv6扩展头长度任意,不受40 Byte限制,这样便于日后扩充新增选项。这一特征加上选项
的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性
能,扩展包头总是8 Byte长度的整数倍。
• 当使用多个扩展包头时,前面包头的Next Header字段指明下一个扩展包头的类型,这样就
形成了链状的包头列表。
• 当超过一种扩展包头被用在同一个IPv6报文里时,包头必须按照下列顺序出现:
1. 逐跳选项包头:主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的
每台中间节点都要读取并处理该字段。
2. 目的选项包头:携带了一些只有目的节点才会处理的信息。
3. 路由包头: IPv6源节点用来强制数据包经过特定的设备。
4. 分段包头:当报文长度超过MTU( Maximum Transmission Unit,最大传输单元)
时就需要将报文分段发送,而在IPv6中,分段发送使用的是分段包头。
5. 认证包头( AH):该包头由IPsec使用,提供认证、数据完整性以及重放保护。
6. 封装安全净载包头( ESP):该包头由IPsec使用,提供认证、数据完整性以及重放保
护和IPv6数据包的保密。
IPv6报文处理机制
IPv6地址
• IPv6地址的长度为128bit。一般用冒号分割为8段,每一段16bit,每一段内用十六进制标识。
• 与IPv4地址类似,IPv6也用“IPv6地址/掩码长度”的方式来表示IPv6地址。
IPv6地址缩写规范
• 为了书写方便,IPv6可采用以下规则进行缩写
IPv6地址分类
• 根据IPv6地址前缀,可将IPv6地址分为单播地址、组播地址和任播地址。
• 单播地址( Unicast Address):标识一个接口,目的地址为单播地址的报文会被送到被标
识的接口。在IPv6中,一个接口拥有多个IPv6地址是非常常见的现象。除了全球单播地址、
唯一本地地址、链路本地地址这三种地址之外, IPv6还有一些特殊单播地址的存在:
▫ 未指定地址: 0:0:0:0:0:0:0:0/128 或者::/128。该地址作为某些报文的源地址,比如作
为重复地址检测时发送的邻居请求报文( NS)的源地址,或者DHCPv6初始化过程中
客户端所发送的请求报文的源地址。
▫ 环回地址: 0:0:0:0:0:0:0:1/128 或者::1/128,与IPv4中的127.0.0.1作用相同,用于本
地回环,发往::/1的数据包实际上就是发给本地,可用于本地协议栈环回测试。
• 组播地址( Multicast Address):标识多个接口,目的地址为组播地址的报文会被送到被
标识的所有接口。只有加入相应组播组的设备接口才会侦听发往该组播地址的报文。
• 任播地址( Anycast Address):任播地址标识一组网络接口(通常属于不同的节点)。目
标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。
• IPv6没有定义广播地址( Broadcast Address)。在IPv6网络中,所有广播的应用层场景将
会被IPv6组播所取代。
IPv6单播地址结构
• 一个IPv6单播地址可以分为如下两部分:
▫ 网络前缀 : n bit,相当于IPv4地址中的网络ID。
▫ 接口标识 : (128-n)bit,相当于IPv4地址中的主机ID。
• 常见的IPv6单播地址如全球单播地址、链路本地地址等,要求网络前缀和接口标识必须为64bit。
• 全球单播地址中,高位前3 bit为000的地址可以采用非64 bit的网络前缀,这部分地址不在
本课程涉及的范围中。
IPv6单播地址接口标识
• 接口标识可以通过三种方法生成:
▫ 手工配置
▫ 系统自动生成
▫ 通过IEEE EUI-64规范生成
• •其中EUI-64规范最为常用,此规范将接口的mAC地址转换为IPv6接口标识。
• 接口标识的长度为64 bit,用于标识链路上的接口。在每条链路上,接口标识必须唯一。接
口标识有许多用途,最常见的用法就是黏贴在链路本地地址前缀后面,形成接口的链路本
地地址。或者在无状态自动配置中,黏贴在获取到的IPv6全球单播地址前缀后面,构成接
口的全球单播地址。
• IEEE EUI-64( 64-bit Extended Unique Identifier)规范
▫ 这种由MAC地址产生IPv6地址接口标识的方法可以减少配置的工作量,尤其是当采用
无状态地址自动配置时, 只需要获取一个IPv6前缀就可以与接口标识形成IPv6地址。
▫ 使用这种方式最大的缺点就是某些恶意者可以通过二层MAC推算出三层IPv6地址。
IPv6常见单播地址-GUA
•GUA(Global Unicast Address,全球单播地址),也被称为可聚合全球单播地址。该地址全球唯一,用于需要有互联网访问需求的主机,相当于IPv4的公网地址。
• 可以向运营商申请GUA或者直接向所在地区的IPv6地址管理机构申请。
IPv6常见单播地址-ULA
ULA(Unique Local Address,唯一本地地址)是IPv6死亡地址,只能够在内网中使用。该地址空间在IPv6公网中不可被路由,因此不能直接访问公网。
IPv6常见单播地址-LLA
LLA(Link-Local Address,链路本地地址)是IPv6中另一种应用范围受限制的地址类型。LLA的有效范围是本地链路,前缀为FE80::/10。
IPV6组播地址
IPv6组播地址标识多个接口,一般用于“一对多”的通信场景。
• IPv6组播地址各字段值对应的组播组类型和范围:
▫ Flags:
▪ 0000表示永久分配或众所周知 ;
▪ 0001表示 临时的。
▫ Scope:
▪ 0:预留;
▪ 1:节点本地范围;单个接口有效,仅用于Loopback通讯。
▪ 2:链路本地范围;例如FF02::1。
▪ 5:站点本地范围;
▪ 8:组织本地范围;
▪ E:全球范围;
▪ F:预留。
被请求节点组播地址
• 当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址并且加入这个租毙组。该地址主要用于邻居发现机制和地址重复检测功能。被请求节点组播地址的有效范围为本地链路范围。
• 被请求节点组播组地址的应用场景举例:在IPv6中, ARP及广播都被取消,当设备需要请求
某个IPv6地址对应的MAC地址时,设备依然需要发送请求报文,但是该报文是一个组播报
文,其目的IPv6地址是目标IPv6单播地址对应的被请求节点组播地址,由于只有目标节点才
会侦听这个被请求节点组播地址,所以该组播报文可以被目标节点所接收,同时不会占用
其他非目标节点的网络性能。
IPv6任播地址
任播地址标识一组络接口(通常属于不同的节点)。任播地址可以作为Ipv6报文的源地址,也可以作为目的地址。
• 任播过程涉及一个任播报文发起方和一个或多个响应方。
▫ 任播报文的发起方通常为请求某一服务(例如, Web服务) 的主机。
▫ 任播地址与单播地址在格式上无任何差异,唯一的区别是一台设备可以给多台具有相
同地址的设备发送报文。
• 网络中运用任播地址有很多优势:
▫ 业务冗余。比如,用户可以通过多台使用相同地址的服务器获取同一个服务(例如,
Web服务) 。这些服务器都是任播报文的响应方。如果不是采用任播地址通信,当其
中一台服务器发生故障时,用户需要获取另一台服务器的地址才能重新建立通信。如
果采用的是任播地址,当一台服务器发生故障时,任播报文的发起方能够自动与使用
相同地址的另一台服务器通信,从而实现业务冗余。
▫ 提供更优质的服务。比如,某公司在A省和B省各部署了一台提供相同Web服务的服
务器。基于路由优选规则, A省的用户在访问该公司提供的Web服务时,会优先访问
部署在A省的服务器,提高访问速度,降低访问时延,大大提升了用户体验。
IPv6地址配置
主机和路由器的IPv6地址
一般情况下,主机和路由器的单播IPv6地址以及加入的组播地址如下所示:
IPv6单播地址业务流程
一个接口在发送IPv6报文之前要经历地址配置、DAD、地址解析这三个阶段,NDP()eighborN Discovery Protoco,邻居发现协议)扮演了重要角色。
NDP
RFC2461定义了NDP,该RFC后来被RFC4861替代。
NDP使用ICMPv6报文实现其功能。
• 无状态自动配置是IPv6的一个亮点功能,它使得IPv6主机能够非常便捷地接入到IPv6网络中,
即插即用,无需手工配置繁冗的IPv6地址,无需部署应用服务器(例如DHCP服务器)为主
机分发地址。无状态自动配置机制使用到了ICMPv6中的路由器请求报文( Router
Solicitation)及路由器通告报文( Router Advertisement)。
• 地址解析过程中使用了两种ICMPv6报文:邻居请求( Neighbor Solicitation)和邻居通告
( Neighbor Advertisement)。
• 重复地址检测使用ICMPv6 NS和ICMPv6 NA报文确保网络中无两个相同的单播地址,所有
接口在使用单播地址前都需要做DAD。
IPv6动态地址配置
• 主机根据RA中的地址前缀,并结合本地生成的64bit接口标识(例如EUI-64),生成单播地址。
• 仅可以获得IPv6地址信息,无法获得NIS、SNTP服务器等参数,需要配合DHCPv6或者手工配 置来获取其他配置信息。
• IPv6支持地址有状态( stateful)和无状态( stateless)两种自动配置方式,通过ICMPv6
RA报文中的M标记( Managed Address Configuration Flag)和O标记( Other Stateful
Configuration Flag)来控制终端自动获取地址的方式。
• 有状态地址配置( DHCPv6 ), M=1, O=1:
▫ 采用DHCPv6协议, IPv6客户端将从DHCPv6服务器端获取完整的128 bit IPv6地址,
同时包括DNS、 SNTP服务器等地址参数。
▫ 此外, DHCPv6服务器端将会记录该地址的分配情况(这也是为什么被称为有状态)。
▫ 此方法配置较为复杂,且对DHCPv6服务器端的性能要求较高。
▫ 有状态地址配置多用于公司内部有线终端的地址分配,便于对地址进行管理。
• 无状态地址配置, M=0, O=0:
▫ 采用ICMPv6协议
▪ 使能了ICMPv6 RA功能的路由器会周期性的通告该链路上的IPv6地址前缀。
▪ 另一种情况,主机发送路由器查询( ICMPv6 RS)报文,路由器回复RA报文告
知该链路IPv6地址前缀。
▫ 主机根据路由器回应的RA报文,获得IPv6地址前缀信息,使用该地址前缀,加上本地
产生的接口标识,形成单播IPv6地址。
▫ 若主机还想获得其他配置信息,可以通过DHCPv6来获得除地址外的其他信息。当使
用这种方式时, M=0, O=1。
DAD
▪ 无论通过何种方式配置了Ipv6单播地址,路由器或主机都会:
▫ 通过CMPv6报文进行DAD
▫ 仅当DAD通过之后才会使用该单播地址
• 假设R1为已在线设备, IPv6地址为2001::FFFF/64。 PC上线之后,也配置了相同的IPv6地址,
在正式使用这个地址之前, PC会对此地址做DAD,过程如下:
1. PC向链路上以组播的方式发送一个NS报文,该NS的源IPv6地址为“ ::”,目的IPv6
地址为要进行DAD的2001::FFFF对应的被请求节点组播地址,也就是
FF02::1:FF00:FFFF。这个NS里包含着要做DAD的目标地址2001::FFFF。
2. 链路上的节点都会收到这个组播的NS报文,没有配置2001::FFFF的节点接口由于没
有加入该地址对应的被请求节点组播组,因此在收到这个NS的时候默默丢弃。而R1
在收到这个NS后,由于它的接口配置了2001::FFFF地址,因此接口会加入组播组
FF02::1:FF00:FFFF,而此刻所收到的报文又是以该地址为目的地址,因此它会解析该
报文,它发现对方进行DAD的目标地址与自己本地接口地址相同,于是立即回送一
个NA报文,该报文的目的地址是FF02::1,也就是所有节点组播地址,同时在报文内
写入目标地址2001::FFFF,以及自己接口的MAC地址。
3. 当PC收到这个NA后,它就知道2001::FFFF在链路上已经有人在用了,因此将该地址
标记为Duplicate(重复的),该地址将不能用于通信。若未收到NA报文,则PC判断
这个IPv6地址可以用, DAD机制有点类似于IPv4中的免费ARP检测重复地址。
地址解析
• Ipv6使用ICMPv6的NS和NA报文来取代ARP在IPv4中的地址解析功能。
• IPv6的地址解析不再使用ARP,也不再使用广播方式,而采用和DAD相同的NS和NA报文解
析数据链路层地址。
• 假设PC想要解析R1的2001::2这个地址对应的MAC地址,详细过程如下:
1. PC将发送一个NS报文达到这个目的。这个NS报文的源地址是2001::1,目的地址则
是2001::2对应的被请求节点组播地址。
2. R1接收此NS报文,根据报文内的源IPv6地址和源MAC,记录下PC这个邻居,同时根
据自身的IPv6和MAC,回复单播NA报文。
3. PC收到此NA报文之后,获取其中的源IPv6地址和源MAC。这样双方都可以建立一条
关于对方的邻居信息表项。
IPv6典型配置举例
IPv6基本配置
1.使能IPv6
[Huawei]ipv6
使能设备转发1Pv6单播报文,包括本地IPv6报文的发送与接收。
[Huawei-GigabitEthernet0/0/0]ipv6 enable
在接口视图下,在接口上使能该接口的PV6功能。
2.配置接口的链路本地地址
[Huawei-GigabitEtherneto/0/0]ipv6 address ipv6-address link-local
[Huawei-GigabitEtherneto/0/0]ipv6 address auto link-local
在接口视图下,通过手工或者自动的方式,配置接口的链路本地地址。
3.配置接口的全球单播地址
[Huawei-GigabitEthernet0/0/0]ipv6 address{ipv6-address prefix-length|ipv6-address/prefix-length}
[Huawei-GigabitEtherneto/0/0]ipv6 address auto{global | dhcp}
在接口视图下,通过手工或者自动(有状态或无状态)的方式,配置接口的全球单播地址。
4.配置1Pv6静态路由
[Huawei]ipv6 route-static dest-ipv6-address prefix-length{interface-type interface-number[nexthop-ipv6-address] nexthop-ipv6-address}[preference preference]
5.查看接口的IPv6信息
[Huawei]display ipv6 interface interface-type interface-number brief
6.查看邻居表项信息
[Huawei]display ipv6 neighbors
7.使能系统发布RA报文功能
[Huawei-GigabitEthernet0/0/0]undo ipv6 nd ra halt
默认情况下,华为路由器接口不发送CMPV6RA报文,则该接口所连链路上的其他设备无法进行无状态地址自动配置。若想进行1Pv6无状态地址配置,需要手工开启发送RA报文。
配置一个小型IPv6网络
SDN与NFV概述
SDN概述
SDN的起源
SDN(software defined network)即软件定义网络。是由斯坦福大学clean slate研究组提出的一种新型网络创新架构。其核心理念通过将网络设备控制屏幕与数据平面分离,从而实现了 网络控制平面的集中控制,为网络应用的创新提供了良好的支撑。
SDN起源提出来三个特征,“转控分离”、“集中控制”,和“开放可编程接口”。
OpenFlow基本概念
openflow是控制器与交换机之间的一种南向接口协议。它定义了三种类型的消息,Controller-to-Switch、Asynchronous和Symmetric。每一种消息又包含了更多的子类型。
• Controller-to-Switch子类型:
▫ Features消息:在SSL/TCP会话建立后, Controller给Switch发送Features请求Switch
的相关信息。 Switch必须应答自己支持的功能,包括接口名、接口MAC地址、接口支
持的速率等等基本信息。
▫ Configuration消息: Controller可以设置或查询Switch的状态。
▫ Modify-State消息: Controller发送该消息给Switch,来管理Switch的状态,即增加/
删除、更改流表,并设置Switch的端口属性。
▫ Read-State消息: Controller用该消息收集Switch上的统计信息。
▫ Send-Packet消息: Controller发送该消息到Switch的特定端口。
• Asynchronous子类型:
▫ Packet-in消息:当Flow Table中没有匹配的表项或者匹配“ send to Controller”,
Switch将给Controller发送packet-in消息。
▫ Packet-out消息:从控制器回复的消息。
▫ Flow-Removed消息:当给Switch增加一条表项时,会设定超时周期。当时间超时后,
该条目就会被删除。这时Switch就会给Controller发送Flow-Removed消息;当流表中
有条目要删除时, Switch也会给Controller发送该消息。
▫ Port-status消息:当数据路径接口被添加、删除、修改的时候,此消息用于通知控制
器。
Flow Table简介
OpenFlow交换机基于流表(flow table)转发报文。
每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七个部分组成。其中关于转发的关键的两个内容是匹配字段和指令。
▫匹配字段是匹配规则,支撑自定义。
▫指令是用来描述匹配后的处理方式。
• Match Fields:流表项匹配项( OpenFlow 1.5.1版本支持45个可选匹配项),可以匹配入
接口、物理入接口,流表间数据,二层报文头,三层报文头,四层端口号等报文字段等。
• Priority:流表项优先级,定义流表项之间的匹配顺序,优先级高的先匹配。
• Counters:流表项统计计数,统计有多少个报文和字节匹配到该流表项。
• Instructions:流表项动作指令集,定义匹配到该流表项的报文需要进行的处理。当报文匹
配流表项时,每个流表项包含的指令集就会执行。这些指令会影响到报文、动作集以及管
道流程。
• Timeouts:流表项的超时时间,包括了Idle Time和Hard Time。
▫ Idle Time:在Idle Time时间超时后如果没有报文匹配到该流表项,则此流表项被删除。
▫ Hard Time:在Hard Time时间超时后,无论是否有报文匹配到该流表项,此流表项都会被删除。
• Cookie: Controller下发的流表项的标识。
• Flags:该字段改变流条目的管理方式。
转发方式对比
• 流表的匹配原则是对于存在的“ table0-table255”,优先从table0开始匹配。同一table内部
按照优先级匹配,优先级高优先匹配。
• 当前OpenFlow的主流应用是用于数据中心的软件交换机,例如OVS、 CE1800V等,而不是
实现硬件交换机的转控分离。
SDN的本质述求
• SDN的本质诉求是让网络更加开放、灵活和简单。它的实现方式是为网络构建一个集中的大脑, 通过全局视图集中控制,实现或业务快速部署、或流量调优、或网络业务开放等目标。
• SDN的价值是:
。集中管理,简化网络管理与运维:
。屏蔽技术细节,降低网络复杂度,降低运维成本;
。自动化调优,提高网络利用率
。快速业务部署,缩短业务上线时间
。网络开放,支撑开放可编程的第三方应用。
• SDN是一个更为广泛的概念而不局限于OpenFlow。转控分离是实现SDN的一种方法而不是
本质。
SDN网络架构
SDN网络架构分为协同应用层、控制器层和设备层。不同层次之间通过开放接口连接。以控制器层为只要视角,区分面向设备层的南向接口和面向协同应用层的北向接口。OpenFlow属于南向接口协议的一种。
• 协同应用层:主要完成用户意图的各种上层应用,典型的协同层应用包括OSS、 OpenStack
等。 OSS可以负责整网的业务协同, OpenStack云平台一般用于数据中心负责网络、计算、
存储的业务协同。还有其他的协同层应用,比如用户希望部署一个安全APP,这个安全APP
不关心设备具体部署位置,只是调用了控制器的北向接口,例如Block( Source IP,
DestIP),然后控制器会给各网络设备下发指令。这个指令根据南向协议不同而不同。
• 控制器层:控制器层的实体就是SDN控制器,是SDN网络架构下最核心的部分。控制层是
SDN系统的大脑,其核心功能是实现网络业务编排。
• 设备层:网络设备接收控制器指令,执行设备转发。
• NBI北向接口:北向接口为控制器对接协同应用层的接口,主要为RESTful。
• SBI南向接口:南向接口为控制器与设备交互的协议,包括NETCONF、 SNMP、 OpenFlow、
OVSDB等。
华为SDN网络架构
华为SDN网络架构支持丰富的南北向接口,包括OpenFlow、OVSDB、NETCONF、PCEP、RESTful、SNMP、BGP、JsonRPC、RESTCONF等。
• 云平台:云数据中心内资源管理平台。云平台包含对网络资源、计算资源和存储资源的管
理。 OpenStack是最主流的开源云平台。
• EMS( Element Management System,网元管理系统)是管理特定类型的一个或多个电信
NE( Network Element,网络单元)的系统。
• Orchestration(容器编排):容器编排工具也可以包含网络业务编排功能。 Kubernetes是
主流的工具。
• MTOSI/CORBA用于对接BSS/OSS。 Kafka/SFTP可用于对接大数据平台。
华为SDN解决方案-管控析构建智简网络
什么是iMaster NCE?
iMaster NCE,自动驾驶网络管理与控制系统,是华为集管理、控制、分析和AI智能功能于一体的网络自动化与智能化平台。
• iMaster NCE能做什么?它有效连接了物理网络与商业意图。南向实现全局网络的集中管理、
控制和分析。面向商业和业务意图使能资源云化、全生命周期网络自动化,以及数据分析
驱动的智能闭环。北向提供开放网络API与IT快速集成。
• iMaster NCE用在哪里?可以在企业领域数据中心网络( DCN)、企业园区( Campus)、
企业分支互联( SD-WAN)等场景,让企业网络更加简单、智慧、 开放和安全,加速企业
的业务转型和创新。
iMaster NCE全新启航
华为数据中心CloudFabricl自动驾驶解决方案
基于iMaster NCE-Fabric,为数据中心网络提供从规划-建设-运维-调优全生命周期服务。
关键特性
极简ZTP部署
网络意图自理解,业务快速部署
• iMaster NCE-Fabric支持对接用户IT系统,为用户意图匹配意图模型,通过NETCONF下发
配置到设备上实现业务快速部署。
• iMaster NCE-Fabric支持对接主流云平台( OpenStack)、虚拟化平台( vCenter/SystemCenter)和容器编排平台( Kubernetes)。
网络变更仿真,预判变更风险
数据中心网络AI智能运维
• 数据中心AI智能运维能力由iMaster NCE-FabricInsight提供。
华为园区网络CloudCampus自动驾驶解决方案
设备即插即用
• 设备即插即用包括但不限于APP扫码开局、 DHCP开局和注册查询中心。
• 注册中心:华为设备注册查询中心,简称注册中心,是华为云管理网络解决方案的主要部
件之一,用于设备的管理模式和注册归属查询。设备根据查询结果确定是否切换到云管理
模式,需要注册到哪个云管理平台。以AP为例, 对于华为支持云管理特性的设备均会预置华为设备注册中心的URL( register.naas.huawei.com)和端口号( 10020)。
构建一网多用的虚拟化园区
业务随行,基于安全组的策略管理
业务随行:不管用户身处何地,使用哪个IP地址,都保证该用户拥有相同的网络权限和一致的用户策略。
有线和无线融合
终端智能识别,安全接入
园区AI智能运维
NFV概述
NFV的背景:同样来自IT行业变革的启示
来自IT界的启示,给网络产业带来了网络架构和设备架构两个层面的思考。网络架构层面引入对SDN控制器的思考,设备架构层面引入了对设备部署形态的思考。
• 网络功能虚拟化被称为NFV( Network Functions Virtualization),而虚拟化之后的网络
功能被称为VNF( Virtualized Network Function)。当我们谈“VNF”时,我们指运营商
IMS、 CPE这些传统网元在虚拟化之后的实现。在硬件通用化后,传统的网元不再是嵌入式
的软硬结合的产品,而是以纯软件的方式安装在通用硬件(即NFVI)上。
NFV的起源
•2012年10月,13家Top运营商(AT&T、Verizon、VDF、DT、T-Mobile、BT、Telefonica等)在SDN
和Open Flowt世界大会上发布NFV(Network Functions Virtualization)第一版白皮书,同时成立了
ISG(Industry Specification Group)来推动网络虚拟化的需求定义和系统架构制定。
•2013年,ETSI下NFVISG(行业规范工作组)进行第一阶段研究,已完成相关标准制定。主要定义网络功能虚拟化的需求和架构,并梳理不同接口的标准化进程。
• 2015年, NFV研究进入第二阶段。其主要研究目标是建设一个可互操作的NFV生态,推动
更广泛的行业参与,并且确保满足阶段一中定义的需求。同时明确NFV与SDN等相关标准、
开源项目的协作关系等。 NFV阶段二主要分为5个工作组: IFA(架构与接口)、 EVE(生
态圈)、 REL(可靠性)、 SEC(安全)、 TST(测试、执行、开源)。各工作组主要讨论
交付件文档框架和交付计划。
• ETSI NFV标准组织与Linux基金会合作,启动开源项目OPNFV( NFV开源项目,提供一个集
成、开放的参考平台),汇聚业界的优势资源,积极打造NFV产业生态。 2015年OPNFV发
布了首个版本,进一步促进NFV商用部署。
• NFV相关的标准组织主要有:
▫ ETSI NFV ISG:制定NFV的需求和功能框架。
▫ 3GPP SA5工作组:重点关注3GPP网元的虚拟化管理( MANO相关)的技术标准和规范。
▫ OPNFV:加速NFV市场化节奏的开源平台项目。
NFV的价值
• NFV(Network Functions Virtualization)是运营商为了解决电信网络硬件繁多、部署运维复
杂、业务创新困难等问题而提出的。NFV在重构电信网络的同时,给运营商带来的价值如下:
▫ 缩短业务上线时间
▫ 降低建网成本
▫ 提升网络运维效率
▫ 构建开放的生态系统
• 缩短业务上线时间:在NFV架构的网络中,增加新的业务节点变得异常简单。不再需要复
杂的工勘、硬件安装过程。业务部署只需申请虚拟化资源(计算/存储/网络等),加载软件
即可,网络部署变得更加简单。同时,如果需要更新业务逻辑,也只需要更新软件或加载
新业务模块,完成业务编排即可,业务创新变得更加简单。
• 降低建网成本:首先,虚拟化后的网元能够合并到通用设备( COTS)中,获取规模经济效
应。其次,提升网络资源利用率和能效,降低整网成本。 NFV采用云计算技术,利用通用
化硬件构建统一的资源池,根据业务的实际需要动态按需分配资源,实现资源共享,提高
资源使用效率。如通过自动扩缩容解决业务潮汐效应下资源利用问题。
• 提升网络运维效率:自动化集中式管理提升运营效率,降低运维成本。例如数据中心的硬
件单元的集中管理的自动化,基于MANO的应用生命周期管理的自动化,基于NFV/SDN协
同的网络自动化。
• 构建开放的生态系统 :传统电信网络专有软硬件的模式,决定了它是一个封闭系统。 NFV
架构下的电信网络,基于标准的硬件平台和虚拟化的软件架构,更易于开放平台和开放接
口,引入第三方开发者,使得运营商可以共同和第三方合作伙伴共建开放的生态系统。、
NFV关键技术
虚拟化
• 在NFV的道路上,虚拟化是基础,云化是关键。
• 传统电信网络中,各个网元都是由专用硬件实现,成本高、运维难。虚拟化具有分区、隔离、封装和相对于硬件独立的特征,能够很好匹配NFV的需求。运营商引入此模式,将网元软件化,运行在通用基础设施上。
• 传统电信网络中,各个网元都是由专用硬件实现的。这种方式的问题在于,一方面搭建网
络需要进行大量不同硬件的互通测试及安装配置,费时费力。另一方面,业务创新需要依
赖于硬件厂商的实现,通常耗时较长,难以满足运营商对业务创新的需求。在这种背景下,
运营商希望引入虚拟化的的模式,将网元软件化,运行在通用基础设施上(包括通用的服
务器、存储、交换机等)。
• 使用通用硬件,首先运营商可以减少采购专用硬件的成本。其次,业务软件可以快速的进
行迭代开发,也使得运营商可以快速进行业务创新、提升自身的竞争力。最后,这也赋予
了运营商进入云计算市场的能力。
云化
• 美国国家标准与技术研究院(NIST)定义:云计算是一种模型,它可以实现随时随地,便捷地,随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用、及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度
• 云计算拥有诸多好处。运营商网络中网络功能的云化更多的是利用了资源池化和快速弹性伸缩两个特征。
• 美国国家标准和技术研究院的定义,云计算服务应该具备以下几条特征:
▫ 按需自助服务( On-demand Self-service):云计算实现了IT资源的按需自助服务,
不需要IT管理员的介入即可申请和释放资源。
▫ 广泛网络接入( Broad Network Access):有网络即可随时、随地的使用。
▫ 资源池化( Resource Pooling):资源池中的资源包括网络、服务器、存储等资源,
提供给用户使用。
▫ 快速弹性伸缩( Rapid Elasticity):资源能够快速的供应和释放。申请即可使用,释
放立即回收资源。
▫ 可计量服务( Measured Service):计费功能。计费依据就是所使用的资源可计量。
例如按使用小时为时间单位,以服务器CPU个数、占用存储的空间、网络的带宽等综
合计费。
NFV架构简介
• NFV架构分NFVM(Network Functions Virtualization Infrastructure,基础设施层)、VNF(Virtualized Network Function,虚拟化网络功能层)和MANO(Management and Orchestration,管理编排域),同还要支持现有的BSS/OSS(Business support system/Operation support system)。
• NFV架构每一层都可以由不同的厂商提供解决方案,在提高系统开发性的同时增加了系统
集成的复杂度。
• NFV价值是通过设备归一和软硬件解耦实现资源的高效利用,可以降低运营商TCO,缩短
业务上线时间,打造开放的产业生态。
• NFVI包含硬件层和虚拟化层,业界也有说法称作COTS和CloudOS:
▫ COTS( commercial off-the-shelf,商用现货),即通用硬件,强调了易获得性和通
用性。例如Huawei FusionServer系列硬件服务器。
▫ CloudOS:设备云化的平台软件,可以理解为电信业的操作系统。 CloudOS提供了硬
件设备的虚拟化能力,将物理的计算/存储/网络资源变成虚拟资源供上层的软件使用。
例如华为的云操作系统FusionSphere。
• VNF: VNF可以理解为各种不同网络功能的APP,是运营商传统网元( IMS, EPC, BRAS,
CPE…)的软件实现。
• MANO: MANO的引入是要解决NFV多CT/IT厂家环境下的网络业务的发放问题,包括:分
配物理/虚拟资源,垂直打通管理各层,快速适配对接新厂家新网元。 MANO包括NFVO
( Network Functions Virtualization Orchestrator,负责网络服务的生命周期的管理)、
VNFM( Virtualized Network Function Manager, 负责VNF的生命周期管理)、 VIM
( Virtualized Infrastructure Manager,负责NFVI的资源管理)三部分。
NFV的标准架构
ETSI定义了NFV标准架构,由NFVI、VNF以及MANO主要组件组成。NFVI包括通用的硬件设施及其虚拟化,VNF使用软件实现虚拟化网络功能,MANO实现NFV架构的管理和编排。
NFV架构功能模块
NFV标准架构定义的主要功能模块:
• BSS: Business support system 业务支撑系统。
• OSS: Operation support system 运营支撑系统。
• Hypervisor:是一种运行在物理服务器和虚拟机操作系统之间的中间软件层,可允许多个操
作系统和应用共享一套基础物理硬件。因此也可以看作是虚拟环境中的“元”操作系统,
它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器( Virtual Machine
Monitor VMM)。 Hypervisor是所有虚拟化技术的核心。目前主流的Hypervisor有KVM,
VMWare ESXi, Xen, HyperV等。
NFV架构接口
NFV标准架构的主要接口:
华为NFV解决方案
•华为NFV架构中,虚拟化层及VIM的功能由华为云Stack NFVI平台实现。华为云Stacki可以实现计算资源、存储资源和网络资源的全面虚拟化,并能够对物理硬件虚拟化资源进行统一的管理、监控和优化。
•华为提供运营商无线网、承载网、传输网、接入网、核心网等全面云化的解决方案。
• DSL( Digital Subscriber Line)数字用户线路
• OLT( Optical Line Terminal)光线路终端
网络编程与自动化
网络编程与自动化介绍
网络自动化
• 网络自动化,通过工具实现网络自动化地部署、运行和运维,逐步减少对“人”的依赖。这能够很好地解决传统网络运维的问题。
• 业内有很多实现网络自动化地开源工具,例如Ansible、SaltStack、Puppet、Chef等。从网络工程能力构建的角度考虑,更推荐工程师具备代码编程能力。
基于编程实现的网络自动化
• 近几年随着网络自动化技术的兴起,以Python为主的编程能力成为了网络工程师的新技能要求。
• Python编写的自动化脚本能够很好地执行重复、耗时、有规则的操作。
编程语言概述与Python介绍
• 编程语言(Programming Language),是一种用于编写计算机程序的语言,用于控制计算机的为。
• 按照语言在执行之前是否需要编译区分,可以将编程语言分为需要编译的编译型语言(Compiled
Language),不需要编译的解释型语言(Interpreted Language)。
• 计算机语言另一种分类方式(根据语言层次)是机器语言、汇编语言和高级语言。机器语
言由0和1组成的指令构成,可以直接被机器识别。由于机器语言晦涩难懂,人们将0和1的
硬件指令做了简单的封装,便于识别和记忆(例如MOV、 ADD),这就是汇编语言。这两
种语言都属于低级语言,其他语言都属于高级语言,例如C、 C++、 Java、 Python、 Pascal、
Lisp、 Prolog、 FoxPro、 Fortran等都是高级语言。高级语言编写的程序不能直接被计算机
识别,必须经过转换成机器语言才能被执行。
计算技术栈与程序执行过程
• 对于计算机的技术栈和程序执行的过程。左侧是计算的技术栈,我们可以看到硬件的最底
层,是物理材料、晶体管来实现门电路和寄存器,再组成CPU的微架构。 CPU的指令集是硬
件和软件的接口,应用程序通过指令集中定义的指令驱动硬件完成计算。
• 应用程序通过一定的软件算法完成业务功能。程序通常使用如C/C++/Java/Go/Python等高
级语言开发。高级语言需要编译成汇编语言,再由汇编器按照CPU指令集转换成二进制的
机器码。
• 一个程序在磁盘上存在的形式,是一堆指令和数据所组成二进制机器码,也就是我们通常
说的二进制文件。
高级编程语言-编译型语言
• 编译型语言:编译型语言的程序在执行之前有一个编译过程,把程序编译成为机器语言的文件。
运行时不需要重新翻译,直接使用编译的结果。典型的如C/C++/Go语言,都属于编译型语言。
• 从源码到程序的过程:源码需要由编译器、汇编器翻译成机器指令,再通过链接器链接库函数生
成机器语言程序。机器语言必须与CPU的指令集匹配,在运行时通过加载器加载到内存,由CPU
执行指令。
• 编译型语言编译的时候直接编译成机器可以执行的格式(例如.exe .dll .ocx)。编译和执行
是分开的,不能跨平台执行,例如X86程序不能在ARM架构服务器上运行
高级编程语言-解释型语言
• 解释型语言:解释型语言的程序不需要在运行前编译,在运行程序的时候才逐行翻译。典型的如
Java/Python语言,都属于解释型语言。
• 从源码到程序的过程:解释型语言的源代码由编译器生成字节码,然后再由虚拟机(VM/PVM)解释执行。虚拟机将不同CPU指令集的差异屏蔽,因此解释型语言的可移植性相对较好。
什么是Python?
• Python是一门完全开源的高级编程语言。他的作者是Guido van Rossum。
由于Python具有非常丰富的第三方库,加上Python语言本身的优点,所以Python可以在非常多的,领域内使用:人工智能、数据科学、APP、自动化运维脚本等。
• Python同时也是动态类型语言。动态类型语言是指在程序运行的过程中自动决定对象的类
型,不需要声明变量的类型。
Python代码执行过程
• 对于Python而言, Python源码不需要编译成二进制代码,它可以直接从源代码运行程序。当我们运行Python代码的时候, Python解释器首先将源代码转换为字节码,然后再由Python虚拟机来执行这些字节码。
• Python虚拟机( Python VM)不是一个独立的程序,不需要独立安装。
初识Python代码-交互式运行
• Python有两种运行方式,交互式运行和脚本式运行。
• 交互式编程不需要创建脚本文件,是通过Python解释器的交互模式编写代码。
初识Python代码-脚本式运行
• 脚本模式里的代码可以在各种Python编译器或者集成开发环境上运行。例如Python自带的IDLE、Atom、Visual Studio、Pycharm和Anaconda等。
Python编码规范
• 编码规范是使用Pythor编写代码时应遵守的命名规则、代码缩进、代码和语句分割方式等。良好
的编码规范有助于提高代码的可读性,便于代码的维护和修改。
• 例如分号、圆括号、空行和空格的使用规范建议如下:
Python编码规范-标识符命名
• Python标识符用于表示常量、变量、函数以及其他对象的名称。
• 标识符通常由字母、数字和下划线组成,但不能以数字开头。标识符大小写敏感,不允许重名。
如果标识符不符合规则,编译器运行代码时会输出SyntaxErrori语法错误。
• Python最基本的数据类型有布尔型( True/False)、整数、浮点型、字符串型。 Python里
的所有数据(布尔值、整数、浮点、字符串,甚至大型数据结构、函数以及程序)都是以
对象( object)的形式存在的。这使得Python语言有很强的统一性。
• 运行结果分别为10, 20, Richard, 2, SyntaxError(语法错误)。
• 本文不对Python语法做针对介绍,更多Python语法请参考HCIP课程。
Python编码规范-代码缩进
• 在Python程序中,代码缩进代表代码块的作用域。如果一个代码块包含两个或更多的语句,则这
些语句必须具有相同的缩进量。对于Pytho而言代码缩进是一种语法规则,它使用代码缩进和冒
号来区分代码之间的层次。
• 编写代码时候,建议使用4个空格来生成缩进。如果程序代码中使用了错误的缩进,则会在运行中发出IndentationError错误信息。
• if…else…是一个完整的代码块,拥有相同的缩进。
• print(a)调用参数a,并且和if…else…在一个代码块,需要有相同的缩进。
Python编码规范-使用注释
• 注释就是在程序中添加解释说明,能够增强程序的可读性。在Python程序中,注释分为单行注释
和多行注释。
• 单行注释以#字符开始直到行尾结束。
• 多行注释内容可以包含多行,这些内容包含在一对三引号内(‘’‘...‘’’或者”"”...”"”)。
Python编码规范-源码文件结构
• 一个完整的Pytho源码文件一般包含几个组成部分:解释器和编码格式声明、文档字符串、模块
导入和运行代码。
• 如果会在程序中调用标准库或其他第三方库的类时,需要先使用import或from... import语句导入
相关的模块。导入语句始终在文件的顶部。在模块注释或文档字符串(docstring)之后。
• 解释器声明的作用是指定运行本文件的编译器的路径(非默认路径安装编译器或有多个
Python编译器)。 Windows操作系统上可以省略本例中第一行解释器声明。
• 编码格式声明的作用是指定本程序使用的编码类型,以指定的编码类型读取源代码。
Python 2 默认使用的是 ASCII 编码 (不支持中文), Python 3 默认支持 UTF-8 编码 ( 支持
中文)。
• 文档字符串的作用是对本程序功能的总体介绍。
• time为Python内置模块,作用是提供处理时间相关的函数。
Pythonl的函数与模块
• 函数(Function)是组织好的、可重复使用的一段代码。它能够提高程序的模块化程度和代码利用
率。函数使用关键字def定义。
• 模块(Module)是一个保存好的Python文件。模块可以由函数或者类组成。模块和常规Python程
序之间的唯一区别是用途不同:模块用于被其他程序调用。因此,模块通常没有mai函数。
Python的类与方法
• 类(Class)是用来描述具有一类相同的属性和方法的集合。类的定义使用关键字class。
• 被实例化的类的"函数"被称作方法(Method)。类定义方法时候必须携带slf关键字,它表示类的实例本身。
• 对于函数和方法的官方定义:
• 函数 Function: A series of statements which returns some value to a caller. It can also
be passed zero or more arguments which may be used in the execution of the body.
• 方法 Method: A function which is defined inside a class body. If called as an attribute
of an instance of that class, the method will get the instance object as its first
argument (which is usually called self).
• 更多类的学习,请参考https://docs.python.org/3/tutorial/classes.html。
telnetlib介绍
• telnetlib是Python标准库中的模块。它提供了实现Telnet功能的类telnetlib.Telnet。
• 这里通过调用telnetlib.Telnet类里的不同方法实现不同功能。
• Telnet定义了网络虚拟终端( NVT, Network Virtual Terminal)。它描述了数据和命令序
列在Internet上传输的标准表示方式,以屏蔽不同平台和操作系统的差异,例如不同平台上
换行的指令不一样。
• Telnet通信采用带内信令方式,即Telnet命令在数据流中传输。为了区分Telnet命令和普通
数据, Telnet采用转义序列。每个转义序列由两个字节构成,前一个字节是(0xFF)叫做IAC
( Interpret As Command)“解释为命令”,标识了后面一个字节是命令。 EOF也是一种
Telnet命令,十进制编码是236。
• 套接字( socket)是一个抽象层,应用程序通常通过"套接字"向网络发出请求或者应答网络
请求。
案例
使用telnetlib登录设备
• 本案例手工Telnet登录操作以windows为例:首先输入登录命令, telnet 192.168.10.10。
因在前序步骤中设备配置Telnet使用密码登录,所以此处回显信息为“ Password:”。此时
输入密码 Huawei@123 完成验证,成功登录。
• Python中encode()和decode()函数的作用是,以指定的方式编码格式编码字符串和解码字
符串。本例中, password.encode(‘ascii‘) 表示将字符串’Huawei@123’转为为ASCII。此处
编码格式遵守telnetlib模块官方要求。
• Python字符串增加b, b’ str‘ 表示这是字符串是 bytes 对象。本例中, b’Password:’表示将
字符串’Password:’转换为bytes类型字符串。此处编码格式遵守telnetlib模块官方要求。
园区网络典型组网架构及案例实践
园区网络基本概念
什么是园区网?
• 园区网络的规模可大可小,小到一个SOHO( Small Office Home Office,家居办公室),
大到校园、企业园区、公园、购物中心等。园区的规模是有限的,一般的大型园区,例如
高校园区、工业园区,规模依然被限制在几平方公里以内,在这个范围内,我们可以使用
局域网技术构建网络。超过这个范围的“园区”通常被视作一个“城域”,需要使用到广
域网技术,相应的网络会被视作城域网。
• 园区网络使用的典型局域网技术包括遵循IEEE( Institute of Electrical and Electronics
Engineers,电气和电子工程师协会) 802.3 标准的Ethernet 技术(有线)和遵循IEEE
802.11 标准的Wi-Fi 技术(无线)。
园区网络典型架构
• 园区网络典型层次和区域:
▫ 核心层:是园区网骨干,是园区数据交换的核心,联接园区网的各个组成部分,如数
据中心、管理中心、园区出口等。
▫ 汇聚层:处于园区网的中间层次,完成数据汇聚或交换的功能,可以提供一些关键的
网络基本功能,如路由、 QoS、安全等。
▫ 接入层:为终端用户提供园区网接入服务,是园区网的边界。
▫ 出口区:园区内部网络到外部网络的边界,用于实现内部用户接入到公网,外部用户
接入到内部网络。一般会在此区域中部署大量的网络安全设备来抵御外部网络的攻击,
如IPS( intrusion prevention system,入侵防御系统)、 Anti-DDoS设备、 Firewall
(防火墙)等。
▫ 数据中心区:部署服务器和应用系统的区域,为企业内部和外部用户提供数据和应用
服务。
▫ 网络管理区:部署网络管理系统的区域,包括SDN控制器,无线控制器, eLOG(日
志服务器)等,管理监控整个园区网络。