LCP建立
协商过程
1、MRU值:在PPP数据帧中所允许携带的最大数据单元,单位字节,默认1500
2、认证方式:根据第二阶段认证来判断,若存在认证,则需要协商认证方式;若不存在认证,则不需要
协商。
3、魔术字:用来检测链路中是否存在环路,是由本地设备随机生成的字符串(设备序列号、硬件地址)
认证阶段
PPP的认证,一般是通过AAA管理框架来完成的
认证是双向的,但是也可以做单向,但是一般不建议。
两种认证方式:PAP、CHAP
PAP
密码认证协议----是一种明文的认证方式
配置方法
认证方
创建用户信息
[XIAN-OPENLAB-CORE-AR2240-1-aaa]local-user huawei password cipher 123456
[XIAN-OPENLAB-CORE-AR2240-1-aaa]local-user huawei service-type ppp
配置认证方式
[XIAN-OPENLAB-CORE-AR2240-1-Serial4/0/0]ppp authentication-mode pap
被认证方
[r2-Serial4/0/0]ppp pap local-user huawei password cipher 123456
PPP会话的建立是一次性会话方式,当第一次链路建立完成后,后续修改认证方式不会影响链路的通
讯。
CHAP认证
挑战握手协议-----该认证不再是传递明文信息,而是采用对比摘要值的方式进行认证。
认证过程
认证方先发送一个挑战报文,里面包含的是认证方的用户名和一个随机值。
被认证方接收到后,需要根据该用户名的信息在本地进行查找,找到其对应的密码,然后将密码和随机值一起进行HASH运算,得出摘要值。
然后被认证方将自己的用户名和该摘要值发送给认证方
认证方通过接受到的用户名找到对应密码,再将密码与自己本地产生的随机值,进行HASH运算,若所得到的摘要值与认证方发送的摘要值相同,则代表通过认证。
认证配置
认证方
[XIAN-OPENLAB-CORE-AR2240-1-aaa]local-user ccip password cipher 666666
[XIAN-OPENLAB-CORE-AR2240-1-aaa]local-user ccip service-type ppp
[XIAN-OPENLAB-CORE-AR2240-1-Serial4/0/0]ppp authentication-mode chap
被认证方
[r2-Serial4/0/0]ppp chap user ccip
[r2-Serial4/0/0]ppp chap password cipher 666666
一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认
证协议并正确配置用户名和密码等信息。
网络层协议协商阶段---NCP协商
通过NCP协议来对网络层参数进行协商。----IPCP协议
协商内容
IP报文的压缩方式
IP地址---检测该IP地址是否为可用IP地址,且不于自己的IP地址冲突
协商过程
静态地址协商
一旦认可了对方的IP地址,则将会自动学习到达该IP地址的主机路由。----在PPP网络中,通讯双方的IP地址可以不同。
动态地址协商
配置命令
配置方
[r2-Serial4/0/0]remote address 1.1.1.1
获取方
[r1-Serial4/0/0]ip address ppp-negotiate
AAA
定义---认证、授权和计费的简称,是网络安全的一种管理机制,提供了认证、授权和计费三种安全功能。
安全功能
认证---用于验证用户是否可以获取网络访问权限
授权---授予用户可以使用的服务类型
计费---记录用户使用网络资源的情况
AAA域
每一个用户都属于一个域,一个域是由属于同一个域的用户构成的集合群体。
域下信息
一个域统一管理AAA方案、服务器模板和授权。
AAA方案----分为认证方案、授权方案和计费方案,用来定义认证、授权和计费的方式方法
服务器模板---用来配置认证、授权或计费使用的服务器。
授权信息分为两类
本地授权(域下授权信息):用户从域下获取的授权信息
服务器授权:用户从域下和服务器同时获取的授权信息
若域下授权信息与服务器授权信息冲突,则遵照服务器授权信息执行
若不冲突,则两者同时执行
用户所属域
用户属于哪一个域----根据NAS设备来判断。
NAS设备存储了一个区域内部所有的用户信息,以及其对应的域信息。
当用户名中携带了域名信息,则NAS设备会根据域名将其归属到对应域下,并回复该域下所配置的AAA
方案、服务器模板、域下授权信息。如果用户名没有携带域名信息,则会将其归属到默认域中。
默认域中自带默认的认证方案、授权方案和计费方案。
AAA方案认证方案
设备支持的认证方式
本地认证----设备作为认证服务器,然后将用户信息配置在本设备上。
速度快,降低运营成本。
缺点:存储的用户信息量受硬件影响
不认证
授权方案
设备支持的授权方法
本地授权
不授权
计费方案
设备支持的计费方法
RADIUS计费
HWtacacs计费
认证方案用来定义用户认证时所使用的的认证方法以及每种认证方法的生效顺序。
认证方案必须应用到域。
授权方案用来定义用户授权时使用的授权方法以及每种授权方法的生效顺序
并且,也需要应用到域
计费方案用来定义用户计费时使用的计费方法
并且,也需要应用到域
计费只能有一种方案,故没有所谓的生效顺序
配置信息
创建用户:
[server-aaa]local-user ccip@huawei password cipher 123456----用户名后必须跟域名
[server-aaa]local-user ccip@huawei service-type telnet
AAA方案:
[server-aaa]authorization-scheme huawei ---创建一个授权方案
[server-aaa-author-huawei]authorization-mode local ----设置该方案的授权方法
[server-aaa]authentication-scheme huawei ---创建一个认证方案
[server-aaa-authen-huawei]authentication-mode local ---设置该方案的认证方法
[server-aaa]domain huawei ---创建huawei域
[server-aaa-domain-huawei]authorization-scheme huawei
[server-aaa-domain-huawei]authentication-scheme huawei
GRE和MGRE
VPN---虚拟私有网络
指的是依靠ISP或其他网络管理机构在公有网络基础上构建的专用的安全数据通信网络,只不过该网络是逻辑上的而非物理的。
虚拟:用户不在需要拥有实际的长途数据线路,而是使用公共网络资源建立的属于自己的私有网络。
专用:用户根据自身需求,特别定制的最符合自身网络架构的网络核心技术----封装技术
GRE---逻辑隧道的封装技术
GRE---通用路由封装----标准的三层隧道技术---属于点到点隧道
GRE环境
[r1]interface Tunnel 0/0/0 //创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre //定义封装方式
[r1-Tunnel0/0/0]source 12.0.0.1 //定义封装内容,注意是物理接口IP地址
[r1-Tunnel0/0/0]destination 23.0.0.3
双方均需要进行GRE配置
GRE的报文结构
GRE封装和解封装报文的过程
设备从连接私网的接口接收到报文后,检查报文头部中出现的IP地址字段,并在路由表中查找出接口,如果发现出接口是隧道接口,则将报文发送给tunnel模块进行处理。
tunnel模块接收到报文后,会首先根据乘客协议的类型和当前GRE隧道的配置来添加参数,并对报文进行GRE封装
然后,设备给报文添加传输协议报文头部,即IP报文头部。该IP头部信息的源IP地址是隧道源地址
(不是隧道自身的IP地址),目的地址就是隧道的目的地址。
最后,设备根据新添加的IP报文头部中的目的IP地址,在路由表中查找对应的出接口,并发送报文。
接收端设备从连接公网的接口收到报文后,首先分析IP报文头部,如果发现协议类型字段的值为47
(GRE的协议号),表示上层协议为GRE谢意,于是出接口将报文交给GRE模块处理。
GRE模块去掉IP报文头部和GRE头部,并根据GRE报文头部中的协议类型字段,发现此报文的乘客协议为私网中运行的IP协议,将该数据交给对应协议处理。
Keepalive检测---用于检测隧道对端是否可达
[r1-Tunnel0/0/0]keepalive period 2 retry-times 5
设置发送周期为2s;重传次数为5次。
如果本端隧道配置了keepalive检测功能,GRE隧道会创建一个计时器,并周期性的发送探测报文,同时进行不可达计数。
每发送一个探测报文,不可达计数+1
如果该计数器到达预先设定的值之前收到回应报文,则表明对端可达。
如果计时器值达到预先设定的重传此处,还未收到对端的回应报文,则认为对端不可达。关闭隧道连接。
keepalive是不需要双方均进行配置的,仅配置一端即可进行检查。
MGRE----多点通用路由封装技术
NHRP----下一跳解析协议
中心/节点:Hub-Spoke架构
NHS(下一跳服务器)
在私网当中选择一个出口物理IP地址不会变的设备充当NHS服务器。
剩下的节点都可以知道中心的隧道IP和物理IP,然后通过NHRP要求所有的分支节点都需要将自己的物理接口
IP和隧道IP发送给该服务器(有变化就发送)。
NHS服务器将会存有所有分支节点的地址映射关系的一个动态记录。
发送消息时查询该映射记录表即可。
MGRE的非shortcut配置
reset saved-configuration //清除本地配置文件
Hub配置
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip add 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp //修改接口封装模式为点到多点GRE
[r1-Tunnel0/0/0]source 15.0.0.1 //定义封装的源IP,该IP地址为物理IP地址
Spoke配置
[r4]interface Tunnel 0/0/0
[r4-Tunnel0/0/0]ip add 192.168.5.4 24
[r4-Tunnel0/0/0]tunnel-protocol gre p2mp
[r4-Tunnel0/0/0]source GigabitEthernet 0/0/0 //设置分支站点IP地址不固定,故源IP根据出接
口变化
[r4-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register //分支需要到中心站点注册
隧道地址 物理地址 注册
[r1]display nhrp peer all //查看nhrp的注册情况
DSVPN----华为
DSVPN专门为了Hub-Spoke架构诞生服务。
通过总部中转流量会导致下述问题
1、总部在中转分支之间的数据流量时,会消耗总部hub设备的cpu和内存资源,造成资源紧张
2、总部需要对分支之间的数据流量进行封装和解封装,造成额外的网络延时
3、IPSec协议不支持广播报文和组播报文。
DSVPN概念
mgre隧道
静态mgre----建立在hub到spoke,并且永久存在
动态mgre---建立在spoke到spoke,在一定周期内没有流量转发时将自动拆除
NHRP映射表
静态表项
动态表项
老化时间---7200s
NHRP映射表建立过程
1. 建立spoke和hub之间的MGRE隧道
2. 分支学习路由
1. shortcut方式----快捷方式
分支路由全部汇聚到总部
spoke节点只需要存放到达hub节点的路由即可
一般应用在网络规模较大、分支节点较多的场景。
2. 非shortcut方式----非快捷方式
分支间相互学习路由
每一个分支节点都需要学习到所有对端的控制层面的数据。
DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支
的公网IP地址的问题,从而可以在分支和分支之间直接建立一条动态的VPN隧道,实现分支和分支之间的直接通讯,减轻总部的设备负担。
DSVPN借助MGRE技术,使VPN隧道能够传输组播报文和广播报文,并且一个tunnel接口可以跟多个对端
建立VPN隧道,减少网络管理员的配置量。并且,在新增分支或者分支地址变化的情况下,能够自动维护总部和分支之间的隧道关系,而不需要调整任何配置。
当源spoke需要向目的spoke发送数据报文时,
源spoke通过与hub节点的静态mgre隧道交互NHRP协议报文获取目的spoke节点的公网地址,并且与目的Spoke节点建立动态mgre隧道。
一般应用在网络规模较小,路由信息量少的网络中。
3. 建立spoke和spoke之间的MGRE隧道
shortcut方式
非shortcut方式
[r1-Tunnel0/0/0]nhrp redirect //在hub设备上配置----使能nhrp重定向报文
[r4-Tunnel0/0/0]nhrp shortcut //在spoke设备上配置---开启spoke设备的nhrp重定向请求报文
动态路由协议下的MGRE环境---RIP
[r1-Tunnel0/0/0]nhrp entry multicast dynamic //在hub配置,开启伪广播功能(给所有人都单播发送一次报文)
[r1-Tunnel0/0/0]undo rip split-horizon //关闭rip水平分割---非shortcut
[r1-Tunnel0/0/0]rip summary-address 192.168.0.0 255.255.248.0 //shortcut
OSPF----开放式最短路径优先协议
OSPF基础
IETE---国际互联网工程任务组----RFC2328
OSPFv2和RIPv2对比
相同点
1、两者都是无类别路由协议---传播时携带真实掩码
2、两者的更新方式相同----组播
RIPv2----224.0.0.9
OSPFv2----224.0.0.5\224.0.0.6
3、两者均支持等开销负载均衡
不同点
RIPv2只能应用在小型网络中,OSPFv2可以应用在中大型网络环境的
OSPF区域划分----结构化部署
OSPF域(Domain)---将一系列的OSPF路由器组成的网络称为OSPF域。
区域ID:32bit
OSPF多区域划分要求:
1、OSPF要求域中所有的非骨干区域(区域ID不为0的区域)都必须与Area0相连。
2、骨干区域不能被分割
OSPF区域结构部署规则的必要性
假定没有“所有非骨干区域都必须与骨干区域相连”这条规则----“远离骨干的非骨干”
定义了ABR(区域边界路由器)设备----确保所有人遵循上述规则
1、至少连接两个区域
2、连接的区域中至少有一个是区域0
3、在区域0中至少有一个活跃的邻居
作用:用于传递区域间路由
为了避免区域间的路由形成环路,非骨干区域之间不允许直接相互发布区域间路由。
假定没有“骨干区域不能被分割”这条规则----不连续骨干区域
OSPF规定:从非骨干区域收到的路由信息,ABR能接收,但不会使用这条路由信息(OSPF水平分割原则)。
OSPF路由器角色
内部路由器(IR)
所有接口都接入同一个区域的路由器
区域边界路由器(ABR)
骨干路由器(BR)
接入Area0的路由器,包括ABR,但不包括ASBR
ASBR(AS边界路由器)
工作在OSPF自治系统边界的路由器
OSPF有如下规则:
1、对于伪ABR设备不允许转发区域间路由信息。
2、对于真实ABR而言
能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域。
能够将自己直连的骨干区域的区域内路由信息传递给非骨干区域。
能够将自己从骨干区域学习到的区域间路由信息传递给费骨干区域。
并不是同时运行多种路由协议的OSPF路由器就一定是ASBR,ASBR一定是将外部路由引入到OSPF域的设备。
OSPF数据包
Hello
用来周期发现、建立、保活OSPF邻居关系,通过组播224.0.0.5发送。
10S发送一次来确认邻居的存在
hold-time----四倍的hello时间
Router-ID(RID)
全域唯一,标识路由器身份
用IP地址形式表示(32bit,点分十进制)
配置方法
手工配置
自动配置
默认最大环回IP地址,若没有最大环回则选择最大物理IP地址(路由器的RID选择)。
[r1]display router id //查看路由器全局ID值
注意:
启动OSPF进程前,必须要有接口IP地址,若存在IP地址,则在第一次启动OSPF进程时,会选取第一个配置的IP地址为RID。
但是,若删除第一个配置的IP地址后,则恢复为上述规则。
在华为设备中,若没有接口IP地址,则OSPF启动后,RID为0.0.0.0
在思科设备中,若没有接口IP地址,则OSPF启动失败
无论采用手工配置还是自动选择,一旦OSPF进程启动,RID被确定,则无法变化,必须重启
进程才能生效。
reset ospf process 重启所有OSPF进程
DBD
数据库描述报文
该报文携带的是路径信息的摘要(为了减少更新量,并不会直接给邻居发送TOPO信息,而是将
TOPO信息的目录发送给邻居)
LSR
链路状态请求报文
基于未知的LSA(链路状态通告)信息进行查询。
LSU
链路状态更新报文
携带真正的LSA信息的数据包
LSAck
链路状态确认报文
OSPF七种状态机
down---关闭状态----一旦启动了OSPF协议,则发出hello包,并进入下一状态
init----初始化状态----收到的hello包中,存在自己的RID值,则进入下一状态
2-way----双向通讯状态-----邻居关系建立的标志。
条件匹配:匹配成功则进入下一阶段,不成功则停留在2-way
exstart----预启动状态----使用未携带信息的DBD包进行主从关系选举,RID大的为主
exchange-----准交换状态----使用携带目录信息的DBD报文进行目录共享
loading------加载状态-----邻居间使用LSR/LSU/LSAck三种报文来获取完整的TOPO信息
full----转发状态----修成正果------标志邻接关系的建立。
条件匹配
设备接口名称
DR---指定路由器
BDR---备份指定路由器
DRother----其他路由器
OSPF称为邻接关系的条件
点到点----不用选举DR和BDR----直接开始建立邻接关系(加快收敛的方法)
MA网络----在一个网络中,不限制节点数(会选举DR和BDR)
选举规则
接口优先级----->0-255---->优先级越大,为DR,次一级为BDR(华为默认为1)
RID----越大越优先
选举范围----一个广播进行一次条件匹配
角色之间的关系
DR和DRother---->邻接关系
DR和BDR---->邻接关系
BDR和DRother---->邻接关系
DRother和DRother---->邻居关系
非抢占性选举模式
选举过程
1. DR、BDR的选举是通过Hello报文来实现的,选举过程发生在2-way状态之后
2. 路由器将自己的接口的DR优先级填写hello报文中的“DR优先级”字段
3. 在接口视图下可以修改DR优先级(若DR优先级修改为0,则代表不具备DR和BDR的选举资格)
4. 当路由器接口激活OSPF后,首先检查网络上是否已经存在DR设备,如果存在则接收DR角色。若不
存在,则拥有最高DR优先级的设备称为DR(RID)
5. BDR的选举过程和DR选举过程相同,但是是在DR选举成功之后。
DR设备使用组播224.0.0.5想该MA网络发送消息。
而DR和BDR使用224.0.0.6监听该MA网络的消息。
DROther使用224.0.06发送自己的LSU报文。
NBMA网络类型中存在。
在NBMA网络类型下,如果需要启动OSPF协议,需要手工指定邻居,否则不会发送hello报文。
若不发送hello报文,则邻居状态处于attempt状态。
OSPF工作状态
启动OSFP配置完成后,OSPF将向本地所有运行OSPF协议的接口组播224.0.0.5发送hello报文;
hello报文中携带有本地的RID以及本地已知的邻居RID;之后生成邻居表。
邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系;仅hello报文保活
匹配成功的邻居将开始建立邻接关系。
首先使用未携带数据的DBD报文来进行主从关系选举;之后使用携带数据的DBD报文来共享数据库
目录;之后本地使用LSR/LSU/LSACK报文来获取未知的LSA信息;
完成本地数据库的建立---生成数据库表。
之后本地基于数据库生成有向图和最短路径树,之后计算本地到达拓扑中所有未知网段的最短路
径,并将其添加到路由表中。
收敛完成,hello报文周期保活。每30min进行一次周期更新。
结构突变
1. 新增网段----直接在邻接关系的接口使用LSU进行更新,将内容告诉于邻居。并需要邻居的ACK确
认。
2. 断开网段----直接在邻接关系的接口使用LSU进行更新,将内容告诉于邻居。并需要邻居的ACK确
认。
3. 无法沟通----dead time----四倍的hello时间。
OSPF基础配置
1. 启动OSPF进程[r1]ospf 1 router-id 1.1.1.1 //进程号仅具备本地意义,手工配置RID方法
2. 创建区域
[r1-ospf-1]area 0
3. 宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 //精准宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 //宣告网段
宣告使用反掩码形式
32位二进制,使用点分十进制表示。连续的0+连续的1;并且0代表不可变;1代表可变。
华为体系中,优先级为10;
OSPF的COST====参考带宽(100Mbps)/实际带宽
[r1-ospf-1]bandwidth-reference 1000 //修改参考带宽-----所有设备均需修改
一条OSPF路径的Cost等于从目的地到本地路由器沿途的所有设备的入接口Cost值的总和。
OSPF报文格式
OSPF报文头部
版本(Version)
对于OSPFv2而言,该字段值恒为2
类型(Type)
描述OSPF数据包的类型
Hello------1
DBD-------2
LSR--------3
LSU--------4
LSACK----5
报文长度(Packet Length)
整个OSPF报文的长度-----单位字节
路由器ID
发出该报文的路由器的RID值
区域ID
发出该报文的接口所属于的区域的ID值
校验和验证OSPF整体数据报文的有效性
验证类型
指示该报文使用的认证类型
不认证---0;简单认证----1;MD5认证----2;
认证数据
用于报文认证所对比的内容
若认证类型为不认证,则该字段全部用0填充。
OSPF的认证功能在存在于所有的数据交互过程中,对于任何一种数据报文,都需要进行认证。
在认证的过程中,需要对比两个字段,首先对比认证类型字段。
若相同,才会对比认证数据字段。
Hello包
网络掩码(Network Mask)
该字段填充的是发送该报文的网络掩码
两台OSPF路由器如果通过以太网接口直连,那么双方的直连接口必须配置相同的网络掩码。
(点到点网络不需要对比该参数)
注意:OSPF建立邻居关系需要对比子网掩码信息是华为独有,别的厂商没有这个要求。
Hello间隔
两台直连路由器需要确保直连接口的Hello时间间隔相同,否则邻居关系无法建立。
缺省情况下,P2P和BMA类型的下,为10S;P2MP和NBMA为30S。
可选项(Options)
该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF特性。
而OSPF邻居关系建立过程中,该字段中的某些比特位将会被检查,可能影响OSPF邻居关系建立。(特殊区域的标记)
路由器优先级
[r2-GigabitEthernet0/0/0]ospf dr-priority ? //修改OSPF接口的DR优先级
INTEGER<0-255> Router priority value
路由器失效时间
两台直连路由器要建立OSPF邻居关系,需要保证双方接口的dead time时间相同,否则邻居关系无法正常建立。
缺省时间为hello的4倍。
指定路由器
网络中DR设备的接口IP地址。
若没有DR或DR没有选举出来,则填充0.0.0.0
备份指定路由器
网络BDR设备的接口IP地址
若没有BDR或未选举结束,则填充0.0.0.0
邻居
在直连链路上发现的有效邻居,此处填充的是邻居的RID值,如果发现多个邻居,则包含多个邻居字段。
所有224.0.0.X格式的组播地址称为本地链路组播,目的IP地址是本地链路组播的数据包中的TTL值被
设定为1。所有的本地链路组播都会存在对应的组播MAC地址,01-00-5e-后24位(组播IP地址的后24位)。
限制邻居关系建立的参数
子网掩码
在R2上修改网络掩码后,
R2会将与R3的状态立即修改为Down状态。而R3会在40S死亡时间之后进行状态切换。
原因在于,R2在修改IP地址的掩码后,会认为之前的连接中断,需要重新建立连接,所以重置状态机。
而R3则认为是无法沟通。故会等待死亡时间超时后才切换状态。
并且,该情况,在R3等待40S周期内,还是可以向R2转发数据,R2可以接收到该数据包,但无法回复。