基础概念
TCP/IP五层和OSI七层结构
TCP/IP结构:
应用层:负责处理应用程序之间的沟通,常用的协议有SMTP(简单邮件传输协议)、文件传输协议(FTP)、网络远程访问协议(Telent)。
传输层:提供端到端的可靠数据传输服务,通过传输协议(TCP和UDP)管理连接、控制流量、检测并纠正错误,基本单位是数据段。
网络层:处理报文的传输和网络互连,常用的路由协议
数据链路层:将比特组装成数据帧和进行点到点的数据传输。
物理层:通过物理媒介传输比特,确定机械及电气规范。
如果是四层的话则是应用层、传输层、网络层、网络接口层。
OSI七层结构:
应用层:提供允许访问OSI环境的手段(应用协议数据单元APDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
传输层:同上
网络层:同上
数据链路层:同上
物理层:同上
每一层常用的协议及其对应的端口号
应用层
FTP:文件传输协议,20(数据)+21(控制),使用TCP
SSH:安全登录,22,TCP
Telent:远程登录协议,23,TCP
SMTP:简单邮件传输协议,25,TCP
DNS:域名解析协议,53,TCP/UDP
DHCP:动态主机配置协议,67,UDP
TFTP:简单文件传输协议,69,UDP
HTTP:超文本传输协议,80,TCP
NTP:网络时间协议,123,UDP
SNMP:简单网络管理协议,161,UDP
传输层
TCP:传输控制协议,6,提供可靠的用户数据传输,确保数据的完整性和顺序
UDP:用户数据报协议,17,提供不可靠的用户数据传输,传输速度较快
网络层协议
ARP:将IP地址解析对应设备的MAC地址
ICMP:网络控制报文协议,协议号为1,主要用于在IP网络中传递控制消息和错误报告。ping和tracert操作就是基于ICMP协议之上的
IGMP:网络组管理协议,协议号为2,负责在IP网络中管理主机的组播成员身份。
IP:是TCP/IP的核心,所有的TCP、UDP、ICMP、IGMP的数据都是基于IP数据格式传输。IP协议并不是可靠的协议。因为IP协议并没有提供一种数据未传达的处理机制,而这则是被认为是上层协议TCP或者UDP需要处理的事情。IP的三大作用模块,分别是IP寻址、路由、IP分包和组包。
VRRP:虚拟路由冗余协议
OSPF:开放式最短路径优先协议,基于IP协议,协议号89
ISIS:中间协议到中间协议,基于IP协议,
BGP:边界网关协议
数据链路层
PPP:点到点协议
FR:帧中继
HDLC:高级数据链路控制协议
VLAN:虚拟局域网
STP:生成树协议
RRPP:快速环网保护协议
二层技术
STP
定义:生成树协议,用于防止冗余链路导致的环路问题。通过阻塞冗余链路消除环路,并且当活动链路发生故障时,激活冗余备份链路恢复网络。
选举机制:根桥选举(通过比较交换机优先级值,值小者优先,如果相同则比较MAC地址,MAC地址小者优先,并且会生成网桥ID,即优先级+MAC地址)。根端口(RP)选举(每台非根交换机选举一个根端口,根端口为到根桥路径开销最低的端口)。根桥的所有端口均为指定端口(DP),非根桥交换机则选取根路径开销最低的端口。
端口状态:
disable:不处理BPDU
blocking:处理BPDU,但是不转发流量
listening:选出根桥、RP、DP,过渡状态
learning:构建MAC地址表,不转发用户流量,防止临时环路
forwarding:只有RP和DP处于该状态
BPDU类型:
配置BPDU:包含了RID、路径开销和端口ID等参数,STP通过在交换机之间传递配置BPDU来选举根交换机、以及确定每个交换机端口的角色和状态,初始化时每个交换机都发送配置BPDU,在网络拓扑稳定后只有根桥主动发送配置BPDU,其他交换机在接收到上游传来的配置BPDU之后才会发送自己的配置BPDU
TCN BPDU:下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知
BPDU老化时间为20s,发送hello的间隔为2s
RSTP
定义:快速生成树协议,主要实现了快速收敛,并且端口的类型和状态也发生改变。
端口角色:
根端口RP
指定端口DP
替换端口AP:根端口的备份端口
备份端口BP:指定端口的备份端口
阻塞端口
端口状态:
discarding:不转发用户流量,不学习MAC地址
learning:不转发用户流量,学习MAC地址
forwarding:转发用户流量,学习MAC地址
BPDU格式
protocol version ID变为2(STP为0)
BPDU type变为2(STP的配置BPDU为00,TCN BPDU为80)
使用flags的全部8位(STP仅仅使用0和7位)
收敛方式
STP:当下游发生变动时,下游设备向上游设备发送TCN BPDU表示拓扑发生变动,上游设备在收到TCN后向下游设备发送TCA BPDU表示收到该信息,下游设备在收到TCA后停止发生TCN报文,上游设备重复该步骤向更上游设备发送报文直到根桥交换机收到该TCN BPDU报文,根桥之后会向所有下游设备发送TC BPDU报文表示拓扑发生变动。
RSTP:
P/A:其目的是使一个指定端口尽快进入Forwarding状态。当网络中添加新链路时,P/A机制通过协商过程加速网络的收敛。具体来说,当新链路连接成功后,两个端口(p0和p1)会立即成为指定端口并发送RST BPDU。随后,接收到更优的RST BPDU的端口会意识到自己将成为根端口,从而停止发送BPDU。同时,发送方进入Discarding状态,并通过发送的RST BPDU中把Proposal和Agreement置1。接收方收到根桥发送来的携带Proposal的RST BPDU后,开始将自己的所有端口进入sync变量置位。经过一系列的协商过程,最终使得指定端口能够快速进入Forwarding状态,从而实现网络的快速收敛。
根端口快速切换机制:在STP模式下,当根端口故障时,接口需要等待两个Forward Delay时间(缺省值为15秒)才能进入Forwarding状态。而在RSTP模式下,根端口的故障切换可以直接使接口进入Forwarding状态,减少了业务流量丢包的可能性,从而加快了网络的收敛速度。
边缘端口:在RSTP中,如果指定端口位于网络的边缘,即直接与终端设备连接而不与其他交换设备连接,这种端口被称为边缘端口。边缘端口不参与RSTP运算,可以直接从Disable状态切换到Forwarding状态,而不经历时延。这种机制进一步优化了网络的收敛过程。
MSTP:
定义:多生成树协议,在RSTP的基础上允许在一台设备上配置多个STP实例。
vlan接口类型
access:一个端口只能属于一个vlan,并且只能传输该vlan的数据流,在接收报文时会判断该报文的vlan tag是否为access vlan,如果不同则丢弃该报文,如果相同则通过,如果不携带vlan则打上对应的vlan tag,当从access口出去时则会剥离报文的vlan tag。
trunk:一个端口可以传输多个VLAN的数据流,可以连接到多个VLAN。需要配置缺省vlan,如果不配置则默认为vlan 1,并且需要配置允许通过vlan的范围,在收到报文时会检查报文的vlan Id是否在允许通过的范围,如果不在则丢弃。如果不携带vlan则会打上缺省vlan,并判断该缺省是否在允许通过的范围内。在发生报文时会检查报文携带的vlan id是否和缺省vlan相同,如果不同则不剥离vlan,如果相同则剥离vlan。
hybrid:接收报文的操作和trunk相同,但是发送报文时的操作和trunk相反,如果报文携带的vlan和缺省vlan相同则不会剥离,反之则会剥离。
三层技术
ARP
定义:地址解析协议,用于需要获取IP对应的MAC地址。
工作过程:当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个ARP广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。
RARP:逆地址解析协议,用于需要获取MAC地址对应的IP地址。
RARP的工作原理:
- 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
- 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
- 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
- 如果不存在,RARP服务器对此不做任何的响应;
- 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
VRRP
定义:虚拟路由器冗余协议,是一种在不改变组网的情况下,将物理上多台路由器虚拟成一个虚拟路由器的技术,此虚拟路由器由一个Master设备和多个Backup设备组成,被当作一个共享局域网内主机的缺省网关。
角色:
master:负责转发报文的VRRP设备
backup:负责监控master设备的状态,当master出现故障时则会选举选出新的master设备。
选举通过比较优先级值大小,值大者优先,取值范围0~255,缺省为100(IP地址拥有者的优先级为255,直接成为master设备)。
虚拟IP地址:虚拟路由器的IP地址,一个虚拟路由器可以有一个或者多个虚拟IP地址。
IP地址拥有者:如果一个VRRP设备将真实的接口IP地址配置为虚拟路由器IP地址,则该设备被称为IP地址拥有者,如果该IP地址可用,则它将一直成为master。
虚拟MAC地址:虚拟路由器根据VRID生成虚拟MAC地址,虚拟路由器在回应ARP时,使用虚拟MAC地址而不是真实MAC地址。
OSPF
定义:开放式最短路径优先协议,基于IP协议,协议号89。属于IGP中的链路状态协议。分为OSPFv2和OSPFv3两个版本,其中v2对应的是IPv4,v3对应的是IPv6。
DR选举:为了减少邻接关系数量,减少LSA泛洪,OSPF会选举出DR,所有的邻居都会只和DR/BDR同步LSA条目以此减少OSPF数量。DR是基于接口的。DR没有抢占性。先选出BDR再在BDR中选举出DR。选举优先比较接口优先级值大小,值大者优先,其次比较router id(如果没有环回口,则会选择最大IP的物理接口作为router id)
状态机类型:
down:表示是没有收到邻居的任何信息
(attempt):处于该状态时,定期向手工配置的邻居发送hello报文。该状态只适用于NBMA类型的接口。
init:表示收到了邻居的Hello,但在Hello包的邻居列表中没有看到自己
2-way:该状态为邻居状态。表示双向通行已建立,没有建立邻接关系。如果广播或NBMA网络则要选DR/BDR
exstart:邻居状态变为Exstart后,互发第一个DD报文,报文中包含序列号、I、M、MS router id 大的作为主路由器。
exchange:主从选举后,从路由器将Exstart改变为Exchange状态,然后发一个新的DD报文,报文包含LSDB摘要,序列号为主路由器的,M置0,MS置0。主路由器收到后,将邻居状态从Exstart改变为Exchange状态,也发DD报文,包含LSDB描述信息,DD序列号加1
loading:从路由器要对主路由器发的DD报文做确认。从路由器状态变为Loading后,从向主发LSR报文,向主请求自身没有的链路状态信息。路由器收到LSR后,向从发LSU报文,报文中包含链路状态的详细信息。从路由器收到LSU后,将邻居状态从Loading变为Full,然后向主回复一个Ack报文,对收到的LSA做确认。
full:该状态为邻接状态
协议报文类型:
hello
DD
LSR
LSU
LSAck
链路状态信息LSA种类:
一类LSA:router-LSA,每台路由器都会产生,用于描述设备的链路状态和开销,只在产生区域内泛洪
二类LSA:network-LSA,由DR产生,描述本网段的链路状态,在所属区域内传播
三类LSA:network-summary-LSA,由ABR产生,描述该区域内某个网段的路由,并通过给发布或接收此LSA非totally stub区域或NSSA区域。
四类LSA:ASBR-summary-LSA,由ABR产生,描述到ASBR的路由,通告给除了ASBR所在区域的其他区域。
五类LSA:AS-external-LSA,由ASBR产生,描述到AS外部的路由,通告给所有的区域(除了stub区域和NSSA区域)。
七类LSA:NSSA LSA,由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
区域类型:
普通区域:包含骨干区域和非骨干区域
stub区域:拒绝外部路由(5类LSA)在区域内传播,通过ABR产生缺省3类去访问外部路由。
totally stub区域:拒绝域间(5类)域内(3类)LSA, 通过ABR访问区域外网络,ABR下放缺省3类LSA
NSAA区域:ASBR引入外部路由,拒绝5类LSA进入本区域, 当ASBR引入的外部路由走ASBR,其他区域外部走ABR,则 ABR产生7类缺省路由, 当所有的外部路由只通过ASBR到达。必须在ASBR上手工下放7类缺省 (NSSA不会自动产生缺省路由) 在ABR上无需有缺省路由0.0.0.0,默认产生Type7 LSA的缺省。 在ASBR上只有存在缺省路由0.0.0.0时,才会产生Type7 LSA的缺省路由。
totally NSAA:不允许区域间、区域外部路由, 访问其他区域时,通过ABR产生缺省3类LSA 访问外部路由时,通过ABR产生缺省7类LSA。
ISIS
定义:从中间系统到中间系统协议,和OSPF类似,也有区域的概念,但是OSPF的区域是基于端口划分的,而ISIS则是根据链路划分区域,因此在OSPF中每个链路只属于一个区域,而ISIS每个链路都可以属于不同区域。
分类:L1、L2、L1-L2路由器。其中L1相当于OSPF的骨干。
DIS选举:和OSPF的DR选举类似,IDS负责创建和更新伪节点,生成伪节点的链路状态协议数据单元LSP,此外路由器之间形成邻接关系、LSDB同步都依靠DIS保证。ISIS中优先级值为0的也可以参加选举,而OSPF则不行。并且ISIS的DIS具有抢占性。ISIS中同网段的同一级别的路由器都会形成邻接关系,而OSPF中路由器只和DR/BDR建立邻接关系。
邻居建立:
广播链路:
①A广播发送LAN Hello,报文中无邻居标识。
②B收到报文后,B干两件事:第一,标识和A邻居状态为Initial。 第二,B回复LAN Hello报文,报文中标识邻居为A。
③A收到B的LAN Hello报文后, A干两件事: 第一,将与B的邻居状态标为Up。 第二,向B回复LAN Hello报文,报文中标识邻居为B。
④B收到报文后,将与A的邻居状态标为Up。两个路由器建立了邻居关系。
注:Hello包中用system id标识对方
P2P链路(默认三次握手):
两次握手:路由器收到对端的 P2P Hello报文,就把邻居的状态标记为UP,完成邻居的建立。
三次握手:通过P2P Hello 完成三次握手建立邻居关系,类似广播邻居关系的建立
ISIS和OSPF的区别:
- ①基本比较
- 相同点
- 均为IGP协议,且应用广泛
- 均支持IP环境
- 均采用分层设计和分区域设计
- 不同点
- OSPF仅支持IP;IS-IS及支持IP,又支持CLNP
- OSPF支持的网络类型丰富;IS-IS仅支持两种网络类型
- OSPF支持虚连接;IS-IS虽然有类似功能,但是多数厂商不支持
- OSPF工作在IP之上;IS-IS工作在数据链之上
- OSPF基于接口划分区域;IS-IS基于链路划分区域
- 相同点
- ②邻接关系比较
- 相同点
- 均通过Hello建立和维护邻居关系
- 多点访问网络均选举DR/DIS
- 不同点
- OSPF建立邻居关系条件相对苛刻;IS-IS的要求则相对宽松
- OSPF建立邻居需要检查Hello报文中的掩码、认证、hello/dead时间间隔、区域等信息。而IS-IS形成邻居关系条件比较宽松。
- OSPF点对点链路形成邻居关系比较可靠;IS-IS可靠性相对较弱
- OSPF邻居关系不分层次;IS-IS邻居关系分两个层次
- IS-IS邻居关系分为层1和层2
- OSPF处理DR/BDR和IS-IS处理DIS方式不同
- OSPF建立邻居关系条件相对苛刻;IS-IS的要求则相对宽松
- 相同点
- ③数据库同步比较
- 相同点
- 均需形成统一的LSDB
- 不同点
- OSPF LSA种类繁多;IS-IS LSP种类较少
- OSPF与IS-IS数据库同步过程不同
- OSPF LSA生存时间从零递增;IS-IS LSP生存时间从最大值递减
- 相同点
- ④其他比较
- 相同点
- 均使用SPF算法计算路由
- 无环路,收敛快,支持大规模网络部署
- 不同点
- OSPF开销类型较为简单;IS-IS开销类型相对较复杂
- OSPF支持按需拨号网络;IS-IS无此特性
- 相同点
BGP
定义:边界网关协议,属于EGP,负责不同AS之间的路由交互。
报文类型:
open报文:用于BGP之间的连接
keepalive报文:用于保持BGP连接
update报文:用于BGP之间交换路由信息
notification报文:用于中断BGP连接
route-refresh报文:告知邻居需要进行路由刷新
状态机:
- Idle
- BGP邻居拒绝连接请求,配置BGP邻居时,BGP发起TCP连接,状态转为Connect。 注:Start事件指操作者配置BGP过程, 收到Notification报文或TCP拆链通知等Error事件后,就把状态变为Idle
- Connect
- 等待TCP完成连接,启动重传定时器。 TCP连接成功,发Open报文,状态转为Opensent TCP连接失败,状态转为Active状态 重连定时器超时,对等体没有响应,继续发TCP连接,状态停留在Connect。
- Active
- TCP连接失败,BGP尝试发起TCP连接。 TCP连接成功,发Open报文,关闭重连定时器,状态转为OpenSent. TCP连接失败,BGP状态停留在Active 重连定时器超时,对等体没有响应,状态转为Connect。
- OpenSent
- BGP等待对端的Open报文,对收到的Open报文中AS号、版本号、认证进行检查 Open报文正确,发Keeplive报文,状态转为Openconfirm Open报文错误,发Notification报文,状态转为Idle
- OpenConfirm
- 发送Keepalive报文,等待Keepalive或Notification报文。 收到Keepalive报文,变为Established状态 收到Notification报文,变为Idle状态。
- Estabished
- 如收到正确的Update或Keepalive报文,则保持BGP连接. 如收到错误的Update或Keepalive报文,则发送Notification报文给对端,状态转为Idle 如收到Route-refresh报文,不改变BGP状态 如收到Notification报文,则BGP状态转为Idle 如收到TCP链路拆除通知,则BGP断开连接,状态转为Idle
BGP属性:
-
公认必遵
- 释义:BGP设备必须识别该属性,必须在Update报文中携带
- AS-path属性
- 记录路由经过的AS号
- ①当发送的是本地始发的路由时
- 发给EBGP时,在Update报文中创建一个携带本AS号的AS-path列表
- 发给IBGP时,在Update报文中创建一个空的As-path列表
- ②当发送的是从其他BGP学来的路由时
- 发给EBGP时,会把本地AS编号添加在AS_Path列表的最前面
- 发给IBGP时,不改变这条路由的AS-path属性
- Next_Hop属性
- 记录路由的下一跳信息,因为BGP的下一跳属性和IGP的有所不同, 不一定就是邻居设备的IP地址
- Next-hop遵循如下规则: ①从IBGP学到的路由发给EBGP时,Nexthop改变,地址为建邻居的接口地址 ②从EBGP学到的路由发给EBGP时,Nexthop改变,地址为建邻居的接口地址 ③从EBGP学到的路由发给IBGP时,Nexthop不改变(目的是防止次优路径,右图次优路径场景) ④RR反射路由时,Nexthop不改变。 ⑤自己始发的BGP路由,Nexthop为建邻居接口的地址
- Origin属性
- 定义路径信息的来源,标记怎么变成BGP路由的,IGP>EGP>Incomplete, IGP指network命令注入的,EGP指通过EGP学到的,Incomplete指引入的 可以在AS内、AS间修改,默认不修改。
-
公认任意
- Local_Pref属性:值越大越优先 释义:BGP设备可以识别该属性,没有强制要求在Update报文中携带 功能:告知本AS内路由器选择一个更好出口访问其他AS 场景:BGP设备从不同的IBGP得到多条相同的路由但下一跳不同时,选择Local_Pref高的 有效范围:在IBGP之间有效,不传给其他AS,缺省值100
- Atomic-aggregate :原子聚合 用于告知其他路由器该路由是一条聚合路由,可能出现了路径的丢失。
-
可选过渡(可传递)
- 释义:能不能识别该属性,如不能识别也能接收该类属性,并通告给其他对等体
- 团体属性
- 公认团体属性 (限制路由传递范围)
- Internet: 可以传递给任何BGP邻居的路由
- no-advertise:不传递给任何BGP邻居的路由
- no-export:不能传出本AS(可以传给联盟中其他子AS)
- no-export-subconfed:不能传出AS,也不能传递联盟中其他子AS
- 自定义团体属性
- 用于标识一类路由,标识方式为AA:NN
- 公认团体属性 (限制路由传递范围)
-
可选非过渡(不能传递)
-
释义:可以选择性识别,能识别就可以传给其他邻居;不能识别,就不能传给其他邻居
-
MED属性:值越小越优先 功能:告知邻居怎样最优进入本AS 场景:BGP设备从不同的EBGP得到多条相同的路由但下一跳不同时,MED值小的为最佳路由 有效范围:邻居AS及其他IBGP邻居间可传递,不传递给其他第三方AS。缺省值为0 缺省不比较不同AS的MED值。
-
Originator_ID属性(RR场景,客户机收到路由做防环)
- RR产生,用始发该路由的路由器 rouer id标识, RR反射路由时,如果该路由没有Originator_ID属性,则创建该属性 当客户机收到RR反射的路由时,比较收到的Originator和本地的Router ID,相同就不接收该路由
-
Cluster_List属性(RR场景,反射器之间防环)
- RR反射路由时,如果该路由没有Cluster_List,RR就创建一个,用自身Router ID作为Cluster ID标识 RR接收路由时,比较收到的Cluster ID和本地的Router ID是否相同?相同则丢弃。 如果没有本地Cluster ID,则把自身Router ID放到Cluster List列表中。
-
防环机制:
IBGP防环:水平分割(路由器不能将自己从IBGP对等体学习到的路由传递给其他IBGP对等体)
EBGP防环:AS-path
反射器防环:originator-Id和cluster-id防环
联盟防环:联盟内AS-PATH防环
标签:交换,报文,基本知识,端口,BGP,邻居,路由,路由器 From: https://www.cnblogs.com/cxrx/p/18316458