BGP是一种自治系统间的动态路由协议,它的基本功能是在自治系统之间提供自动交换无环路由信息,通过交换带有自治区域号(AS)序列属性的路径可达信息,来构造自治区域的拓朴图,从设计上消除了路由环。
BGP基本概念: BGP特点:
BGP是一种外部路由协议,与OSPF、RIP不同,其着眼点不在于发现和计算路由,而
在于控制路由的传播和选择最好的路由。
BGP通过携带AS路径信息,可以彻底的解决路由循环问题。 为了控制路由的传播和路由的选择,为路由附带属性信息。 使用TCP作为其传输层协议,提高了协议的可靠性。端口号179。
BGP-4支持CIDR(无类别域间选路),CIDR的引入简化了路由聚合,减化了路由表。 BGP更新时只发送增量路由,减少了BGP传播路由占用的带宽。 提供了丰富的路由策略。
1、 自治系统
定义:由同一技术管理机构管理,使用统一选路策略的一些路由器的集合。每一个自治系统都有唯一的自治系统编号,这个编号是由因特网授权管理机构分配的。
引用自治系统的思想是:通过不同的编号来区分不同的自治系统。
自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是专用网络编号。
2、 BGP工作机制
BGP作为一个应用层协议运用在一台特定的路由器上,系统启动时通过发送整个BGP路由表交换路由信息,之后为了更新路由表,只交换更新信息,在系统运行过程中,通过接收和发送keep-alive消息来检测相互之间连接是否正常。
自治系统分为过渡自治系统和SUTB自治系统。
BGP发送优选的BGP路由和引入的IGP路由给对等体(peer)。
3、 BGP的两种邻居
IBGP:对等体之间不一定是物理直连的,但必须保证逻辑上的全连接。(TCP连接) EBGP:对等体之间有物理上的直接链路。
1
4、 BGP的路由通造原则
多条路径时,BGP speaker 只选择最优的路径给自己使用。 BGP speaker只将自己使用的路由通告给相邻体。
BGP speaker从EBGP获得的路由会向所有的BGP相邻体通告。 BGP speaker从IBGP获得的路由不向它的IBGP相邻体通告。
BGP speaker从IBGP获得的路由信息是否通告给EBGP相邻体,要依据IGP和BGP的同步情况来决定。
连接一建立,BGP speaker将自己所有的BGP路由信息通告给新相邻体。
5、 BGP同步
BGP必须等待直到IGP在其自治系统中成功的传播该选路信息,才向其它自治系统通告过渡信息。
当As中所有的BGP路由器组成IBGP全合闭网时,可以取消同步。 路由器在向IBGP邻居通告路由时强制下一跳为自己本身的接口。
6、 BGP的三种路由来源
BGP的路由信息需要通过配置命令的方式注入到BGP中。
纯动态注入:路由器将通过IGP路由协议动态获得的路由信息直接注入到BGP中。 半动态注入:路由器有选择性的将IGP路由协议获得的动态路由信息注入到BGP中。 静态注入:路由器将静态配置的某条路由注入到BGP系统中。
7、 BGP的四种报文
Open报文:用来交换各自版本号、自治系统号、保持时间、BGP标识等信息,进行协商。
Updata报文:携带更新路由信息,其中包括撤消路由信息和可达路由信息及其路径属性。
撤消路由和目的地址的表示方法为:length表示地址前缀的长度,prefix表示地址前缀。 UPDATA由不可达路由、路径属性和网终可达性信息三部分构成。 一个UPDATA消息一次只能通告一个路由,但可以携带多个路径属性。 一个UPDATA消息一次可以通告多个路由,但它的路径属性必须相同。 一个UPDATA消息一次可以列出多个被撤消的路由。
Notification报文:BGP检测到连接中断、协商出错、报文差错时,关闭同对等体的连接。
2
Keepalive报文:在BGP对等体之间周期性的发送报文,以确保其连接有效。 OPEN报文首先建立邻居关系,其它对等体收到OPEN报文后,以KEEPALIVE作出响应,握手成功后开始UPDATA,之后是KEEPALIVE和NOTIFICATION等消息的交换操作。
8、 BGP协议的状态机
BGP邻居关系建立过程
首先是idle状态,BGP一旦开始,状态机就进入connect状态,之后,如果connect-retry定时器超时,则停在connect状态,并建立TCP连接,如果连接失败则进入active状态,如果成功则进入opensent状态。在active状态下,如果TCP状态建立不成功则一直在active状态下,成功后进入opensent状态。在opensent状态下,BGP一旦收到open报文,就会进入openconfirm状态下。在openconfirm状态下,如果keepalive定时器超时则会停在openconfirm状态下,直到收到keepalive报文,BGP进入established状态,BGP建立成功。
9、 BGP的属性
BGP的属性是一套参数,对特定的路由进行进一步的描述,使BGP能够对路由进行过滤和选择。路由属性分为如下几类:
必遵属性:在路由更新的数据报中必须存在的路由属性,如缺少必遵属性,路由信息就会出错。
可选属性:可选的,不一定存在于更新的数据报文中,根据需要配置。
过渡属性:具有AS间可传递的属性就是过滤属性,过滤属性的域值可以被传送到其它AS中,并继续起作用。
非过滤属性:只在本地起作用,出了自治系统,域值就会恢复到缺省值。 常见BGP路由属性
Origin(起点)属性:定义路径信息的来源,标记一条路由怎么成为BGP。是必遵的路由属性。
在其它因素相同的情况下,BGP按IGP、EGP、INCOMPLETE的顺序选择路由。 IGP为是将聚合路由和用直接注入到BGP路由表的具体路由看作AS内部的。 EGP是通过EGP得到的路由的起点。
INCOMPLETE通过其它的IGP协议引入的路由起点。
AS-path(AS-路径)属性:是路由经过的AS序列,即列出在到达所通告的网络之前所经过的AS清单。是一个必遵的过渡属性。BGP使用AS-PATH属性作为路由更新的一部分
3
来确保在INTERNET上的一个无环路的拓朴结构。BGP不会接受在AS路径属性中包含本自治系统的路由。BGP在向EBGP对等体通告一条路由中,要将自己的AS号加入到AS路径属性中。在其它因素相同时,选择AS路径最短的路由。
Next-hop(下一跳)属性:到达更新消息所列网络的下一跳边界路由器的IP地址。是一个必遵过渡属性。BGP在向IBGP通告其它EBGP的路由信息时,不改变下一跳地址。BGP在向EBGP通告路由信息时,下一跳属性为BGP与对端连接的本地端口地址。对于可能多路访问的网络,下一跳情况会不同。
MED属性:当某个AS有多个入口时,用MED属性可能帮助外部的邻居路由器选一条较好的入口路径,一条路由的MED值超低,其优先级越高。可选非过渡属性,路由器只比较来自同一AS中各EBGP邻居路径的MED值,不比较来自不同AS的MED值,除非能够确实不同的AS采用了相同的IGP和路由选择方式。
Local-perference本地优先属性:用于在自治系统内优选到达某一目的地的路由。可选非过渡属性。本地优先属性是用来帮助AS内部的路由器到区域外部选择一个较好的出口,即本地优先较高的出口点。
Community(团体)属性:团体属性标识了一组有相同特征的路由信息,与它所在的IP网段和自治系统无关。可选过渡属性。公认团体有:
NO-EXPORT:不应该通告给其它联盟之外的对等体。 NO-ADVERTISE:不应该通告给任何BGP对等体。
LOCAL-AS:通告给本地AS内的对等体,不应该通告给任何EBGP对等体。 INTERNET:通告给所有其它路由器。
10、 BGP路由选择过程
如果此路由的下一跳不可达,则忽略此路由。 选择本地优先级较大的路由。
选择本地路由器始发的路由(本地优先级相同) 选择AS路径较短的路由
依次选择起点类型为IGP、EGP、INCOMPLETE路由。 选择MED较小的路由
选择ROUTER ID较小的路由。
11、 BGP基本配置
[quidway]bgp as-number 启动BGP,as-number指本地自治系统号。
4
[quidway-bgp]peer peer-address as-number as-number配置BGP邻居,IBGP配置as-number为AS号,EBGP配置as-number为EBGP所在AS号。
[quidway-bgp]network ip-address [mask mask]
[quidway-bgp]import-route protocol[med med]配置注入路由
12、 BGP参数配置
[quidway-bgp]peer peer-address version version-number 配置同伴BGP的版本号 [quidway-bgp]timers keepalive-interval holdtime-interval配置BGP定时器的时间间隔和连接保持间隔,通常时间间隔为连接保持间隔的三分之一
[quidway-bgp]peer peer-address route-updata-interval seconds配置同伴发送UPDATA报文的时间间隔。
13、 配置BGP路由策略
[quidway-bgp]peer {group-name|peer-address}filter-policy acl-number {import|export}配置对等体的前缀过滤器。
[quidway-bgp]peer peer-address acl aspath-list-number {import|export}配置对等体的AS路径过滤器。
[quidway-bgp]peer peer-address route-policy policy-name {import|export}配置对等体的路由策略。
14、 BGP路由器对路由的处理过程
对ASBR来说,路由有两种来源:从对等体接收的和从IGP引入的。对于接收的:BGP可能从多个对等体收到目的地相同的路由,根据规则选择最好的路由加入的IP路由表中。
对于IGP引入的:要经过引入策略的过滤和设置,BGP发送优选的BGP路由和引入IGP路由给对等体。
15、 BGP在大规模的网络中遇到的问题
路由聚合就是把各段路由综合到一个或多个聚合或CIDR中,以便把路由表中的路由数目减到最小。
[quidway-bgp]addregate 172.16.0.0 255.255.240 detail-suppressed只通告聚合路由。 BGP反射:指定一台集中路由器作为内部对话的焦点,多个BGP路由器可以与一个中心对等话,然后多个路由反射器在进行对等话。
[quidway-bgp]reflect cluster-id 10 指定焦点
[quidway-bgp]peer 1.1.1.2 reflect-client 指定非客户路由器
5
BGP联盟:[quidway-bgp]confederation id 100 申所属的自治系统 [quidway-bgp]confederation peer-as 201 本自治系统中的邻居子系统。
BGP路由衰减:控制路由不稳定的技术。可达衰减期,不可达衰减期,重用值,抑制值,惩罚上限。[quidway-bgp]dampening 15 15 500 1000 8000
6
路由策略与引入
1. 路由策略的作用
1、 路由信息过滤的手段
2、 发步路由信息时只发送部分信息 3、 接收路由信息时只接收部分信息
4、 进行路由引入时,引入满足特定条件的信息支持等值路由 5、 设置路由协议引入的路由属性
路由策略由一系列规则组成,规则大体分为三类,分别作用于路由发布、路由接收和路由引入过程。定义一条策略等同于定义一组过滤器,并在接收、发布一条路由信息或在不同协议间进行路由信息交换前应用这些过滤器,路由策略也常被称为路由过滤。公共过滤器是路由策略实现的基础。
2. 策略相关的五种过滤器
1、 路由策略(routing policy):由一组if-match和apply子句组成,if-match定义所满足
的过滤条件,apply定义满足了过滤条件后执行的命令。 2、 访问列表(access-list):
3、 前缀列表(prefix-list):在应用于路由信息的过滤时,匹配对象为路由信息的目的
地址信息域,另一种应用直接用于路由器对象,使本地路由协议只能接收某些特定路由器发布的路由信息,这些路由器的地址必须通过prefix-list的过滤。 4、 自治系统路径信息访问列表(aspath list):仅用于BGP协议 5、 团体属性列表(community-list):仅用于BGP协议
3. 路由策略与过滤器的关系
在路由引入(import-route)时使用routing policy 匹配as-path时使用AS-PATH LIST 匹配community 时,使用community list 匹配ip address时,使用ip prefix和access list
在路由发布(export)和路由接收(import)时使用地址前缀列表和访问控制列表,接收时还可以使用gateway(特定路由器)
4. 路由策略的配置
路由策略的配置可以分为过滤列表的定义和过滤列表的应用两部分,过滤器的应用实际
7
上是一个策略规则的定义过程,通过对过滤器的引用以实现路由过滤的功能。
定义路由策略(routing policy):
[quidway]route-policy policy-name {permit|deny}{seq-number}一个routing policy下可以有多个节点,不同的节点用seq-number标识,不同的seq-number各个部分之间的关系是或的关系,即路由信息依次匹配各个部分,通过routing policy的某一部分,就意味着通过该routing policy过滤。
定义路由策略的 if-match子句:
if-match as-path aspath-list-number指定匹配路由信息的原AS路径前的AS序号 if-match community {standard-community-list-number[exact-match]| extended-community-list-number} 指定匹配路由信息BGP团体属性
if-match ip address {acl-number|ip-prefix prefix-list-name}指定匹配的路由信息访问列表和前缀列表
if-match interface [type number]指定匹配的接口
if-match ip next-hop{acl-number|ip-prefix prefix-list-name}指定路由信息的下一跳 if-match cost cost指定匹配的OSPF路由信息的花费 if-match tag tag-value指定匹配OSPF路由信息的标记域的值 if-match route-type{internal|external}指定匹配的路由信息的路径类型
每个节点下可以有多个if-match和apply子句,if-match子句之间是与的关系,即路由信息必须通过该部分所有if-match子句的匹配才算通过routing policy该部分的过滤;如果不指定if-match子句,则所有的路由信息都会通过该节点的过滤。
定义路由策略的apply子句:
apply as-path aspath-list-number指定原AS路径前的AS序号
apply community {{[aa:nn][no-export-subconfed][no-advertise][no-export]}[additive]|none| additive}指定设置BGP团体的属性
apply ip next-hop ip-address 配置BGP路由信息的下一跳地址
apply local-preference local-preference配置BGP路由信息的本地优先级 apply cost cost配置路由信息的路由花费
apply origin{igp|egp as-number|incomplete}配置BGP路由信息的路由源 apply tg tag-value配置OSPF路由信息的标记域 引入其他协议的路由信息:
8
路由协议可以通过引入其它协议路由信息的方式来共享对方的路由信息,在引入其它协议路由信息时,可以通过对一个路由策略的引过过滤掉不期望的路由,实现有选择的引入。
Import-route protocol [cost cost] [route-policy route-policy-name]RIP协议配置引入 Import-route protocol[cost cost] [type1|2] [tag tag-value][route-policy policy-name]OSPF配置引入,tag 是OSPF引入其它协议路由时,设定引入路由的标记域
Import-route protocol [med med][route-policy policy-name] 定义地址前缀列表prefix-list:
ip ip-prefix prefix-list-name [index index-number]{permit|deny}network/len [greater-equal ge-value][less-equal le-value]定义前缀列表,地址前缀列表用于IP地址的过滤,一个地址前缀列表可以有若干条表项,每一个表项指定一个地址前缀范围,地址前缀范围有两部分,分别由len与[greater-equal ge-value][less-equal le-value]来确定,若两部分前缀范围都被指定,则待过滤IP必须匹配这两部分的前缀范围。
配置路由过滤:
在某些情况下,可能只发布或引入某些满足条件的路由信息以阻止邻居路由器得知某些路由,可利用路由策略中对地址前缀列表和访问列表的引用来实现路由信息的过滤。
Filter-policy gateway prefix-list-name import配置对接收的路由进行过滤
Filter-policy {acl-number|ip-prefix prefix-list-name}import配置对接收的全局路由信息进行过滤。
Filter-policy ip-prefix prefix-list-name gateway prefix-list-name import配置对接收的指定地址发布的路由进行过滤,又对匹配prefix-list 的路由进行过滤。
Filter-policy{acl-number|ip-prefix prefix-list-name}export [protocol]配置对协议发布路由的过滤。
AS正则表达式:
。 :匹配任意单字符。 * :匹配模式中0或更多的序列 + :匹配模式中的1或更多的序列 ?:匹配模式0或1次出现 ^ :匹配输入字符串的开始 $:匹配输入字符串的结束 —:匹配逗号,括号,字符串的开始和结束,空格。
[]:表示一个单字符模式的范围 „:把一个范围的结束点分开
9
网络安全特性
1、
网络安全概述
1、 络安全是internet必须面对的实际问题 2、 网络安全是一种综合性技术
3、 网络安全具有两层含意:保证内部局域网的安全(不被非法入侵),保护和外部进
行数据交换的安全。 4、 网络技术的完善和更新
2、 网络安全关注范围
保护网络物理线路不会轻易遭受攻击 有效的识别合法的和非法的用户。 实现有效的访问控制 保证内部网络的隐蔽性
有效的防伪手段,重要的数据重点保护 对网络设备、网络拓扑的安全管理 病毒防范
提高安全的防范意识
3、 网络安全必要的技术
可靠性和线路安全
可靠性要求主要针对于故障恢复和负载能力
主备运行:主接口故障时,备份接口自动接替主用接口的工作 负载分担:网络流量增大时,备份链路承担部分主用接口的工作
线路安全指的是线路本身的安全性:防止非法用户利用线路接口进行访问。 身份认证
访问路由器时的身份认证:console口配置、telnet登陆配置、snmp配置、modem远程配置。 对其它路由的身份认证:直接相连的邻居路由器、逻辑连接的对等体。 路由信息和身份认证: 防止伪造路由信息的侵入。
访问控制
对网络设备的访问控制:分级保护、不同级别的用户有不同的操作权限。
基于五元组的访问控制:根据数据包信息进行数据分类、不同的数据流采用不同的策略。
10
五元组指IP报头中的源IP地址、目的IP地址、协议号、源端口、目的端口五个元素。 基于用户的访问控制:对于接入的服务用户,设定特定过滤属性。
信息隐藏
地址转换:隐蔽私网内部IP、仅仅是内部用户可以直接发起建立连接请求 应用场合:内部局域网访问Internet 数据加密和防伪 数据加密:
利用公网传输数据,不可避免的面临数据窃听的问题 传输之前进行数据加密,保证只有与之通信的对才能够解密 数据防伪:
报文在传输过程中,被截获、修改,重新投放到网络上 接受端进行数据识别,丢弃被修改的报文 相关技术:数据加密、数字签名、IPSEC 安全管理
保证重要的网络设备处于安全的运行环境,防止人为破坏 保护好访问口令,密码等重要的安全信息 进行安全策略管理,有效的利用安全策略
在网络出入口实现报文审计和过滤,提供网络运行的必要信息
网络攻击主要方式:窃听报文、IP地址欺骗、源路由攻击、端口扫描、拒绝服务攻击、应用层攻击。
4、 QUIDWAY路由器的安全技术
AAA提供一个实现身份认证的主框架,是验证、授权、计费的简称,提供基于用户的验证、授权、计费的服务,AAA技术不是根据IP地址等信息来验证用户,而是根据用户名、口令对用户进行验证。使用RADIUS等协议实现对网络的访问控制。
包过滤技术是利用访问控制列表实现的一种防火墙技术,包过滤技术是最常用的一种访问控制手段,提供基于IP地址、端口和时间段包过滤,利用包过滤技术可以阻挡“不信任网络”的访问。
地址转换技术提供了内部用户透明访问外部网络的功能,有效地屏蔽了内部网络地址,禁止外部主机直接访问内部网络,实现了内部主机的隐藏。
IPSEC和IKE技术的结合使用,有效的提供了在INTERNET网上进行数据加密和数据
11
防伪的功能。
IPSEC可以实现数据的加密和防伪,可以使在不安全的线路上传输加密信息,形成“安全隧道”。为用户在INTERNET上提供安全的VPN解决方案。
IKE为通信双方提供交换密钥等服务,定义了通信双方进行身份认证、协商加密算法以及生成共享的会话密钥的方法,并保证永远不在不安全的网络上直接传送密钥,而是通过一系列交换信息计算密钥。
隧道技术是实现VPN技术的核心技术,二层隧道技术主要有VPDN,主要用来提供拨号接入服务,三层隧道主要有GRE技术,主要用来使用户在INTERNET上构建自己的虚拟专网。
5、 安全接入INTERNET
基于接口的包过滤,并可以在进出方向上分别设置。
可以对特殊的时间段定义特殊的包过滤规则,实现与时间相关的访问需求。 内部网络的用户可以通过地址转访问INTERNET,内部地址对外屏蔽。 外部不能直接访问内部网络
可以通过地址转换向外提供WWW、FTP等服务器
日志主机可以记录网络运行情况,便于用户的安全分析与管理
6、 AAA概述
验证(authentication):验证用户身份,
用户名、口令验证:包括PPP的PAP和CHAP验证,EXEC用户验证、FTP用户验证。拨号的PPP用户可以进行主叫号码的的验证。
授权(authorization):授权用户可以使用哪些服务,可以PPP、EXEC、FTP的一种或几种。回呼号码:对PPP回呼用户可以设定回呼号码。隧道属性:可以配置L2TP的隧道属性。 计费(accounting):记录用户使用网络资源的情况,对用户进行计费,对于进行了验证的用户缺省都要进行计费。不需要计费一定要配置aaa accounting-scheme optional
实现AAA功能可以在本地进行,也可由AAA服务在远程进行,计费功能由于占用系统资源大通常都使用AAA服务器实现,对于用户数量大的情况,验证和授权也应该使用AAA服务器,AAA与网络设备通信有标准协议,目前流行的是RADIUS协议。
提供AAA支持的服务:
PPP的PAP和CHAP验证的用户。EXEC:指通过TELNET登录到路由器,以及通过各种方式进入路由器进行配置的操作。FTP:通过FTP登录到路由器的用户。
12
AAA配置命令: Aaa enable 启用AAA
Aaa authentication-scheme {local|ppp}{default|methods-list}{methods1[methods2„]}配置local和ppp的验证方法表,缺省方法表的缺省方法是本地验证,验证方法有三种:radius、local、none。5种有效的组合:radius、local、none、radius local、radius none。
方法表的概念:local只能配置一个方法表,只要配置了方法表即自动应用到所有需要AAA的FTP用户、EXEC用户。PPP可以配置多个方法表,特定的接口使用哪个方法表还需要将这个方法表应用以接口上,即在接口上配置:PPP authentication-mode{pap|chap}[callin] [scheme {default|name-list}]。
7、 RADIUS概述
RADIUS采用客户机/服务器结构,在路由器上运行RADIUS客户端程序。验证时客户端的任务是将用户的信息发送到指定的服务器,然后根据服务器的不同响应进行处理。RADIUS服务器的任务是接收客户端发来的用户连接请求,验证用户,并返回客户端提供服务所需要的配置信息。RADIUS服务器的数据库中集中存放了相关的安全信息,避免安全信息凌乱散布带来的不安全性,同时更可靠且易于管理。实瑞计费时,客户端将用户的上网时长、进出字节数、进出包数等原始数据送到RADIUS服务器上,以供RADIUS服务器计费时使用。
RADIUS协议使用了两个UDP端口分别用于验证和计费,使用1812号端口作为验证端口,1813号端口用于计费。
RADIUS协议采用了“请求/响应”的操作模式,请求由客户端发起。路由器提供重传机制,RADIUS服务器收到一个合法的请求后给予响应,当客户端在一定的时间内没有收到RADIUS服务的响应时,会重传刚才的请求,如果多次重传后仍然收不到响应,那么路由器会向备用的RADIUS服务器发送请求。
客户端与服务器共享密钥,通讯时使用MD5算法通过共享密钥对包进行数字签名,签名的正确性可以防止网络上的其他主机冒充路由器或RADIUS服务器,用户口令也要进行加密后再在网上传送,使口令不会泄漏。
每个RADIUS包有0到多个属性,用户的各种信息均写在属性中,一些属性协议还规定了各属性值的做含义。
第次计费过程包括计费请求、计费应答。对一个用户的计费过程有:计费开始、实时计费、计费结束。计费信息:会话时间、输入输出包数、输入输出字节数。
13
RADIUS协议为标准协议,遵循RADIUS协议的所有服务器可以互通。用户管理放置在RADIUS服务器端进行,有相应的管理软件。用户可以灵活选用RADIUS服务器及用户管理软件。
RADIUS基本配置: Radius
server{hostname|ip-address}[authentication-port
port-number][accounting-port
port-number]配置服务器的地址和端口号,最多可配置3个服务器
Radius shared-key string配置共享密钥
Radius retry times 配置最大重传次数,如果达到这个次数仍未得到应答,则认为不可用。 Radius timer response-timeout seconds 配置重传时间间隔,单位为秒
Radius timer realtime-accounting minutes 配置实时计费时间间隔,单位为分,此时间不易过短,否则会占用大量系统资源
14
VPN原理及配置
1. VPN的分类
按应用类分类:
access vpn:(DVPN)解决公司员工在异地访问公司内网的问题,提供身份验证、授权和记费的功能。
intranet vpn:通过公用网在各个路由器这间建立VPN安全隧道连接来传输用户的私有网络数据。常用技术有GRE、Ipsec。
extranet vpn:利用VPN将企业网延伸至合作伙伴与客户。 按实现的层次分类:二层隧道协议和三层隧道协议 二层隧道协议:是将整个PPP帧封装在内部隧道中。
PPTP(point-to-point tunneling protocol):由微软、朗讯、3COM公司,支持点到点协议在IP网络上的隧封装,PPTP作为一种呼叫控制和管理协议,用一种增强GRE技术为传输的PPP报文流控和拥塞控制的封装服务。
L2F(layer 2 forwarding):由CISCO和北方电信等公司,支持对更高级协议链路层的隧道封装,实现拨号服务器和拨号协议连接在物理位置上的分离。
L2TP(layer 2 tunneling protocol):由IETF等,结合以上两个协议的优点,既可以实现拨号VPN,也可以实现专线VPN。
三层隧道协议:起点和终点均在ISP内,隧道内只携带第三层报文。
GRE(generic routing encapsulation):用于实现任意一种网络层协议在另一种网络层协议上的封装。
Ipsec:不是一个单一的协议,它给出IP网络上数据安全的一整套体系结构。包括AH、ESP和IKE。
三层与二层相比,优势在于安全性,可扩展性和可靠性。
2. VPN设计原则
安全性:
隧道与加密:隧道能实现多协议封装,增加VPN应用的灵活性,可以在无连接的IP网上提供点到点的逻辑通道。应用加密隧道进一步保护了数据的私有性,使数据在网上传送而不被非法的窥视和篡改。
数据验证:数据验证使接收方能够识另被篡改的数据,保证数据的完整性。
15
用户验证:VPN可以使合法用户访问他们需的企业资源,同时禁止未授权的用户非法访问。
防火墙与攻击检测:
可靠性:VPN可靠而稳定的运行是VPN管理必须考虑的问题。
可扩展性:VPN管理对需要对日益增多的用户作出迅捷反应,其中包括网络软、硬件的升级,网络质量的保证和路由策略的维护。
经济性:保证VPN管理扩展性的同时,不应过多的增加操作和维护成本。
3. L2TP协议
是为用户和企业的服务器之间透明传输PPP报文而设置的隧道协议。
特性:支持接入用户的内部动态地址分配、多协议传输、支持RADIUS服务器的验证、灵活的身份验证机制及高度的安全性、网络计费的灵活性、可靠性。
使用L2TP构建DVPN: 1、
员工可以通过PSTN/ISDN连接到ISP端的LAC,再由LAC通过INTERNET向LNS发起隧道连接请求,与总部连接。
2、
员工可以配置DVPN软件与企业网关建立隧道连接。
L2TP存在两种消息:控制消息和数据消息
控制消息:用于隧道和会话连接的建立、维护和删除。 数据消息:用于封装PPP帧并在隧道上传输。 L2TP隧道和会话建立流程:
为了VPN用户和服务器之间传递数据报文,必须在LAC和LNS之间建立传递数据报文隧道和会话连接,隧道是保证具有相同会话连接特性的一组用户可以人享的连接属性所定义的通道;会话是针对每个用户和VPN服务器建立连接的PPP数据通道,同一个LAC和LNS只能建立一个L2TP隧道,多个会话可以复用在一个隧道连接上,隧道和会话是动态建立和删除的。
会话建立是由PPP触发的,隧道建立是由会话触发的,会话在建立是没有可用隧道,先建立隧道连接,会话建立完毕后,开始进行数据传输。
隧道建立:三次握手,LAC发起隧道建立请求SCCRQ,LNS收到请求后进行应答SCCRP,LAC收到应答后确认SCCCN。隧道建立。
会话建立:三次握手,LAC发起会话建立请求ICRQ,LNS收发请求后进行应答ICRP,LAC收到应答后确认ICCN。会话建立。
16
会话和隧道的折除流程:LAC和LNS任意一端发送一个拆除通知,另一端进行确认。 L2TP协议封装过程:
LAC端用户数据为私有IP,先经过PPP封装,然后传递给L2TP协议,再封装成UDP,之后再封装成可以在INTERNET上传输的IP报文。
LNS端按照上面的方法反方向拆除报文。 L2TP配置命令: LAC:
配置AAA认证和本地用户 [quidway]l2tp enable 启动VPDN
[quidway]l2tp-group group-number 创建VPDN组
[quidway-l2tp1]start l2tp {ip ip-address[ip ip-address……]}{domain domain-name|dnis dialed-number|fullusername user-name}配置发起远程的L2TP请求及LNS地址(LAC侧提供了三种用户认证方式:根据用户全名(fullusername)验证、根据带特定域名的用户验证、根据被叫号码(dnis)验证),LNS最多可配置5个,根据配置的先后顺序查找。
LNS:
配置本地VPDN的用户 启动VPDN 创建VPDN组
[quidway]interface virtual-template virtual-template-number 创建虚模板 [quidway-virtual-template1]remote address pool [pool-name] 为用户分配置地址
[quidway-l2tp1]allow l2tp virtual-template virtual-template-number [remote remote-name]配置接收呼叫的隧道对端名称
L2TP可选参数配置:
[quidway-l2tp1]tunnel name name配置本端名称
[quidway-l2tp1]tunnel authentication 启动隧道验证,提供三种隧道验证方式 [quidway-l2tp1]tunnel password {simple|cipher} password配置密码
[quidway-l2tp1]tunnel timer hello hell0-interval配置隧道HELLO报文发送时间间隔。60S [quidway]l2tp domain{prefix separator|suffix separator}delimiters [quidway] l2tp match-order {dnis|dnis domina|domina|domina dnis} [quidway-l2tp1]mandatory-chap配置强制本端认证
17
[quidway-l2tp1]mandatory-lcp 配置强制LCP重新协商
[quidway-l2tp]tunnel flow-control receive-windows size配置隧道流控接收窗口的大小。 [quidway-l2tp1]l2tp session-limit session-number配置L2TP最大会话数 L2TP隧道呼叫建立流程: 1、 PC机发起呼叫连接请求
2、 PC机与LAC进行PPP LCP协商,确保之间的物理连接正常 3、 LAC对PC提供的用户信息进行PAP或CHAP认证 4、 LAC将认证信息发给RIDIUS服务器进行认证
5、 RIDIUS服务器对用户进行认证,如果认证通过则返回用户对应的LNS的地址等相
关信息,并准备发起TUNNEL请求
6、 LAC与LNS建立TUNNEL隧道,则LNS要通知LAC隧道验证通过 7、 LAC将用户CHAP response、response identifier和PPP协商参数发送给LNS 8、 LNS将接入请求发送给RIDIUS服务器进行认证 9、 RIDIUS服务器通过认证,则返回响应信息 10、
如果LNS端配置了强制本端CHAP认证,LNS要对用户进行认证,并发送
CHAP challenge。 11、 12、
用户回应CHAP response
LNS再次将信息发给RIDIUS进行认证,如果认证通过则返回响应信息。
L2TP排错:
Tunnel建立失败:在LAC端LNS的地址配置不正确。
LNS端没有设置可以接收该通道的VPDN组。 Tunnel验证不通过。
PPP协商不通过:LAC端配置的用户名和密码有误,或者LNS端没有设置相应的用户。 LNS没有不能分配地址 通道密码的验证没有通过。
数据传输失败,建立连接后数据不能传输:LAC配置的地址有误或者网络拥挤。
4. GRE
对某些网络层协议的数据报进行封装,使这些补封装的数据报能够在另一个网络层协议中传输。
GRE可以实现多协议的本地网通过单一协议的骨干网传输的服务,扩大了网络的工作
18
范围。
GRE是一种承载协议,提供了将一种协议的报文封装在另一种协议报文的机制,使报文能够在异种网络中传输。异种报文传输的通道称为TUNNEL。并在两端分别对数据报进行封装和解封。
系统接收到的一个需要封装和路由的数据报称为负载报文,这个有效报文先由GRE封装,接着被封装在IP协议中,然后完全由IP层负责此报文的转发。
GRE是一种第三层隧道的一种运载协议,协议号47。 GRE协议栈:链路层、IP、GRE、IP/IPX、PAYLOAD
通过GRE协议建立TUNNEL进行通信,并采用IPSEC在IP层进行加密和数据源验证,以保证数据包在INTERNET网上传输时的私有性、真实性和完整性,实现点到点的连接,保证数据的安全。
GRE配置任务及命令:
[quidway]interface tunnel tunnel-number 创建虚拟TUNNEL接口 [quidway-tunnel0]source ip-address 配置TUNNEL接口的源地址 [quidway-tunnel0]destination ip-address 配置TUNNEL接口的目的地址
[quidway-tunnel0]ip address {ip-address mask|unnumbered interface-type interface-number}配置TUNNEL接口的IP地址
[quidway-tunnel0]gre key key-number 配置TUNNEL接口的识别关键字 [quidway-tunnel0]gre sequence-datagrams配置TUNNEL进行数据报序列号同步 [quidway-tunnel0]gre checksum配置TUNNEL接口使用校验 [quidway]display interfaces tunnel tunnel-number 显示GRE信息
5. IPSEC
IPSEC(IP security)是IETF制定的为保证数据在INTENET上传输的安全保密性能的三层隧道加密的框架协议。
IPSEC包括报文验证头协议AH(协议号51)和报文安全封装协议DES(协议号50) AH可提供数据源验证和数据完整性校验功能和防报文重放功能。可选算法有MD5和SHA1等。AH没有对数据用户进行加密。
在传输模式下,AH协议验证IP报文的数据部分和IP头中不变部分。 在隧道模式下,AH协议验证全部的内部IP报文和外部IP头不变的部分。
DES除了可以提供数据源验证和数据完整性的校验功能外,还需要将保护的用户数据
19
进行加密后封装到IP包中,保证数据的完整性、真实性和私有性,可选算法有DES到、3DES等。
在传输模式下,ESP协议对IP报文的有效数据进行加密。 在隧道模式下,ESP协议对整个内部IP报文进行加密。
以上两种协议采用32比特序列号结全防重放窗口和报文验证来防御重放攻击。 IPSEC有隧道(TUNNEL)和传输(TRANSPORT)两种工作方式。
在隧道方式下,用户的整个IP数据被用来计算AH或DES,且被加密,AH或DES头和加密用户数据被封装在一个新的IP数据包中。
在传输方式下,只是传输层数据被用来计算AH或DES,AH或DES头和被加密的传输层数据被放置在原IP包的后面。
IPSEC安全特点:
数据机密性:在发送数据前对数据进行加密
数据完整性:对接收的数据进行认证,以确保数据在传输过程中没有被篡改。 数据来源认证:接收方对IPSEC数据包源地址进行认证 反重放:接收端可检测并拒绝接收过时或重复的报文 IPSEC基本概念
数据流(data flow):为具有一组共同特征的数据的集合,由源地址/掩码、目的地址掩码、IP报文中封装上层协议的协议号、目的端口号、源端口号来规定的,通常数据流由访问控制列表来定义,IPSEC可以对不同的数据流施加不同的安全保护。
安全联盟(security association):IPSEC对数据流提供的安全服务由安全联盟来完成,它包括协议、算法、密钥等内容,具体确定了如何对IP报文进行处理。安全联盟由一个三元组:安全参数索引(SPI)、IP目的地址、安全协议号(AH或DES)来唯一标识。
安全参数索引(SPI):是一个32比特的数据,每一个IPSEC报文中都携带该值。 安全联盟生成时间(life time):有以时间进行限制更新和以流量进行限制更新两种。 安全策略(crypto map):由用户后工配置,规定对什么样的数据流采用什么样的安全措施,一个安全策略由“名字”和“顺序号”共同唯一确定。
安全提议(transform mode):包括安全协议、安全协议使用的算法、安全协议对报文的封装形式,规定的把普通报文转换成IPSEC报文的方式。在安全策略中,通过引用一条安全提议来规定该安全策略使用的协议和算法等。
IKE(internet key eschange)因特网密钥交换协议是IPSEC的信令协议。为IPSEC提供
20
了自动协商交换密钥、建立安全联盟的服务。通过数据交换来计算密钥,具有一套自保护机制,可以在不安全的网络上安全的分发密钥,验证身份,建立IPSEC安全联盟。
IKE安全机制:
完善的前向安全性(perfect foword security PFS):一个密钥被破解不会影响其它密钥。 数据验证包括保证数据的完整性和身份保护。
DH交换和密钥分发(diffie-hellman):是一种密钥算法,通信双方在不传送密钥的情况下通过交换一些数据,计算出共享密钥。PFS由DH算法保障。
IKE交换过程:IKE协商过程可分成两阶段
一阶段:在网上建立IKE SA,为其它协议的协商(阶段二)提供保护和快速协商,通过协商创建一个通信信道,并对该信道进行验证,为双方进一步的IKE提供机密性、完整性和消息源认证服务,是主模式。
阶段二:快速模式,在IKE SA保护下完成IPSEC协商。 协商过程包括三对消息:
第一对,SA交换,是协商确认有关安全策略的过程
第二对,密钥交换,交换DH公共值和辅助数据,加密物在这个阶段产生。 第三对,ID信息和验证数据交换,进行身份验证和对整个SA交换进行验证。 IKE在IPSEC中的作用: 1、 降低了手工配置的复杂度 2、 安全联盟定时更新 3、 密钥定时更新
4、 允许IPSEC提供反重放服务 5、 允许端与端之间动态认证 IPSEC与IKE的关系:
1、 IKE是UDP之上的应用层协议,是IPSEC的信令协议。
2、 IKE为IPSEC协商建立安全联盟,并把建立的参数及生成的密钥交给IPSEC。 3、 IPSEC使用IKE建立安全联盟对IP报文加密或验证处理 4、 IPSEC处理作为IP层的一部分,在IP层对报文进处理。 IPSEC配置前的准备:
确定需要保护的数据,确定使用安全保护的路径,确定使用哪种安全保护,确定安全保护的强度
21
IPSEC配置任务及命令:
[quidway]ipsec proposal proposal-name
[quidway]ipsec card-proposal proposal-name 定义安全提议
[quidway-crypto-transform-trans]encapsulation-mode {transport|tunnel}配置安全协议对IP报文的封装模式
[quidway-ctypto-transform-trans]transform {ah-new|esp-new|ah-esp-new}选择安全协议 ah-new authentication-algorithm{md5-hmac-96|sha1-hmac-96}AH协议使用的认证算法 esp-new authentication-algorithm{md5-hmac-96|sha1-hmac-96}ESP协议使用的谁算法 esp-new encryption-algorithm{3des|des|blowfast|cast|skipjack|aes|qc5}ESP使用的加密算法 [quidway]ipsec policy policy-name sequence-number {manual|isakmp}创建安全策略 [quidway-ipsec policy1]security acl access-list-number配置安全策略引用的ACL列表 tunnel remote ip-address 指定安全隧道的终点
proposal proposal-name1[proposal-name2……proposal-name6]安全策略引用的安全提议 [quidway-serial0]ipsec policy policy-name 在接口上应用安全策略组 IKE配置任务及命令:
[quidway]ike proposal policy-number 创建IKE安全策略
[quidway-ike-proposal-10]encryption-algorithm{des-cbc|3des-cbc}选择加密算法 authentication-method {per-share}选择认证方法 authentication-algorithm {md5|sha}选择哈希散列算法 dh{group1|group2}选择DH的组标识
sa duration seconds 设置IKE协商安全联盟生存周期
[quidway]ike pre-share-key key remote remote-addresss配置预共享密钥
[quidway]ike sa keepalive-timer {interval|timeout}seconds 配置IKE keepalive定时器T=3i [quidway]display
ipsec
sa
{all|brief|remote
ip-address|policy
policy-name
[sequence-number]|parameters dest-address protocol spi}显示IPSEC相关信息
[quidway]display ike sa 显示IKE信息 IPSEC排错: 非法用户身份信息: 1、
用户身份信息是发起IPSEC通信的用户用来标识自已的数据,我们目前通过用户的IP地址来标识用户。
22
2、 检查协商两接口上的IPSEC POLICY 中的ACL内容是否相容,建议用户两端的ACL配置成互为镜像。
策略不匹配:
检查双方接口配置的IPSEC POLICY 使用的协议,加密算法和认证算法是否一致。
23
QOS原理及配置
1、
QOS基本概念
是指网络通信过程中,允许用户业务在丢包率、延迟、抖动和带宽等方面获得可预期的服务水平,也就是说,QOS就是针对各种不同需求,提供不同服务质量的网络服务。
IP QOS的目标是避免并管理IP网络拥塞,减少IP报文的丢失率,调控IP网络的流量,为特定用户或特定业务提供专用带宽,支撑IP网络上的实时业务。
IP QOS三种模型:
Best-effort模型:尽力而为服务模型,是单一的服务模型,也是最简单的服务模型,是目前Internet的缺省服务模型,主要实现技术是先进先出队列(FIFO)。
Intserv模型:integrated service综合服务模型,业务通过信令向网络申请特定的QOS服务,网络在流量参数描述的范围内,预留资源以承诺满足该请求。
为应用程序提供可控的、端到端的服务,所有网络设备支持QOS的控制机制,应用程序向网络申请特定的QOS服务,信令协议在网络协议中布署QOS请求,RSVP是主要的使用信令协议。
网络在收到应用程序的请求后,会执行资源分配检查(应用程序的资源申请和网络现有的资源情况),之后判断是否为应用程序分配资源。如果要为应用程序报文分配了资源,那么应用程序的报文应控制在流量参数的范围内,网络将满足应用程序的QOS需求。网络要为每个流维护一个状态,并基于这个状态对执行报文的分类,流量监管,排队及其调度,来实现对应用程序的承诺。
提供两种服务:保证服务,它提供保证的带宽和时延的限制来满足应用程序的要求。 负载控制服务,在网络拥塞的情况下保证某些应用程序的报文低时延,高通过。 RSVP原理:
它是第一个QOS标准信令协议,它用来动态地建立端到端的QOS,允许应用程序动态的申请网络带宽等,它按照路由协规定的报文流的路径为报文申请预留资源,RSVP只是在网络节点之间传送QOS请求。可以对每个资源请求设置优先级,优先级较高的在网络资源不够的情况下可以占用低优先级的预留资源。
RSVP的问题:要求端到端的所有设备支持这一协议;网络单元为每个应用保存状态信息,可扩展性差;周期性的同邻居单元交换状态信息,协议报文开销大;不适应在大型的网络中应用。
24
Diffserv模型:differentiated service区分服务模型,在一个业务发出报文前,不需要通知路由器,网络不需要对每个流维护软状态,它根据每个报文指定的QOS标记,来提供特定的服务。当网络出现拥塞时,根据业务的不同服务等级约定,有差别地进行流量控制和转发来解决拥塞问题。
采用相对优先权机制,有区别地控制不同信息流的分组聚类和转发行为,从而保证服务质量和解决拥塞之间取得一个良好的折衷。
业务在进入DS网络时,基于优先级(DSCP或IP优先级)进行业务流聚合,会聚成一个行为集合(BA,behavior aggregate)PHB(per-hop behavior):DS节点对特定的行为集合使用的转发行为,DS节点通过判别分组头中的DSCP来执行PHB。
具体过程:
首先,在网络的边缘进行不同业务的分类,打上不同的QOS标记。分类的依据可以是报文携带的四层、三层或二层的信息。然后,在网络的内部,根据着色的结果在每一跳上进行相应的转发处理。比如通过拥塞管理机制,对实时业务提供快速转发处理,对普通业务提供尽力而为转发处理。流量整形,流量监管,拥塞避免等处理也类似,根据着色的结果,再逐跳的作相应的区别处理,从而获得网络两端业务不同业务类别的QOS保障。
2、 报文分类
报文分类及标记是QOS执行服务的基础,报文分类使用技术用ACL和IP优先级,根据分类结果交给共它模块处理或打标记供核心网络分类使用。报文分类可以把有相似QOS要求的业务的报文聚合成相应的类。分类的结果就是给报文打上某种标记。如果使用IP报文头的precedence字段进行着色,可以最多将报文分成8类,也可以用DSCP进行着色。
网络管理者可以设备报文分类的策略,这个策略可以包括物理接口、源地址、目的地址、MAC地址、IP协议或应用程序的端口号等。
一般在网络过界,对报文进行着色,在网络内部则简单的使用着色的结果作为队列调度、流量整形等处理依据。QOS中用CAR来实现报文的分类及着色功能。下游网络可以选择接受上游网络的着色结果,也可以按照自己的分类标准重新进行着色。CAR是支持报文分类的重要技术,同时承担流量监管的功能。用户可以通过不同的配置让CAR只能着色或只能流量监管,也可以同时进行。CAR可以使用Precedence或DSCP进行着色。
3、 流量监管
流量监管(traffic policing)的典型作用是限制进入某一网络的某一连接的流量与突发。使用CAR来限制某报文的流量,CAR使用IP头部的TOS字段来对报文进行分类,对一
25
不同分类的流量,采服不同的动作。CAR利用令牌桶(tocken bucket,BT)进行流量控制。令牌桶按用户设定的速度向桶中放置令牌,并且,令牌桶有用户设定的容量,当桶中令牌的量超出桶的容量时,令牌的量不再增加。当令牌桶中充满令牌的时候,桶中所有的令牌代表的报文都可以瞬间被发送,这样可以允许数据的突发性传输。当令牌桶中没有令牌的时候,报文将不被发送,只有等桶中生成新的令牌,报文才可以发送,这就可以限制报文的流量只能小于等于令牌生成的速度,达到限制流量的目的。
首先报文被分类,如果通过分类器识别出报文是某类要处理的报文,则进入令牌桶中进行处理,如果令牌桶中有足够的令牌可以用来发送报文,则认为是conform,如不令牌不够,则认为是exceed.然后在后面的动作机制中,可以分别对comform和exceed 的报文进行发送、丢弃、着色等处理。当CAR用流量监管时,一般配置为:conform的报文进行发送,对exceed的报文进行丢弃。也就是令牌桶中的令牌足够时报文被发送,不够时被丢弃。
CAR配置命令:
Qos carl carl-index{precedence precedence-value|mac mac-address}定义规则carl-index=1-199,per=0-7,对于同一carl-index,只能定义一第CAR规则,后定义的CAR规则将覆盖原来定义的CAR规则,但可定义多条不同的carl-index的CAR规则。
Qos car{inbound|outbound}{any|acl acl-index|carl carl-index}cir committed -rate cbs burst-size ebs excess-burst-size conform action exceed action在接口上应用CAR策略或ACL,在应用策略前,应该先禁止快速转发功能。在一个接口上,都可应用多条CAR策略,但在每个接口上,一共可应用100条CAR(committed access rate)策略。 4、
流量整形
GTS(generic traffic shaping):解决链路两边的接口速率不匹配,对报文的流量进
行限制,对超出流量约定的报文进行缓冲,可能会增加延迟。
通过CAR可以对不符合流量特性的报文时行丢弃,如果对需要丢弃的报文进行缓冲,将可以减少报文的丢弃,同时满足报文的流量特性,这就是流量整形。
当报文到来时,先对报文进行分类,如果需要进行整形,则将报文送入GTS队列,如果队列有有足够的令牌,则直接发送报文,如果令牌不够,则进入队列缓存,当队列中有报文时,GTS按一定的周期从队列中取出报文时行发送,每次发送报文时,将把GTS令牌桶中的令牌代表的数据量都发送出去。
GTS可以对不规则或不符合预定流量特性的流量进行整形,以利于网络上下游之间的带宽匹配。
26
每个接口,GTS选择以下一种方式来处理报文: 1、
对接口所有流进行处理:此时若接口发送报文队列为空,且报文在单位时间内的流量未超过限制,报文被立即发送,否则报文进入接口发送缓存列队中。
2、
对接口不同的流进行处理:将不同的流分别与access-list-name进行匹配,当规则匹配并且接口发送队列为空,且报文在单位时间内的流量未超过限制,报文被立即发送,否则报文进入接口发送缓存队列中。
为减少报文的无谓丢失,就在上游路由器出口对报文进行GTS处理,对于超出GTS流量特性的报文,缓存在上游路由器的接口缓冲区中。当网络拥塞消除时,GTS再从缓冲队列中取出报文继续发送。这样,发向下游路由器的报文将都符合路由器的流量规定,从而减少报文在下游路由器被丢弃的情况。若不在上游路由器出口做GTS处理,则所有超出下游路由器的CAR规定流量的报文将被下游路由器丢弃。 GTS配置命令:
Qos gts acl acl-index cir committed-rate[cbs burst-size[ebs excess-burst-size [queue-length queue-length]]]为某一类流配置整形参数,
Qos gts any cir committed-rate[cbs burst-size[ebs excess-burst-size[queue –length queue-length]]]为所有的流配置整形参数
这两条命令不能在同一接口上使用,配置整形参数之间,应先关闭快速转发功能,queue length默认值为50。
5、 物理接口总速率限制—LR
物理接口限速(line arte,LR):LR的处理过程仍然采用令牌桶进行流量控制。当令牌桶中积存有令牌时,可以允许报文的突发性传输。当令牌桶中没有令牌时,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文的流量只能小于等于令牌生成的速度,具有限制流量,同时允许突发流量通过的目的。相比较于CAR,能够限制在物理接口上通过的所有报文。相比较一GTS,LR不但能够对超过流量限制的报文进行缓存,并且利用QOS丰富的队列来缓存报文,而GTS则是将报文缓存在GTS队列中。由于CAR和GTS是在IP层实现的,所以对于不经过IP层处理的报文不起作用。
LR的配置:Qos lr cir committed-rate [cbs burst-size[ebs excess-burst-size]]
6、 拥塞管理
网络拥塞时,保证不同优先级的报文得到不同的QOS待遇,包括时延、带宽等。将不同优先级的报文入不同的队列,不同队列将得到不同的高度优先级、概率带宽保证。算法有:
27
FIFP(first ln first out)、 PQ(priority queue)、CQ(custom queue)、WFQ(weighted fair queuing)。
对网络单元,当分组到达的速度大于该接口传送分组的速度时,在该接口处就会产生拥塞。造成拥塞的因素有很多,如:当分组流从高速链路进入路由器,由低速链路传送发出进,就可能产生拥塞;分组流同时从多个接口进入路由器,由一个接口转发出去或处理器速度慢也可能会产生拥塞。
拥塞管理是指网络发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文,进入多个队列,按照各个队列的优先级进行处理。拥塞管理的处理包括队列的创建、报文的分类、将报文送入不同的队列、队列调度等。当接口发生了拥塞,拥塞管理就会将这些报文进行分类,送入不同的队列,而队列调度对不同优先级的报文进行分别处理,优先级高的报文会得到优先处理。
先进先出队列(FIFO):算法简单,转发速度快。FIFO不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按先进队的顺序出队,先入先出,后入后出。
Qos fifo queue-length queue-length配置FIFO队列中可容纳的包的个数,QUIDWAY路由器接口的默认工作方式为FIFO,队列的默认长度为75,取值范围1-1024。
优先队列(priority queuing,PQ)可以保障高优先级队列的服务质量,PQ对报文进行分类,将所有报文分成最多4类,分别属于PQ的4个队列的一个,然后,按报文的类别将报文送入相应的队列。PQ的4个队列:高优先队列(high)、中优先级队列(medium)、正常优先队列(normal)、低优先队列(low),它们的优先级依次降低。
PQ配置命令:
华为路由器最多可以创建16个规则组,在每一组中可以将报文划分为4类,分别进入PQ相应的队列。
Qos pql pql-index inbound-interface type number queue{top|middle|normal| bottom} 根据接口配置优先队列
Qos pql pql-index protocol protocol-name queue-option queue{top|middle|normal| bottom}根据网络层协议配置优先队列
Qos pql pql-index default-queue {top|middle|normal|bottom}配置缺省优先队列。 可为一个优先队列的组定义多条策略,然后再将该组应用到某个接口上。当数据包到达该接口时,系统按照配置的策略来匹配数据包,若数据凶与匹配策略则进入指定的队列中,
28
若数据包不能与任何策略匹配,则进入缺省优先队列,默认的队列优先级为normal。
为使优先级队列组起作用,必须将配置好优先队列组应用到具体的接口上。每个接口只能应用一个优先级队列组,但同一个优先级队列组可在多个接口上被应用。也可以创建多个不同的优先级队列组来应用于不同的接口上。
Qos pq pql pql-index在接口上应用优先队列组
Qos pql pql-index queue{top|middle|normal|bottom}queue-length queue-length 指定第一个优先队列的队列长度。Top=20、middle=40、normal=60、bottom=80。
定制队列(custom queuing,CQ):用户可配置队列占用的带宽比例关系,CQ对报文进行分类,将所有报文分成最多至17类,分别属于CQ的17个队列中的一个,然后,按报文的类别将报文进入相应的队列。CQ的17个队列中,0号队列是系统队列,优先调度。1到16号队列可以按用户的定义分配它们能占用接口带宽的比例,在报文出队的时候,CQ按定义的带宽比例分别从1到16号队列中依次取出一定量的报文在接口上发送。1到16号为用户队列,轮询调度。各队列在统计规率上满足用户配置的带宽比例。
PQ赋予较高优先级的报文绝对的优先权,这样虽然可以保证关键业务的优先,但在较高优先级的报文的速度总是大于接口的速度时,会使较低优先级的报文始终得不到发送的机会。采用CQ,可以避免这种情况的发生。CQ可以把报文分类,然后按类别将报文被分配到CQ的一个队列中去,对每个队列,可以规定队列的报文应占接口带宽的比例,这样可以让不业务的报文获得合理的带宽,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。当然CQ中的实时业务不能获得象PQ一样好的时延指标。
CQ配置命令:
Qos cql cql-index inbound-interface type number queue queue-number根据接口配置定制队列,
Qos cql cql-index protocol protocol-name queue-option queue queue-number根据网络层协议配置定制队列。
qos cql pql-index default-queue queue-number配置缺省定制队列,未配置缺省定制队列的,缺省的定制队列号为16。
可为一个定制队列组定义多条策略,然后再将该组应用到某个接口上。当数据包到达该接口时,系统按照配置的策略来匹配数据包,若数据包与策略匹配则进入指定的定制队列中,若数据包不能与任何策略匹配,则进入缺省队列。
Qos cq cql cql-index在接口上应用定制队列组,
29
Qos cql cql-index queue queue-number queue-length queue-length配置定制队列的队列长度。可选
Qos cql cql-index queue queue-number serving bytecount配置定制队列连续发送字节数。
加权公平队列(weighted fair queuing,WFQ):保证相同优先级业务间公平,不同优先级业务间加权,。队列的数目可预先配置,范围是16到4096。采用HASH算法尽量将不同的数据流分入不同的队列,自动完成,权值依赖于IP报文中携带的IP优先级。
WFQ配置:qos wfq[queue-length max-queue-length[queue-number total-queue- number]]。Max-queue-length的缺省值为64个报文,total-queue-number 的缺省值为256个动态队列。
7、 拥塞避免
拥塞避免技术通过监控网络流量负载情况,尽力在网络拥塞发生之前预计并且避免在普通的网路上拥塞的发生。这些技术用来为不同优先级别的流量种类提供处理,在发生拥塞的发问下使得网络的吞吐量和利用效率最大化,并且使报文丢弃和延迟最小化。WRED就是一种避免拥塞的方法。在拥塞发生时期将输出流量存放在缓冲区中,在没有配置WRED的情况下使用尾部丢弃的方式来解决拥塞问题。尾部丢弃同等地对待所有的通信,不对服务等级进行区分。在拥塞发生期间,队列尾部的数据包将被丢弃,直到拥塞解决。当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为:TCP全局同步。为了避免拥塞,在网络没有发生拥塞以前根据队列状态进行有选择的丢包,当某个TCP连接的报文被丢弃,开始减速发送的时候,其他TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。RED(random early detection)随机早期检测和WRED(weighted random early detection)加权随机早期检测就是用于避免拥塞的方法。WRED与RED的区别在于前者引入IP优先权来区别丢弃策略,WRED在实际的应用中更为广泛。
WRED:采用随机丢弃策略,避免了尾部丢弃的方式而引起TCP全局同步。用户可以设定队列的低限和高限。当队列的长度小于低限时,不丢弃队列,当队列的长度在低限和高限之间时,WRED开始随机丢弃报文。队列的长度越长,丢弃的概率越高,当队列的长度大于高限时,丢弃所有到来的报文。在和低限、高限比较并进行丢弃进,采用队列平均长度。平均队列长度既反映了队列的变化趋势,又对队列长度的突发变化不敏感。避免了对突发性的数据流造成不公正的待遇。这里需要指出,平均队列长度与实际队列长度单位不同,不可简单
30
比较,所配置的最大、最小阀值是用来和平均队列长度比较的。可以为不同优先级的报文设定不同的队列长度滤波系数、队列阀值、丢弃概率。从而对不同优先级的报文提供不同的丢弃特性。当WRED和RED配合使用时,可实现基于流的WRED,在进行分类的时候,不同的流有自己的队列,对于流量小的流,由于其队列长度总是比较小,所以丢弃的概率将比较小,而流量大的流将会有较大的队列长度,从而丢弃较多的报文,保护了流量较小的流的利益。
WRED配置命令:qos wred使能WRED,WRED只能和WFQ共同使用,不能单独使用或和其它的队列共同使用。因此在启动WRED之前,接口上必须已先应用了WFQ。另外仅对所有物理接口使能WRED有效,在逻辑接口下该命令不起作用。
Qos wred weighting-constant exponent配置WRED计算平均队长的指数,exponent的值表示WRED对实际队列长度的变化灵敏度,越小越灵敏,取值范围1-16,缺省9。
Qos wred ip-precedence ip-precedence low-limit low-limit high-limit high-limit discard-probability discard-prob配置WRED各优先级参数。
31
OSPF路由协议
OSPF协议概述:
它是IETF组织开发的一个基于链路状态的自治系统内部路由协议,在IP网络上,它通过收集和传送自治系统的链路状态来动态的发现并传播路由,OSPF具用如下特点:无路由自环、可适应大规模网络、路由变化收敛速度快、支持区域划分、支持等值路由、支持验证、支持路由分级管理,支持以组播地址发送报文。
OSPF一些基本概念:router id:一个32位的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一。 协议号:用IP报文直接封装协议报文,协议号89。
链路状态:
OSPF计算路由是以本路由器周边网络的拓扑结构为基础的,每台路由器将自己周边的网络拓扑结构描述出来,传递给其它所有路由器,OSPF通过LSA描述网络拓扑。
OSPF将不同的网络拓扑抽象为以下四类:
1、 该接口所连的网段中只有本路由器自己(stub networks)。 2、 该接口通过点到点的网络与一台路由器相连(point to point)
3、 该接口通过广播或NBMA的网络与多台路由器相连(broadcast or NBMA networks) 4、 该接口通过点到多点的网络与多台路由器相连(point to multipoint)
NMBA与点到多点的区别:
NBMA和点到多点都是非广播多点可达的网络,但NBMA网络必须满足全连接的网络,即任意两点都可以不经转发直达对端。否则我们称网络为点到多点,NBMA是指哪些全连连通非广播多点可达网络,而点到多点的网络并不需要一定是全连通的。在NBMA上需要选举DR和BDR,在点到多点则不用。NBMA是一种缺省的网络类型,NBMA用单播发送协议报文,需要手工配置邻居,点到多点是可选,即可单播又可多播。
计算路由:OSPF计算路由主要有以下三个重要步骤。 1、 描述本路由器周边的网络拓扑情况,并生成LSA。
2、 将自己的LAS在自治系统中传播,并同时收集所有的其他路由器生成的LSA。 3、 跟据收集到的所有LSA计算路由。
OSPF报文协议:
Hello报文:周期性的发送给本路由器的邻居,包括一些定时器的数值。用于发现及维持邻居关系,并选举DR、BDR。
32
DD报文:两台路由器进行数据库同步时,用DD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要,这样做为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分,跟据HEAD对端路由器就可以判断出是否已经有了这条LSA。LSA摘要是指LSA的HEAD,通过HEAD可以唯一标识一条LSA。
LSR报文:两台路由器互交换DD报文后,通过LSR向对端路由器请求本端LSDB中所缺少的或对端更新的LSA。
LUR报文:向对端路由器发送对端所需要的LSA,内容是多条LSA的集合。 LSAck报文:用来对接入的LUR报文进行确认,内容是需要确认的LSA的HEAD。
OSPF的邻居状态机:
Down:邻居状态机的初始状态,是指在过去的data-interval时间内,没有收到邻居的hello报文。
Attempt:只适应于NBMA类型的接口,处于本状态时,定期向那些手工配置的邻居发送hello报文。
Inlt:本端已经收到了对端的hello报文,但该报文中列出的邻居中不包含我的router id,对方没有收到我发的hello报文。
2-way:双方互相收到了对端的hello报文,建立邻居关系,在广播和NBMA网络中,两个接口是Drother的路由器之间将停留在此状态,其它情况状态机将继续转入高级状态。
Exstart:路由器和它的邻居通过互交DD报文,来决定发送时的主/从关系,建立主/从关系为了保证后续DD报文在交换中能够有序的发送。
Exchang:路由器将本地的LSDB用DD报文来描述,并发送给邻居。 Loading:路由器发送LSR报文向邻居请求对端的DD报文。 Full:邻居路由器中的LSDB中所有LSA本端都有了。
注意:down、2-way、full是稳定状态,其它状态是在转换过程中瞬间存在的状态。本端路由器的状态可能与对端路由器的状态不相同。
当两台路由器之间的状态机都已经达到full状态之后,如果路由中再有路由发生变化时,就无需要重复发现过程,只由一方发送LS updata报文通知需要更新的内容,另一方发送LSAck报文予以回应即可,双方的邻居状态机在此过程中不再发生变化。
DR和BDR:
DR产生过程:首先是本网段内运行OSPF的路由器参与选举,之后选priority>0的路由器,再选择priority最大的路由器,如果一样大,选择router id最大的路由器。
33
网段中DR路由器不一定是priority最大的路由器,同样BDR也不一定是priority 二大的路由器,DR是指某个网段中的概念,是针对路由器的某个接口而言的,一个路由器在一个接口上可能是DR,在另一个接口上可能是BDR也可能是Drother。只有在广播或NBMA的类型接口上才会选举DR。两台Drother之间不进行路由信息的交换,但仍旧发送hello报文,他们之间的邻居状态停留在2-WAY状态。
区域划分:为什么要划分区域
1、
每台路由器都保留着整个网络中其他路由器生成的LSA,这些LSA集合组成LSDB,路由器数量的增多会导致LSDB非常庞大,这会占用大量存储空间。
2、 3、 4、
LSDB庞大会增加运行SFP算法的复杂度,导致CPU负担很重。 由于LSDB很大,使两台路由器之间达到LSDB同步会需要很长时间。 网络规模增大之后,拓扑结构发生变化的概率也增大,为了同步这种变化,网络中会有大量OSPF协议报文在传递,降低了网络带宽的利用率,而每一次变化都会导致网络中所有路由器重新计算路由。
解决方述问题的关键主要有两点:减少LSA的数量,屏蔽网络变化波及的范围。 OPSF协议通过将自治划分成不同的区域来解决这个问题。划分区域后,每个网段必须属于一个区域,每个运行OSPF协议的接口必须指明属于某一个特点的区域,区域用区域号来标识,区域号是一个从0开始的32位整数,不同区域之间通过ABR来传递路由信息。
OSPF将自治系统划分不同区域后,路由计算方法也发生了变化:
只有同一个区域内的路由器会保持LSDB同步,网络拓扑结构的变化首先在区域内更新,区域间的路由计算是通过ABR来完成的,ABR首先完成一个区域内的路由计算,然后查询路由表,为每一条OSPF生成一条type3类型的LSA,内容主要包括该条路由的目的地址、掩码、花费等信息,然后将这些LSA发送到另一个区域中。在另一个区域中的路由器跟据每一个type3的LSA生成一条路由,由于这些路由信息是由ABR发步的,所以这些路由的下一跳都指向ABR。
划分区域后的好处:
由于划分区域后ABR跟据本区域内的路由生成LSA,则可以跟据IP地址的规律将这些路由进行聚合后再生成LSA,这样大大减少了自治系统中LSA的数量。
划分区域后,网络拓扑的变化首先在区域内进行同步,如果该变化影响到聚合后的路由,则才会由ABR将该变化通知给其他区域,大部分的拓扑结构变化都被屏蔽在区域之内。
34
骨干和虚连接:
OSPF划分后,并非所有的区域都有是平等的关系,其中有一个区域是与众不同的,它的区域号是0,通常称为骨干区域(backbone area 0)。
所有的ABR将本区域内的路由信息封装成LSA后,统一的发给一个特定区域,再由该区域将路由信息转发给其他区域,在这个区域内,每个路由信息都知道生成者信息。所有的区域必须和骨干区域相连,也就是说每一个ABR连接的区域至少有一个是骨干区域,而且骨干区域自身必须是连通的。
虚连接是指在两台ABR之间,穿过一个非骨干区域(转换区域), 建立一条逻辑上的连接通道,可以理解为两台ABR之间存在一个点对点的连接。
如果自治系统被划成一个以上的区域,则必须有一个区域是骨干区域,并保证其它区域与骨干区域直接相连或逻辑相连,且骨干区域自身也必须是连接的。
与自治系统外部通信:OSPF自治系统内部路由协议,负责计算同一个自治系统内部路由,在这里自治系统是指彼此相连运行OSPF路由协议的所有路由器的集合,对于OSPF来说,整个网络只自治系统内和自治系统外,自治系统外并不一定在物理上或拓扑结构上真正位于自治系统外部,而是指哪些没有运行OSPF协议的路由器或是某台运行了OSPF协议的路由器中没有运行OSPF接口。
OSPF需要了解自治系统外部的路由信息,这些路由信息通过ASBR获得,ASBR是将其他路由协议发现的路由引入到OSPF中的路由器,ASBR不一定是真的位于AS边界,而是可以自治系统中的任何位置。
计算自治系统外部路由:ASBR为每一条引的路由生成一条type5的LSA,这些路由信息将在整个自治系统中传播(stub除外)。计算路由时先在最短路径树中找到ASBR的位置,然后将所有由ASBR生成的type5的LSA都当作叶子节点挂在ASBR下面,以上方法在区域内可,但由于划分了区域,与ASBR不在同一区域的路由器计算路由时无法知道ASBR的确切位置(该信息被ABR给过滤掉了,因为ABR根据区域内的已生成的路由生成一条type3的LSA),为了解决这一问题,协议规定如下:如果某个区域内有ASBR,则这个区域的ABR在向其它区域生成路由信息时必须单独为这个ASBR生成一条type4类型的LSA,内容主要包括这个ASBR的router id和到他所需的花费。
OSPF将路由分为四级,按优先级从高到低排列为:区域内路由、区域间路由、第一类外部路由、第二类外部路由,前两种在路由在路由表中的优先级一样,缺省是10。后两种的优先级也相同,是150。
35
Stub区域与路由聚合:
Stub区域是指那些不传播type5类型的LAS区域,骨干区域不能配置成stub区域,虚连接也不能穿过stub区域,如果将一个区域配置成stub区域,则这个区域中的所有路由器都必须配置该属性,stub区域不能存在ASBR,即自治系统外部路由不能引入到区域内,区域的自治系统外部路由也不能在本区域内传播和传递到区域外。
LSA分类:
Router-LSA:由每个路由器生成,描述了路由器的链路状态和花费,传递到整个区域。 Network-LSA:由DR生成,描述了本网段的链路状态,传递到整个区域。
Net-summary-LSA:由ABR生成,描述了区域内到某一网段的路由,传递到相关区域。 Asbr-summary-LSA:由ABR生成,描述了到ASBR的路由,传递到相关区域。4 As-external-LSA:由ASBR生成,描述了到AS外部的路由,传递到整个区域(stub除外)。5
接口分类及路由分类:
OSPF协议跟据链路层封装协议的不同分为broadcast、NBMA、point-to-point point-to-multpoint四种网络。
路由器根据自治系统中的不同角色分为:IAR、ABR、BBR、ASBR。
一个运行OSPF协议的接口状态根据接口的不同类型可分为:DR、BDR、Drother、point-to-point.
OSPF为什么无自环?
每一条LSA都标记了生成者,其它路由器只负责传输,这样不会在传输过程中发生对信息的改变或错误理解,路由计算方法是SPF算法,计算结果是一棵树,路由是树上的叶子节点,从根节点到叶子节点是单向不可回复的路径。当网络发生变化后,路由器重新运行SPF算法,得到新的路由。
OSPF生成自治系统内部路由是无自环的,引入自治系统外部路由则无法保证。
何时需要运行OSPF协议:
1、 网络规模:路由器在10台以上,中等或大规模网络。
2、 网络的拓扑结构:网络拓扑结构为网状时,并任意两台路由器之间都需要互通 3、 其它特殊的要求:要求路由变化时能够快速收敛且路由协议自身的网络开销尽量降
低。
4、 对路由器的自身要求:运行OSPF协议时对路由器的CPU处理能力和内存的大小都
36
有要求,性能很低的路由器不推荐使用OSPF协议。
划分区域的基本原则:
1、 按照自然的地区或行政单位来划分 2、 按照网络中高端路由器来划分 3、 按照网络中IP地址来划分
一些制约条件:
1、 区域规模:不要超过70台 2、 与骨干区域的连通问题:
3、 ABR的处理能力:一台ABR上不应配置太多的区域,1骨干+1或2非骨干。
OSPF配置命令:
[quidway]router id a.b.c.d配置路由器的router id [quidway]ospf enable 启动OSPF协议
[quidway-serial0]ospf enable area area-id配置OSPF区域
[quidway-ospf]abr-summary 19.1.0.0 mask 255.255.0.0 area 19配置路由聚合 [quidway-ospf]stub cost 20 area 8配置stub区域
nass area area-id [defult route-advertise][no-import-route][no-summary]defult必配置 vlink peer-id 1.1.1.1 transit-area 12配置虚连接
OSPF故障排除:
配置故障排除:首先检查是否已经启动并正确配置了OSPF协议。 是否已经为本路由器配置了router id 检查OSPF协议是否已经成功的被激活。
检查需要运行OSPF的接口是否已经配置属于特定的区域 检查是否已经正确引入所需要的外部路由
局部故障排除:检查两台直接相连的路由器之间协议运行是否正常 检查物理连接以及下层协议是否正常运行。
检查在接口上配置的OSPF参数,某些参数必须保证和与该接口相邻的路由器参数
一致。
检查在同一接口上的deat-internal值应至少为hello-internal值的4倍 在广播和NBMA类型的网络中至少有一台路由器的priority应大于0 区域的stub属性必须一致
37
接口的网络类型必须一致
在NBMA类型的网络中需要手工配置邻居
全局故障排除:从网络拓扑结构角度考虑,区域是否配置正确。 其它疑难问题:路由时通时断,路由表中存在该地址却无法PING 通。
38
因篇幅问题不能全部显示,请点此查看更多更全内容