广域网技术
一.广域网前言:#
广域网用于大范围的距离传输,以太网线路最长为100M左右,此时大距离的传输需要使用特殊的传输线缆串行链路和光纤,广域网二层封装主要有三种封装模式。
DDN专线技术通常使用串行链路,二层封装方式不再是Ethernet II或802.3的协议,而是使用特殊的广域网封装技术。
注:DDN专线由于价格昂贵,正逐渐被替代,通常使用DSL、SDH、VPN来替代。
串行链路封装模式:
① HDLC
② PPP
③ FR
二. PPP:#
PPP协议时在串行线IP协议SLIP(serial Line Internet Protocol)的基础上发展起来的。由于SLIP协议具有值支持异步传输,无协商过程(尤其不能协商如双方IP地址等网络层属性)、只能承载IP一种网络报文等缺点,再发展过程中,逐步被PPP协议替代。
1. PPP优点:#
① PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPOE
② 提供LCP(Link Control Protocol)协议,用于各种链路层参数的协商
③ 提供各种NCP(Network Control Protocol)协议(如IPCP、IPNCP),用于各网络层参数的协商,更好地支持网络层协议
④ 提供认证协议CHAP(Challenge-Handshake Authentication Protocol)和PAP(Password Authentication Protocol),主要用于网络安全方面的验证
2. PPP报文:#
① Flag:1字节,Flag域标识了一个物理帧的起始和结束,该字节为01111110,如果设备读到01111110时,认为为PPP的起始标记或结束标记,如果中间数据中存在01111110,则设备会提前结束PPP报文的查询,所以发送者在发送PPP报文之前,如果中间的数据包中存在01111110的字段,则会在第011111后面添0,接收者在查看PPP报文时,如果发现前六个数为011111,则将第六位的0删除
② Address:1字节,PPP协议是被运用在点对点的链路上,它可唯一标识对方,因此无须知道对方数据链路层地址。所以该字节无任何意义,按协议规定填充为全1广播地址
② Control:1字节,同Address域一样,PPP数据帧的Control域也没实际意义,规定值为0x03,该域与Address域一起标识了PPP报文,即PPP报文头为FF03
③ Protocol:1字节或2字节,协议域,可用来区分PPP数据帧中信息域所承载的数据报文的内容。协议域的内容必须依据ISO 3309的地址扩展机制所给出的规定。该机制规定协议域所填充的内容必须为奇数,也就是要求低字节的最低位为“1”,高字节的最低位为“0”。如果当发送端发送的PPP数据帧的协议域字段不符合上述规定,接收端则会认为此数据帧是不可识别的。接收端向发送端发送一个Protocol-Reject报文,在该报文尾部将填充被拒绝报文的协议号
标识数字 |
协议类型 |
0021 |
IP报文 |
002b |
Novell IPX |
002d |
Van Jacobson Compressed TCP/IP |
002f |
Van Jacobson Uncompressed TCP/IP |
0057 |
IPV6报文 |
8021 |
IPCP报文 |
802b |
Novell IPX Control Protocol |
8031 |
Bridging NC |
8057 |
IPv6 CP报文 |
C021 |
LCP报文 |
C023 |
Password Authentication Protocol |
C223 |
Challenge Handshake Authentication Protocol |
④ Information:0~1500字节 信息域最大长度是1500字节,其中包括填充域的内容。信息域的最大长度等于PPP协议中MRU(Maximum Receive Unit)的缺省值。在实际应用当中可根据实际需要进行信息域最大封装长度选项的协商。如果信息域长度不足1500字节,可被填充,但不是必须的。如果填充则需通信双方的两端能辨认出有用与无用的信息方可正常通信。FCS 0/1/2字节 FCS域计算范围是除了flag域的其他域。校验域的功能主要对PPP数据帧传输的正确性进行检测。在数据帧中引入了一些传输的保证机制,会引入更多的开销,这样可能会增加应用层交互的延迟
- Code 1字节 代码域,主要是用来标识LCP数据报文的类型。在链路建立阶段,接收方接收到LCP数据报文。当其代码域的值无效时,就会向对端发送一个LCP的代码拒绝报文(Code-Reject报文)。如果是IP报文,则不存在此域,取而代之的是IP报文内容。
- Identifier 1字节 标识域的值表示进行协商报文的匹配关系。 标识域目的是用来匹配请求和响应报文。一般而言,在进入链路建立阶段时,通信双方任何一端都会连续发送几个配置请求报文(Configure-Request报文)。这几个请求报文的数据域的值可能是完全一样的,只是它们的标志域不同。通常一个配置请求报文的ID是从0x01开始逐步加1的。当对端接收到该配置请求报文后,无论使用何种报文回应对方,但必须要求回应报文中的ID要与接收报文中的ID一致。当通信设备收到回应后就可以将该回应与发送时的进行比较来决定下一步的操作。
- Length:2字节 长度域表示此协商报文长度,它包含Code域及Identifier域的长度。长度域的值就是该LCP报文的总字节数据。它是代码域、标志域、长度域和数据域四个域长度的总和。 长度域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。
- Data 变长 数据域所包含的是协商报文的内容。Length为协商选项长度,它是指Data域的总长度,也就是包含Type、Length和Data。Data为协商的选项具体内容。Type为协商选项类型。
Type标识 |
具体含义 |
0x01 |
Maximum-Receive-Unit |
0x02 |
Async-Control-Character-Map |
0x03 |
Authentication-Protocol |
0x04 |
Quality-Protocol |
0x05 |
Magic-Number |
0x06 |
RESERVED |
0x07 |
Protocol-Field-Compression |
0x08 |
Address-and-Control-Field-Compression |
(1)LCP报文:#
Link Control Protocol,链路控制协议,主要用来建立、拆除和监控PPP数据链路,包含四种报文,并且LCP协商通过,则每10S发送一次Echo Request,对方收到后回复Echo Reply用来充当KeepAlive报文进行邻居的刷新
报文类型 |
功能描述 |
Configure-Request |
包含发送者的参数信息,没有使用默认值的参数列表 |
Configure-ACK |
表示完全接受对端发送的Configure-Request的参数取值 |
Configure-Nak |
表示对对方发送的Configure-Request中的参数取值在本地不合法 |
Configure-Reject |
表示对端发送的Configure-Request中的参数本地不能识别 |
Echo Request |
LCP建立完成后,每10S发送一次Echo Request报文,用来检测邻居是否正常,只包含魔术字,用来防止环路 |
Echo Reply |
用来回复Echo Request报文,只包含魔术字,用来防止环路 |
① Configure-Request报文:
Configure-ACK:
Configure-Nak:
(2)CHAP报文:#
Challenge-Handshake Authentication Protocol,挑战握手认证报文
报文类型 |
功能描述 |
Challenge |
用于验证方向被验证方发送Challenge,发起验证过程,Data字段包含Challenge |
Response |
用于被验证方向验证方返回用户信息,Data字段含有返回的用户名以及加密运算之后的密码信息 |
Success |
用于验证方向被验证方发送认证成功信息,Data字段可以包含文本提示信息 |
Failure |
用于验证方向被验证方发送认证失败报文,Data字段可以包含文本提示信息 |
(3)NCP报文:#
NCP主要用来协商网络层的参数,如果网络类型为IPv4,则为IPCP,如果网络类型为IPv6,则为IPv6CP
报文类型 |
功能描述 |
Configure-Request |
IP地址,如果为IPv4网络,则为IPv4地址,如果为IPv6网络,则为IPv6地址 |
Configure-ACK |
如果IP地址通过,则发送报文,包含通过的网络地址,并将此接口放入路由表中 |
Configure-NCK |
如果IP地址不通过,则回复Configure-NCK |
3. PPP协议类型:#
PPP协商必须由以下三种协议逐步协商,任何一种协议协商失败,都会导致PPP协商的失败。
PPP主要包含以下协议:
① Link Control Protocol,链路控制协议族,主要用来建立、拆除和监控PPP数据链路
② Network Control Protocol,网络层控制协议族,主要用来协商在该数据链路上所传输的数据包的格式与类型
③扩展协议族CHAP Challenge-Handshake Authentication Protocol)和PAP(Password Authentication Protocol),主要用于网络安全方面的验证
4. PPP建立过程:#
(1)Dead阶段:#
这个阶段表示物理层没有连接,也就是链路Down
(2)LCP建立过程:#
注:LCP建立为双向过程
① 通信双方开始建立PPP链路时,先进入Establish阶段
② 在Establish阶段,PPP链路进行LCP协商,LCP协商成功后进入Opened状态,表示底层链路已经建立,协商内容为:
参数名称 |
功能描述 |
协商规则 |
默认值 |
最大接收单元MRU(Maxnum Receive Unit) |
PPP数据帧中Information字段 |
使用两端设置的较小的值 |
1500 |
认证协议 |
认证对端使用的认证协议 |
认证方发送Request报文;被验证方使用ACK进行确认
|
不认证 |
Magic-Number魔术号 |
魔术字为一个随机产生的数据,用于检测链路环路,两端生成的魔术号必须不一样,否则重新生成,如果收到的LCP报文中的魔术字和本地产生的魔术字相同,则认为存在环路 注:魔术字只是用来检测PPP连接建立的环路,数据报文是不会携带魔术字 |
一端支持而另一端不支持,表示链路无环路,认为协商成功;两端都支持则使用检测机制检测环路 |
启用 |
SP PPP或MP PPP |
工作在Single-Link PPP单链路连接还是MultiNum PPP链路捆绑,用于协商MP之间的参数,如MP的MRU |
如果两端的MP一致,则协商通过,如果协商不一致,则协商失败 |
不启用 |
PPP头的压缩 |
用于压缩PPP的头部 |
|
|
③ LCP的建立过程为双向建立过程:一方向一方发送Configure-Request报文进行请求,另一方收到后如果参数合法回复Configure-ACK,如果不合法回复Configure-Nak;另一方再次发送Configure-Request报文进行请求,一方收到后如果参数合法回复Configure-ACK,如果不合法回复Configure-Nak,如果LCP协商不通过,最多发送五次Configure-Request;如果LCP通过,则查看是否存在认证,存在认证进入认证阶段,如果不存在认证则状态为LCP的Opened状态,并进入NCP的建立过程,并且在后学每10S发送一次Echo LCP报文进行邻居的刷新
(3)认证阶段:#
如果配置了验证,将进入Authenticate阶段,开始CHAP或PAP验证,如果没有配置验证,则直接进入Network阶段,在Authentication阶段,如果认证失败,进入Terminate阶段,拆除链路,LCP状态转为Down。如果认证成功,进入Network阶段,此时LCP状态为Opened
(4)NCP建立阶段:#
注:NCP建立也为双向过程
① 在Network阶段,PPP阶段进行NCP协商,针对IPv4的协商为IPCP协商,针对IPv6的协商为IPv6CP协商,通过NCP协商来选择和配置一个网络层协议进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文,NCP协商包括IPCP(IP Control Protocol,IP地址的获取)、MPLSCP(MPLS Control Protocol)等协商。
② 使用NCP协议进行IP地址的获取时,无IP地址端发送地址为0.0.0.0的Configure-Request的NCP报文,另一方不认同此地址,回复Configure-Nak不同意此地址,如果配置了地址池,则会从地址池中选举地址放入Configure-Nak报文中发送给无IP地址端,无IP地址段收到Configure-Nak报文后,根据报文中分配的地址作为本接口IP,并发送本接口IP的Configure-Request,对端收到后回复Configure-Ack
③ 包含上层压缩的协商,使用IPHC进行协商,比如TCP/IP的压缩,RTP的压缩
注:地址的分配根验证方和被验证方无关系
④ NCP协商成功后,PPP链路将一直保持通信。PPP运行过程中,可以随时中断连接,物理链路断开、认证失败、超时定时器时间到、管理员通过配置管理连接等动作都可能导致链路进入Terminate阶段
(5)Terminate阶段:#
在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方
重新建立PPP连接,开始新的PPP链路建立
5. PPP认证:#
PPP协议使用PAP或CHAP进行认证,认证通过,LCP通过,协议NCP。
① 验证方:验证接入用户是否合法
② 被验证方:提供用户和密码,证明为合法设备
(1)PAP:#
Password Authentication Protocol,两次握手认证,明文密码发送,优点为效率高,认证速度快,缺点为不安全。当链路连理阶段结束后,用户名和密码将由被验证方重复的在链路上发送给验证方,知道验证通过或终止连接。
① 被验证方把本地用户名和口令发送到验证方
② 验证放根据本地用户表查看是否有被验证方的用户名,若有,则查看口令是否正确,若口令正确,则认证通过,如果口令不正确,则认证失败
(2)CHAP:#
Challenge-Handshake Authentication Protocol,挑战握手认证协议,CHAP验证协议为三次握手认证协议,它只在网络上传输用户名,而并不传输用户密码,因此安全性要比PAP高。
(1)验证方配置了用户名的验证过程:
验证方接口下配置了[Huawei-Serial4/0/0]ppp chap user huawei
① 验证放主动发起验证请求,验证方向被验证方发送Challenge报文,报文内容为随机数和ID,如果本端接口下配置了ppp chap user,则将用户名附带上一起发送被验证方
② 被验证方接到验证方的验证请求后,先检查本端接口上是否配置了PPP chap password:
- 如果配置了该命令,则被验证方用验证方发送报文中的随机数,命令中配配置的用户密码和MD5算法对该随机报文进行加密,将生成的密文和自己的用户名和ID发回验证方(Response)
- 如果接口上未配置PPP Chap password命令,则根据报文中验证方的用户名与本端的用户表查找该用户对应的密码,使用报文中的随机数和密码进行MD5生成128bit的哈希值,将生成的哈希和自己的用户名、ID发回验证方(Response)
③ 验证方收到报文,根据报文中的ID查找本机中的随机数,根据随机数和报文用户名对应的本端比吗进行MD5算法,比较二者的哈希,如果比较结果一致,认证通过,如果不一致,认证失败
注:接口下配置用户名只有本地意义,即使认证方发送过来的challenge报文中的用户名和本端接口的用户名不同,会送的Response报文中的用户名和哈希也是被认证端自身接口的用户名和密码(哈希)
(2)验证方没有配置用户名的验证过程(华为特有,思科不支持):
验证方接口下没有配置了[Huawei-Serial4/0/0]ppp chap user huawei
① 验证方主动发送验证报文,验证方向被验证方发送一些随机产生的报文(Challenge)
② 被验证方接到验证方的验证请求后,利用报文ID、接口的PPP chap password命令配置的chap密码和MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发回验证方Response
③ 验证方根据报文中的用户名查看自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一直,认证通过,如果比较结果不一致,认证失败
注1:在宽带接入时,使用第二种,认证方服务器直接发送ID,拨号用户将ID和密码生成散列值,将散列值+用户名发回验证方,认证服务器查看报文中的用户名,查看密码和ID生成散列值进行比较。思科中如果没有用户名密码,则将设备用户名作为PPP用户名
注2:双方是否开启CHAP认证的依据为验证方接口上开启了ppp chap authentication chap;被认证方接口上开启了ppp chap user,所以无论验证方发送的挑战报文是否携带用户名,被验证方接口上都要存在ppp chap user,否则LCP协商不通过
- 挑战报文携带用户名,被验证端首先查看接口密码,如果不存在接口密码,则查看全局密码
- 挑战报文不携带用户名,被验证端则只看接口密码,如果接口密码不存在,则认证失败
注3:如何区分认证端和被认证端?
在LCP检测链路时,如果管理员在接口下配置了命令ppp authentication chap,则为认证端,在发送的LCP configuration request报文中会携带chap的认证请求,对端如果接口上配置了ppp chap password命令,则为认证端,会回复LCP Configuration ACK报文
(3)CHAP配置问题:#
验证方:
① ppp authentication-mode chap---此命令将其设置为验证方,此时发送LCP报文时开启了CHAP的验证
② 验证方接口下配置[Huawei-Serial0/0/0]ppp chap user作用为发送挑战报文中携带此用户名(华为可以为空)
③ 验证方密码只能aaa下配置生效
被验证方:
① 接口下使用[Huawei-Serial0/0/0]ppp chap user,此设备为被验证方,LCP开启了HCAP验证
② 被验证方密码首先匹配接口,接口无密码查看全局
③ 如果挑战报文中的用户名为空,则只看接口密码,不看全局密码
常见问题:
① 口令配置在接口和配置在全局的区别?
- 被认证方接口密码配置优先,接口没有密码配置查看全局
- 认证方接口上配置密码无意义,只使用全局用户名对应的密码
② 接口的配置信息起什么作用?
- 认证方使用接口的用户名作为挑战报文的用户名
- 被认证方使用接口用户名回应挑战报文
③ 认证方发送的消息携带的用户名是什么?
- 如果认证方在接口配置用户名的话,发送的挑战报文中携带此用户名,如果接口没有配置用户名,则华为保持为空,思科使用路由器的系统名称
④ CHAP认证挑战报文中的用户名是怎么来的?
- 认证方的用户名是在认证接口上配置上去的,如果接口没有配置用户名,则华为保持为空,思科使用路由器的系统名称
- 被认证方的用户名也是接口上配置上去的,而且被认证方接口下必须配置用户名
⑤ 如果认证方发送的挑战报文没有携带用户名,被认证方怎么去处理?对CHAP认证有没有影响?
- 如果挑战报文没有携带用户名,被认证方直接使用认证接口下配置的口令做Hash计算。认证方发送的挑战报文不携带用户名对CHAP认证没有影响。但被人正当解密口下的Password要配置
⑥ 认证方发送的用户名和被认证方发的用户名本身有没有什么关联?
- 本身没有强制关联关系的,都是在本地上进行配置的,通过CHAP消息携带到堆放区,并据此寻找Password,如果密钥不同,则认证失败
⑦ 被认证方的接口下如果没有配置用户名会导致什么情况?
- 认证方发送LCP的configuration-Request报文,被认证方认为接口并没有开启CHAP认证,LCP协商失败
⑧ 谁会发送认证失败报文?
- 验证方
⑨ 挑战报文中的ID是干嘛的?
- 生成哈希值,回应挑战报文的
⑩ 挑战报文里的随机数是干嘛?
- 用来防止防重放攻击的
⑪ 请说出哪些是必须配置的?
- 认证方的全局用户名及对应的密码
- 被认证方接口用户名
⑫ 请说出哪些是一定不会使用的参数?
- 认证方接口下的密码
⑬ 如果验证方接口下没有配置用户名,则还有什么参数是必须的?
- 被验证方接口下的密码
⑭ 如果验证方接口没有配置密码,则还有什么参数时必须的?
- 被验证方全局用户名及对应的密码,验证方接口发送的用户名
(4)PAP和CHAP比较:#
① PAP认证中,口令以明文方式在链路上发送,完成PPP链路建立后,被验证方会不停的在链路上反复发送用户名和口令,知道身份验证过程几首,所以安全性不高,当实际应用过程中,对安全性要求不要而延迟要求高时,可以使用PAP认证建立PPP连接
② CHAP人中,验证协议为三次握手验证协议,它只在网络上传输用户名而不传输用户密码,因此安全性比PAP认证高
6. MP:#
Multi Protocol,多协议链路,将PPP链路捆绑为一条逻辑链路,提高实际物理带宽。
[Huawei]inter Mp-group 0/0/0
[Huawei-Mp-group0/0/0]ip add 192.168.1.1 24
[Huawei]inter s4/0/0
[Huawei-Serial4/0/0]ppp mp Mp-group 0/0/0
[Huawei]inter s4/0/1
[Huawei-Serial4/0/1]ppp mp Mp-group 0/0/0
注:MP接口不能启用认证,需要在物理端口进行认证
7. 传输模式:#
设备为DTE端,两种模式都是支持的,具体看DCE端(调制解调器)是什么模式
(1)同步问题:#
在数字通信中,同步(Synchronous)是十分重要的。当发送器通过传输介质向接收器传输数据信息时,如每次发出一个字符(或一个数据帧)的数据信号,接收器必须识别出该字符(或该帧)数据信号的开始位和结束位,以便在适当的时刻正确地读取该字符(或该帧)数据信号的每一位信息,这就是接收器与发送器之间的基本同步问题。
当以数据帧传输数据信号时,为了保证传输信号的完整性和准确性,除了要求接收器应能识别每个字符(或数据帧)对应信号的起止,以保证在正确的时刻开始和结束读取信号,也即保持传输信号的完整性外;还要求使其时钟与发送器保持相同的频率,以保证单位时间读取的信号单元数相同,也即保证传输信号的准确性。
因此当以数据帧传输数据信号时,要求发送器应对所发送的信号采取以下两个措施:
①在每帧数据对应信号的前面和后面分别添加有别于数据信号的开始信号和停止信号
②在每帧数据信号的前面添加时钟同步信号,以控制接收器的时钟同步。
异步传输与同步传输均存在上述基本同步问题:一般采用字符同步或帧同步信号来识别传输字符信号或数据帧信号的开始和结束。两者之间的主要区别在于发送器或接收器之一是否向对方发送时钟同步信号。
(2)同步传输:#
Synchronous Transmission,同步传输的比特分组要大的多。它不是独立地发送每个字符,同步传输以数据帧为单位传输数据,帧的内容为将多个字符组合起来一起发送
同步传输使用第一帧和最后一帧标识数据的开始和结束,数据帧的第一部分包含一组步字符,他是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使接收双方进入同步;帧的最后一部分是一个帧的结束标记。与同步字符一样,他也是一个独特的比特串,类似于前面提到的停止位,用于表示下一帧开始之前没有别的即将到达的数据
在短距离的高速传输中,该时钟信号可由专门的时钟线路传输;计算机网络采用同步传输方式时,常将时钟同步信号植入数据信号帧中,以实现接收器与发送器的时钟同步。
(3)异步传输:#
Asynchronous Transmission,异步传输以字符为单位传输数据,采用位形式的字符同步信号,发送器和接收器具有相互独立的时钟(频率相差不能太多),并且两者中任一方都不向对方提供时钟同步信号。异步传输的发送器与接收器双方在数据可以传送之前不需要协调:发送器可以在任何时刻发送数据,而接收器必须随时都处于准备接收数据的状态。计算机主机与输入、输出设备之间一般采用异步传输方式,如键盘、典型的RS-232串口(用于计算机与调制解调器或ASCII码终端设备之间):发送方可以在任何时刻发送一个字符(由一个开始位引导,然后连续发完该字符的各位,后跟一个位长以上的哑位)。
异步传输,传输不连续,以字符为单位进行传输,由起始位,数据位,偶校验位(可省略),停止位这4部分组成
- 停止位:处于逻辑“1”状态,表示当前线路上没有资料传送
- 起始位:先发送一个逻辑“0”信号,表示传输字符的开始
- 停止位:发出一个逻辑“1”信号,表示1帧数据的结束
异步传输工作过程:
① 当初始化后,或者没有信息需要发送时,发送端输出逻辑“1”,即空闲位,空闲位可以有任意数量
② 当需要发送时,发送端首先输出逻辑0,作为起始位
③ 接着,发送端首先发送D0位,知道各数据位发送完
④ 如果需要的话,发送端输出校验位
⑤ 最后,发送端输出停止位(逻辑1)
⑥ 如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第二步
(4)两者比较:#
① 同步传输要比异步传输快速的多,接收方不必对每个字符行开始和停止的操作,一旦检测到帧同步的停止位,用于表示在下一个帧开始之前没有别的即将到达的数据
② 同步传输方式中发送方和接收方的时钟是统一的、字符和字符间的传输是同步无间隔的。异步传输方式不需要发送方和接收方的始终完全一样,字符与字符间的传输时异步的。
(5)两者传输区别:#
① 异步传输是面向字符的传输,而同步传输时面向比特的传输
② 异步传输的单位是字符,而同步传输的单位是帧
③ 异步传输通过字符起止的开始和停止码抓住在同步的机会,而同步传输则是以数据总抽取同步信息
④ 异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序
⑤ 异步传输相对于同步传输效率较低
7. PPP相关配置:#
(1)PPP认证配置:#
① PAP单项认证:
AR1(认证方):
[Huawei]inter s4/0/0
[Huawei-Serial4/0/0]ppp authentication-mode pap
[Huawei]aaa
[Huawei-aaa]local-user huawei password cipher huawei
[Huawei-aaa]local-user huawei service-type ppp
AR2(被验证方):
[Huawei-Serial4/0/0]ppp pap local-user huawei password cipher huawei
② CHAP单向认证:
AR1(认证方):
[Huawei-Serial4/0/0]ppp authentication-mode chap
[Huawei-Serial4/0/0]ppp chap user huawei----如果实现验证方的Challenge报文中不携带用
户名则不需要配置此命令
[Huawei]aaa
[Huawei-aaa]local-user huawei password cipher huawei
[Huawei-aaa]local-user huawei service-type ppp
AR2(被验证方):
[Huawei-Serial4/0/0]ppp chap user huawei
[Huawei-Serial4/0/0]pp chap password cipher huawei
(2)NCP地址分配:#
PPP协议可以使用NCP协议进行PPP地址的协商与分配
AR1:
[Huawei]ip pool PPP
[Huawei-ip-pool-PPP]network 192.168.1.0 mask 24
[Huawei]inter s4/0/0
[Huawei-Serial4/0/0]ip add 192.168.1.1 24
[Huawei-Serial4/0/0]undo shut
[Huawei-Serial4/0/0]remote address pool PPP
AR2:
[Huawei]inter s4/0/0
[Huawei-Serial4/0/0]ip address ppp-negotiate
三. Frame Relay :#
Frame Relay,帧中继,工作在OSI参考模型的数据链路层,是一种互联不同站点的广域网二层技术。
1. 帧中继特点:#
(1)分组交换:#
帧中继技术属于分组交换网络,传输的数据是以数据帧为单位进行传输的。
(2)异步传输:#
帧中继属于异步传输模式,有信息流的时候建立通道进行传输;无信息流的时候拆除逻辑通道链路。
(3)多路接入:#
链路中可能会存在多条虚链路,称为多路接入,此时就需要正确的目标地址和目标HDLC。
2. 帧中继网络设备:#
帧中继网络环境中,主要包括:
① DTE 数据终端设备
② DCE 电路中介设备
(1)DTE:#
用户设备被称作数据终端设备DTE,通常为企业边界路由器。
(2)DCE:#
为用户设备提供网络接入的设备被称为数据电路终结设备DCE。
3. 帧中继原理:#
(1)DLCI:#
Data Link Connection Identifier,数据链路连接标识,同一台DCE的两个不同的HDLC共同标识了一条逻辑链路。
在以太网网络环境中,二层封装为MAC地址,三层封装为IP,而在帧中继中,三层封装大多数为IP,但是二层不再是MAC地址,而是DLCI号,位于运营商中的P设备(帧中继交换机)根据二层的DLCI实现数据包的转发,所以DTE再讲数据包送到DCE时,需要在二层封装去往目标地址正确的DLCI号。
注:DLCI只具有本地意义
4. 帧中继建立模式:#
帧中继建立逻辑链路通道称为“虚链路”,虚链路分为两种:
① PVC 永久虚链路
② SVC 交换虚链路
(1)PVC:#
永久虚链路,DCE中的DLCI表映射时提前规划好的,并且一直存在的。
(2)SVC:#
交换虚链路,当数据传输完毕后,DLCI映射表将会被删除,建立好的逻辑链路将会被拆除,等待下次有数据重新传输时,会重新建立DLCI映射表。
5. 帧中继建立过程:#
(1)LMI协商过程:#
LMI,本地管理接口,用于DTE查询与DCE连接的状态;也用于DTE学习连接DCE端的DLCI。
① LMI探测数据包:
用于DTE探测自己与DCE是否处于连接状态,默认每隔3S发送一次。
② Q.933本端DLCI学习包:
(2)DTE学习DLCI映射表:#
本端通过LMI协议获取了DCE设备与自己直连的DLCI号,但是并不知道DLCI号所映射的IP地址。
DTE学习直连DCE的DLCI映射表有两种方式:
① Inverse ARP(默认为此模式)
② 手动配置
① Inverse ARP:
使用Inverse ARP通过HDLC获取IP地址过程:
① RTA通过LMI协议获取本端所有的DLCI号后,便会向DCE设备发送Inverse ARP报文,目标HDLC地址为102,送往DCE。
② DCE设备收到数据包,发现目标DLCI为102.查看映射表为S0/0/2口的201,将目标DLCI改为201,送往S0/0/2,R2收到源地址为192.168.1.1,DLCI为201的数据包,生成DLCI映射表。
③ 同理,R1也会发送本端DLCI为103的逆向映射表去往R3,R3生成DLCI映射表。
④ R2和R3也会分别发送201和301的逆向ARP。
注:由于DLCI号只有本地意义,所以在发送逆向ARP报文时,数据包在ISP中的DLCI会随时变化,但是当数据包到达对顶端DCE设备时,在送往DCE设备,会被打上新的DLCI号,此时DTE便会收到通过LMI学习到的DLCI号对应的IP地址。
②手动配置:
DLCI也可以采用手工配置的方式建立映射表:
[Huawei]inter s0/0/0--------------进入帧中继接口
[Huawei-Serial0/0/0]undo FR inarp-关闭逆向ARP解析
[Huawei-Serial0/0/0]FR map ip 192.168.1.2 102-----配置静态DLCI映射表
6. 帧中继子端口:#
帧中继端口可以根据目标IP地址建立多条PVC,在特殊情况下,可以使用子接口建立PVC,链路,帧中继子接口分为两种模式:
① 点到点模式
② 点到多点模式
命令:inter s0/0/0.1----进入子接口(后面可接P2P、P2MP)
(1)点到点:#
默认一个子接口只能配置一条pvc链路。
(2)点到多点:#
子接口设为点到多点模式,可以配置多条pvc链路。
7. 帧中继部署方式:#
企业部署帧中继通常分为两种形式:
① 全互联
② Hub Spoke
(1)全互联:#
企业的各个分布分别向运行商申请HDLC,每个分布都和其余分布进行互联。
(2) Hub Spoke:#
企业为了节省资金,通常会采用Hub Spoke模式进行部署帧中继:
Hub Spoke模式,通常企业各个分布与企业总部相连,企业分布想要进行互访,HDLC的IP直接指向企业总部,流浪去往企业总部后,企业总部的DTE重新封装数据帧流量进行转发。
注:由于Spoke和Spoke通过Hub端进行互访,但是并不支持组播或广播的互访,所以建立PVC时无需支持广播
8. 帧中继存在问题:#
(1)RIP水平分割问题:#
在帧中继Hub Spoke模式中,R1为Hub,分别与R2、R3建立了PVC连接,在三台路由器上启用RIP协议,并让FR接口支持广播环境,R1会发送DLCI为102、103的RIP报文,R2只会发送201的RIP报文,R3只会发送301的RIP报文,这样R1会分别于R2、R3建立邻居,但是R2余R3没有邻居关系。
水平分割问题:
R2将192.168.30.0的网段通告出去,此时只有R1会收到这条报文信息,R1从接口S0/0/0收到了此信息,但是由于默认水平分割,R1不会再将192.168.30.0从S0/0/0通过出去,这样R2就不会存在192.168.30.0的网段信息。
注:帧中继端口默认不支持广播环境,如果需要开启广播发送,在配置静态map时最后使用broadcast命令。
解决方法:
① 去掉RIP水平 ,使用子接口使用相同的HDLC建立不同的对端IP。
(2)OSPF与帧中继:#
(1)NBMA网络中,FR端口默认阻止组播,ospf无法建立邻居
- 将OSPF类型改为Broadcost,在建立FR map时后面加上Broadcost 允许端口发送组播
- 默认NBMA网络类型,单播发送,peer手工指定邻居
注:Hub-Spoke中,Spoke路由器是无法建立邻居的,即使NBMA单播建立邻居,采用DLCI复用的方法也不行,因为单播的TTL值为1
(2)在hub-spoken中,由于所有的路由器没有完全建立pvc,所以导致dr的选举错误,此时r2和r3都认为自己是DR,所以应该将hub端选举为DR。
- 除Hub外,将其余的路由器的优先级置为0
(3)R1与R2,R1和R3之间建立了pvc,R1为Hub点,所以为R2,R3更新路由条目 ,此时R2,R3已经收到所有的路由条目,如果此时R2访问R3,根据FS地址下一跳为R3的接口地址,但是数据层面无法通信,因为R2,R3之间没有建立pvc,R2去往R3不知该封装多少DLCI号,此时会造成有路由但数据不通的现象。
- DLCI复用,R3去往R2的DLCI设置为去往R1的DLCI,R2去往R3的DLCI设置为去往R1的DLCI,此时R3和R2通信经过R1中转便可以实现
针对OSPF与帧中继问题,可以使用P2MP类型OSPF:
P2MP网络会将路由器所有的直连接口作为OSPF路由条目发送出去
问题1.支持组播,所以将端口改为P2mp不需要手工peer,但需要在建立FR map的时候加入br命令支持组播发送
问题2.在hub-spoken中,由于P2MP不需要选举DR,所以不会出现DR选举错误的问题
问题3.在hub-spoken中,网络类型为p2mp网络的时候,由于没有另外一端Spoke的DLCI,但是递归查询,去往Spoke的下一跳为HUB端,而且也知道HUB端的DLCI号,于是递归查询将去往另一端Spoke的DLCI自动封装为HUB端的DLCI送往HUB,实现了数据方向通信
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!