文章目录
网络类型
网络类型是根据数据链路层所使用的协议及规则进行划分,数据链路层使用的协议有:以太网协议,hdlc协议,ppp协议等,根据所使用的协议大致可以分为两类网路:
p2p网络 (point to point)
中文为点到点网络,在一个网络只允许存在两台设备,如果出现多台设备,则会导致设备间无法通信,支持的二层协议有:hdlc,ppp等。 p2p网络一般使用串线作为传输介质
MA网络(multiple access)
中文为多点接入网络,在一个网络中允许存在多台设备,有不同的二层地址来区分设备。根据在MA网络中是否存在广播,可将MA网络分为两类:
BMA (broadcost multiple access)
中文为广播型多点接入网路,在MA网络中存在广播行为(即在存在多台设备的网络中,一台设备发送广播数据时只需发送一次,广播数据经由中间设备复制转发给网络中的其他所有设备),我们现在最常用的以太网就是BMA。在以太网中,通过交换机可以增加一个网络内的设备数量,通过交换机实现了广播行为。
NBMA (not broadcost multiple access)
NBMA就是非广播型多点接入网络,在一个MA网络中没有广播行为,如果NBMA网络中的设备想进行广播的话,就需要给网络中的其他所有设备都发送一次数据包。
数据链路层协议
以太网协议
简介
以太网,广播型多点接入网络,通过交换机的洪泛行为实现广播,在一个网络中使用MAC地址区分不同的主机以实现单播,MAC地址是以太网所独有的;在链路中使用多种频率的信号以提高链路带宽,常用的传输介质有RJ-45双绞线,RJ-11电话线,同轴电缆,光纤等;存在冲突(相同频率电流碰撞,相互破坏),需要CSMA/CD(载波侦听多路访问/冲突检测—类似排队机制)解决。
频分复用
早期的网线只有两根铜丝,一根用来传输数据,一根用来接受数据,这时的传输速率非常低,只有64kbps,随着网络的发展,对通信速率的要求越来越高,于是早期人们通过在单条链路上增加铜丝数以增加传输速率,于是就出现了串线,但现在串线的最高传输速率也只有2.048Mbps,远远不能满足需求;于是以太网在根铜丝上同时发送不同频段的信号,实现数据的并行发送。而串线只用一个频段的信号传输数据,通过这种方式,以太网在家用环境下达到1000Mbps。
传输介质
双绞线
双绞线是目前使用最广的一种传输介质,它价格便宜、易于安装,适用于多种网络拓扑结构,双绞线由8根不同颜色的线分成4对绞合在一起,成队扭绞的作用是尽可能减少电磁辐射与外部电磁干扰的影响,双绞线可按其是否外加金属网丝套的屏蔽层而区分为屏蔽双绞线(STP)和非屏蔽双绞线(UTP)。在EIA/TIA-568A标准中,将双绞线按电气特性区分有:四类、五类线、六类线等。RJ-45指的是水晶头的标准
同轴电缆
同轴电缆(Coaxial Cable)是一种电线及信号传输线,一般是由四层物料造成:最内里是一条导电铜线,线的外面有一层塑胶(作绝缘体、电介质之用)围拢,绝缘体外面又有一层薄的网状导电体(一般为铜或合金),然后导电体外面是最外层的绝缘物料作为外皮。同轴电缆可用于模拟信号和数字信号的传输,适用于各种各样的应用,其中最重要的有电视传播、长途电话传输、计算机系统之间的短距离连接以及局域网等。
光纤
光纤,是一种由玻璃或塑料制成的纤维,利用光在这些纤维中以全内反射原理传输的光传导工具。通常光纤的一端的发射设备使用发光二极管或一束激光将光脉冲发送至光纤中,光纤的另一端的接收设备使用光敏组件检测脉冲。包含光纤的线缆称为光缆。由于信息在光导纤维的传输损失比电在电线传导的损耗低得多,更因为主要生产原料是硅,蕴藏量极大,较易开采,所以价格很便宜,促使光纤被用作长距离的信息传递介质。
HDLC
简介
HDLC:高级数据链路控制协议,是一种专门应用在串线链路的二层协议,早期是由IBM公司提出的SDLC协议,后ISO组织采纳了SDLC提出了自己的标准:HDLC。各大厂商由在标准的HDLC的基础上进行优化,得到了各自不同非标准的HDLC;由于不同厂商的HDLC和标准的HDLC之间均不兼容,所以HDLC兼容性差,ppp协议使用较多。
ensp中使用HDLC
- 搭建点到点网络环境
- 查看接口的二层特征
[r1]display interface Serial 4/0/0
- 修改接口点到点网络的二层封装为hdlc
[r1-Serial4/0/0]li
[r1-Serial4/0/0]link-protocol hdlc
Warning: The encapsulation protocol of the link will be changed. Continue? [Y/N]
:y
链路两端的必须使用相同的二层协议
4. 查看HDLC的数据包
HDLC从数据包内容来看,字段较少,可以完成的事情较少,仅完成了二层介质访问控制的工作。
PPP
简介
PPP 为 Point to Point Protocol 的缩写,相对于HDLC,PPP具有更高的兼容性,这是由于PPP标准统一,其可以支持任何一种支持全双工的串线之中,不像HDLC标准和非标不兼容,不同厂家的非标也不兼容。PPP除兼容性外还有可移植性的特点,PPPoE就是用在以太网上的PPP。
PPP的帧结构
包中携带的IP,则回复congigure-ack,否则回复nak。
双方在该阶段获取了对方的IP,就会在路由表中生成一个去往对方IP的主机路由,这使得即使PPP链路的两端IP不在同一个网段,也可以通信。利用这个特性,可以自动下发IP地址。
request包格式
ack包格式
ensp中自动下发IP地址配置
获取方配置:
[r1-Serial4/0/0]ip address ppp-negotiate
发放IP地址方配置:
[r2-Serial4/0/0]remote address 2.2.2.2
GRE 通用路由封装
情景导入
如图,假设公司总部、分公司、Home是三个私网网段,有这么一个需求:即使你在分公司或者在家也可以访问到公司总部内部的私网。那如何实现这个需求呢?最简单的办法就是在分公司或家直接拉一条专线与公司总部相连,这样三个私网就融合成一个私网。但如果分公司离总部很远的话,拉专线的成本就会非常高,一般的公司无法承担。那怎么办呢?有人想到真的专线玩不起,我们可以玩虚的专线,在分公司和总部间搭一个虚拟专线,通过公有网络转发私网流量。那如何实现呢?GRE就可以实现这个需求。
GRE通信过程
GRE通用路由封装技术,其实就是在网络层封装上在套一层GRE封装,比如分公司的192.168.2.1
想要访问总部的192.168.1.1
,由于公网没有私网路由,所以这个包来到公网后就会被丢弃。但是呢,通过GRE我们可以在原本的网络层封装再加一层SIP:2.2.2.2 DIP:1.1.1.1
(假设分公司的公网IP为2.2.2.2,总部的公网IP为1.1.1.1),公网路由器先看见的是我们添加的封装,于是公网路由器就会将该报转发值总部的边界路由器,边界路由器一看是找自己的,于是解封装,发现这是找192.168.1.1
的,边界路由器自然有私网的路由,于是就将这个包发给了192.168.1.1
。GRE就是一种隧道技术,在隧道的两端通过封装以及解封装技术在公网上建立一条数据通道。使用这个数据通道进行数据传输。
ensp中GRE的配置
1,创建隧道接口
[r1]int Tunnel 0/0/? --- 创建虚拟tunel口
<0-511> Tunnel interface interface number
[r1]int Tunnel 0/0/0
[r1-Tunnel0/0/0]
2,隧道接口配置IP地址
[r1-Tunnel0/0/0]ip address 192.168.1.1 24 --- 配置的是个私网地址
3,定义封装类型
[r1-Tunnel0/0/0]tunnel-protocol gre --- 定义tunnel口使用的协议
4,定义封装内容
[r1-Tunnel0/0/0]source 1.1.1.1 --- 定义来源,GRE封装的SIP
[r1-Tunnel0/0/0]destination 2.2.2.2 --- 定义目的地,GRE封装的DIP
5.添加路由,使得访问另一个私网时走Tunnel口
[r1][r1]ip route-static 192.168.2.0 24 Tunnel 0/0/0
GRE数据包
MGRE
虽然使用GRE技术可以通过公网转发私网流量,但我们发现一个tunnel口的source和destination是固定的,是一个点到点的隧道。如果一家公司有多个分公司,且都要求它们的私网可以互相通信,如果使用GRE技术的话,每两个通信的私网都需要配置一个tunnel口,这导致配置量大大提高,为了减少配置量和使用更灵活,MGRE应运而生。
MGRE(multicas Generic Routing Encapsulation),它可以通过NHRP(下一跳路径发现协议)建立一张地图,地图上标注着多个目标的公网IP和私网IP,配置tunnel口时,只需固定source,destination根据地图自动匹配。因为MAGRE搭建的逻辑拓扑是一个多节点的网络,但是,发送信息时依然是点到点的发送,无法使用广播或者组播行为,所以,这样的网络我们可以称为NBMA网络。
ensp中的MGRE静态配置
[r1]int tunnel 0/0/0 --- 创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24 --- 配置隧道IP地址
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp --- 选择封装类型 ---- 选择MGRE
[r1-Tunnel0/0/0]source 15.0.0.1 --- 定义源IP地址
[r1-Tunnel0/0/0]nhrp entry 192.168.4.2 24.1.1.1 ---- 生成静态映射
[r1-Tunnel0/0/0]nhrp entry 192.168.4.3 34.1.1.1
查看生成的MAP
[r1]display nhrp peer all
-------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
-------------------------------------------------------------------------------
192.168.4.2 32 24.1.1.1 192.168.4.2 static -
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time : 00:00:13
Expire time : --
-------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
-------------------------------------------------------------------------------
192.168.4.3 32 34.1.1.1 192.168.4.3 static -
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time : 00:00:07
Expire time : --
Number of nhrp peers: 2
上述配置使得在一个tunnl口就可以完成多个私网的融合。但如果分公司的公网IP不是固定的,这就需要NHRP帮助我们解决这个问题,NHRP不仅可以建立静态MAP映射,它最重要的作用是可以自动学习隧道地址和物理地址的对应关系。
NHRP原理
在私网中选出一个物理接口不会发生变化的作为NHRP的中心(NHS — 下一跳服务器)。剩下的分支都需要知道中心的隧道IP和物理接口IP,他们需要将自己的物理接口IP和隧道IP发送给中心(如果分支的物理接口的IP地址发生变化,则需要立即将对应关系重新发送)。这样,NHS将会收集所有分支的地址映射关系。之后需要通讯时,查看对应关系,封装对应的接口IP地址即可。分支之间需要进行通讯,则先将数据发给中心,由中心进行转发。
MGRE 中心到站点配置
给中心站点进行配置,上图中我们选择R1为中心站点,其他未分支站点
[r1]int t 0/0/0 --- 创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.4.1 24 --- 配置隧道IP地
址
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp --- 选择封装类
型 ---- 选择MGRE
[r1-Tunnel0/0/0]source 14.0.0.1 --- 定义源IP地址
[r1-Tunnel0/0/0]nhrp network-id 100 --- 创建NHRP域,需要互通的tunnel口的域id配置应相同
给分支站点进行配置
[r2]int t 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.4.2 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/1 --- 以接口作为封装源,以应对IP地址的变化
[r2-Tunnel0/0/0]nhrp network-id 100 --- 加入NHRP域,必须是和中心站点创建相同的域
[r2-Tunnel0/0/0]nhrp entry 192.168.4.1 14.0.0.1 register ---找中心站点进行注册
路由信息获取
上述配置中,无论是静态映射还是中心到站点,我们都是实现了tunnel口的互通,以一个tunnel口IP为sip,可以ping通其他所有tunnel口IP。但私网内部的路由信息还需要另外配置。配置的方法也如同以前一样,虽然在物理上它们不想连,但在逻辑上它们是相连的。
静态路由
[r1]ip route-static 192.168.2.1 24 tunnel 0/0/0
或者
[r1]ip route-static 192.168.2.1 24 192.168.3.2
通过RIP获取路由信息
[r1]rip 1
[r1-rip-1]version 2
[r1-rip-1]undo summary
[r1-rip-1]network 192.168.1.0
[r1-rip-1]network 192.168.3.0
注意:
- 中心站点可以收到分支的数据包,但是,分支不能收到中心站点的数据报,这是因为 MGRE环境下不支持广播或者组播行为,但我们可以在在中心站点开启伪广播 ,分别给所有节点发送单播以达到广播的效果
[r1-Tunnel0/0/0]nhrp entry multicast dynamic --- 开启中心站点伪广播
- 开启伪广播后,分支站点只能收到中心站点的路由信息,却不能收到其他分支站点的路由信息,这是由于RIP的水平分割导致的,从tunnel口进的包不得从tunnel口出。我们需要关闭接口的水平分割
[r1-Tunnel0/0/0]undo rip split-horizon --- 关闭接口水平分割功能