HCIP学习笔记

HCIP基础理论

学习内容简介


  • HCIA复习
  • 网络类型

  • 路由:
  • OSPF 3-4天
  • 重发布. 路由策略
  • BGP 3天
  • MPLS VPN

  • 交换: 3天

  • 选修:IPV6 组播 ISIS

一. HCIA复习

(一)OSI七层模型

OSI七层模型-开放式系统互联参考模型

物数网传会表应

上三层为应用程序对数据流量进行加工以及处理的阶段

  • 应用层 - 主要作用:编码
  • 表示层 - 主要作用:二进制
  • 会话层 - 主要作用:提供应用程序的会话地址

下四层负责数据的传输

  • 传输层 - 主要作用:分段. 端口号 主要协议:TCP/UDP
  • 网络层 - 主要协议:internet协议-IP IP地址v4/v6- 主要作用:逻辑寻址(临时寻址,因为IP每次联网会变化)
  • 数据链路层- 主要协议:以太网/PPP/HDLC/FR/ATM… 主要作用控制物理层
  • 物理层 -

电脑将信息变成二进制成为数据(上三层)
数据来到传输层将被分段,贴上TCP或UDP报头
传输层将数据分段后,将数据交给网络层,网络层将数据加上源IP目标IP,封装成IP数据包
网络层将数据包交给数据链路层,数据链路层贴上源MAC目标MAC,将数据包封装成帧
数据链路层将数据帧交给物理层,物理层将数据转换为电流信号,通过网线传输到另一台电脑

  • 分段:数据包容量不易过大,否则影响传输效率及共享带宽;分段大小由MTU决定;
  • MTU:最大传输单元默认1500
  • 端口号:0-65535 65536个 其中1-1023为注明端口(系统端口号),1024-65535为动态端口(用户端口号 高端口),用于区分不同的应用程序,随机对应终端的各种进程

(二)TCP/IP协议栈道

  • UDP(用户数据报文协议):非面向连接的不可靠传输协议;传输层的基本协议,仅完成传输层的基本工作—分段. 端口号
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gn1vwzhl-1692655980690)(image/UDP报头.png)]
  • TCP(传输控制协议):面向连接的可靠传输协议;除了完成传输层的基本工作外,还需要保障传输的可靠性 传输层的基本协议,完成传输层的基本工作—分段. 端口号
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g3kFjEBS-1692655980691)(image/TCP报头.png)]

可靠性:

  • 面向连接:三次握手建立端到端虚链路 / 三次握手建立端到端虚链路,四次挥手释放端到端虚链路
  • 可靠传输:确认、重传、排序、流控(滑动窗口) / 确认、重传、超时重传、流量控制. 拥塞控制
  • IPV4报头:标准长度20字节 – 可扩展到60字节
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KbEKIKcd-1692655980692)(image/IPV4报头.png)]

version:版本号
header length:报头长度
type of service:服务类型
total length:总长度
identification:标识
flags:标志
fragment offset:片偏移
time to live(TTL):生存时间
protocol:协议
header checksum:报头校验和
source address:源地址
destination address:目的地址
options:选项
padding:填充

  • 在HCIA阶段,数据链路层仅仅关注了一种协议:以太网协议,
    以太网在2层主要负责
    以太网帧结构:

以太网帧结构:前导位(8字节)+目的MAC地址(6字节)+源MAC地址(6字节)+类型(2字节)+数据(46-1500字节)+校验(4字节)
前导位:标志着一个新数据的开始,用于同步

(三)名词注解

  1. MTU:最大传输单元 传输层对数据分段的大小

  2. 封装
    数据从高层向低层的加工过程,过程中数据封装每层的头部不断变大

  3. 解封装
    数据从低层到高层的识别过程,过程中需要读取,删除部分头部,不断变小

  4. PDU:协议数据单元 各层数据在封装完成后,对数据的单位称呼
    应用层 报头
    传输层 数据段
    网络层 数据包
    数据链路层 数据帧
    物理层 比特流

  5. ARP:地址解析协议,通过对端的一种地址获取对端的另一种地址
    AARP 正向ARP 已知同一网段IP获取MAC
    反向ARP 已知MAC获取IP
    FARP 无故ARP,使用AARP,来查询本地的IP地址 用于IP地址的冲突检测

  6. DNS:域名解析系统,通过域名地址,查询对应的ip地址;主要用于http. https等服务

  7. TCP/IP与OSI的区别:
    1)层数不同:OSI七层,TCP/IP四层或五层
    2)OSI模型的网络层支持所有的网络层协议,TCP/IP模型的网络层实际为internet层仅支持IP协议
    3)TCP/IP协议栈导支持夸层封装

    跨层封装— 应用层数据直接封装于3层报头或者2层报头;
    封装3层报头:同一广播域内的服务型协议–ARP/OSPF… 使用的设备均为3层设备
    封装2层报头:同一交换网络内的二层设备服务型协议—STP
    正常应用程序封装的数据流量不做跨层处理
    因此跨层封装的意义在于更快的完成服务型协议间的沟通计算

    2层报头中也有类似的功能来实现分段. 进程区分;
    主讲以太网:在非跨层封装到2层时,以太网使用第二代数据帧,该帧不具备分片功能,仅存在类型号,可用于区分进程;
    故一旦数据被跨层封装到二层时,将启用第一代以太网封装;
    第一代封装将数据链路层分为了两层 —>LLC逻辑链路控制子层+MAC介质访问控制子层
    LLC层负责分片和提供类型号来区分进程,MAC层用于提供MAC,以及控制物理层;
    LLC层 --802.2标准 MAC层-802.3标准

(四)数据包转发过程:

源终端设备需要进行数据封装,从高层封装到物理层;过程中基于应用层流量,选择传输层的协议和端口号;基于目标ip地址. 目标MAC来封装3层和2层头部;
获取目标ip地址方式:

  1. 本地已知
  2. 访问网页基于域名,通过 DNS服务器进行解析
  3. 终端客户端软件提前存储服务器ip地址,直接访问服务器,基于服务器中转来与实际目标通讯;
    获取目标mac地址方式:使用ARP请求通过广播的形势来获取同一广播城设备的mac地址;

交换机的工作原理:当数据帧进入交换机后,先查看数据中的源mac地址,然后将其与对应的入口记录;之后基于目标mac地址,查询本地的MAC地址表,若表中存在记录,按照记录对应接口单播转出;若没有记录,需要洪泛该流量—除流量进入接口外,其他所有接口复制转出;

终端访问另一设备时,在获取目标ip地址后,关注目标ip地址是否和本地处于同一网段;若在同一网段,使用ARP获取对端mac地址后,单播通讯;
或目标ip地址与源头不在同一网段,将封装目标MAC地址为本地的网关位置;之后数据进入路由器,又路由器将数据基于路由表路由转发到目标地点;
数据在跨网段传输过程中,源、目ip地址正常不变化,但源. 目MAC地址在每一个广播域中重新编写,用于该广播域内的物理寻址;

(五)杂

网络速率≈带宽除以8乘以85%

下载行为包时连续的,连续的包就会抢占带宽

电脑启动程序会赋予进程号,进程号上为再分配端口号

二. 网络类型

  • 点到点 在一个网段内,只能有两各物理节点

  • MA 多路访问 在一个网段内,物理节点数量不限制 (一个有多节点的有广播功能的网络)

    1. BMA 广播多路访问 一个网段内,所有节点都能收到广播信息
    2. NBMA 非广播多路访问 一个网段内,不是所有节点都能收到广播信息

不同网络类型实际为不同的数据链路层技术,由于二层同事座位了物理层的大脑,所以不同的数据链路层技术,也将调用不同的物理层设备

(一)点到点

物理上一个网段内仅存在两个节点,不用存在唯一的二层单播地址

1.HDLC

HDLC 高级链路控制协议 物理网线为串线 T1 1.544M/S T2 2.048m/s

[r1]interface s4/0/O
[r1-Serial4/0/o]link-protocol hdlc
Warning: The encapsulation protocol of the link will be changed.Continue? [Y/N]:Y

默认华为设备的串线接口,二层封装默认为PPP,需要手工修改为HDLC;

HDLC技术最早由cisco公司提出,故各种抓包类软件在识别到HDLC数据帧时,会进行cisco标识

注:所有厂家的HDLC技术均为私有技术—互相不通;
HDLC实际在二层没有其他的特殊功能,只是单纯实现数据链路层需要的基本工作–控制物理层

2.PPP

PPP(点对点协议),物理网线为串线串线,相当于是HDLC的升级版,是华为等一系列设备的默认串口二层技术(公有技术)

升级点:拨号

  1. 直连间配置不同网段ip地址可以正常互通

PPP协议会在链路物理连接时,进行互相的协商,共享各自接口的真实ip地址,生成到达对端接口的32位主机路由;

  1. 可以进行身份的核实与认证 – 认证
  2. 可以建立虚链路,分配ip地址

PPP的认证方式:Pap明文认证/Chap密文认证

认证方式1:Pap 明文发送账号密码
主认证方:

```bash
[r1]aaa
[r1-aaa]local-user a password cipher 123456
[r1-aaa]local-user a service-type ppp 
[r1]int s4/0/0
[r1-Serial4/0/0]ppp authentication-mode pap 
```

被认证方:

```bash
[r2]int s4/0/0
[r2-Serial4/0/0]ppp pap local-user a password cipher 123456
```
认证方式2:Chap 密文发送账号密码
主认证方:

```bash
[r1]aaa
[r1-aaa]local-user a password cipher 123456
[r1-aaa]local-user a service-type ppp 
[r1]int s4/0/0
[r1-Serial4/0/0]ppp authentication-mode chap
[r1-Serial4/0/0]ppp chap user huawei 
```

被认证方:

```bash
[r2]int s4/0/0 
[r2-Serial4/0/0]ppp chap user huawei 
[r2-Serial4/0/0]ppp chap password cipher 123456
```
3.GRE

GRE(通用路由封装),一个标准简单的VPN技术,属于虚拟的点到点网络类型

VPN:虚拟专用网络
通过虚拟手段,将两个独立网络,穿越中间一个公共网络进行互联,模拟出点到点专线的效果;

[r1]interface Tunnel 0/0/0  #创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24  #配置ip
[r1-Tunnel0/0/0]tunnel-protocol gre   #定义该接口转发流量时需要GRE封装
#GRE实则在源IPV4报头前方再封装一个IPV4报头,必须定义封装报头的中源目ip地址
[r1-Tunnel0/0/0]source 12.1.1.1
[r1-Tunnel0/0/0]destination 23.1.1.2
4.MGRE

MGRE(多点GRE),GRE的一种扩展配置;归类于虚拟的NBMA网络;
所有节点存在同一个MA网段;且为中心到站点结构;该结构中,默认仅中心站点需要固定公有ip地址;分支站点地址可变化;— 大大降低的管理难度,资源占有量,成本;

NHRP:下一跳路径发现协议;存在服务端和客户端;服务端需要固定公有ip地址,客户端ip地址可变;客户端在本地公有ip变化后,主动向服务端进行注册;服务端生成MAP,
MAP中记录客户端的公有ip与tunnel接口的ip地址对应关系;若其他客户端需要访问另一个客户端,可以到服务端下载该MAP;

  • 中心站点配置:

    [r1]interface Tunnel 0/0/0  #创建隧道接口
    [r1-Tunnel0/0/0]ip address 192.168.4.1 24  #隧道接口ip地址
    [r1-Tunnel0/0/0]tunnel-protocol gre p2mp  #定义该隧道为多点gre隧道
    [r1-Tunnel0/0/0]source 14.1.1.1  #该隧道加封装的报头源ip地址
    #通过NHRP协议来获取加封装的目标ip地址
    [r1-Tunnel0/0/0]nhrp entry multicast dynamic  #本地成为NHRP服务端
    [r1-Tunnel0/0/0]nhrp network-id 100  #NHRP的工作编号,该网段所有设备必须在同一id
    
  • 分支站点:

    [r2]interface Tunnel 0/0/0
    [r2-Tunnel0/0/0]ip address 192.168.4.2 24
    [r2-Tunnel0/0/0]tunnel-protocol gre p2mp 
    #加封装的源ip地址,为本地的隧道实际通过接口的ip地址,填写接口编号,而不是接口ip,原因在于该接口ip地址可变    
    [r2-Tunnel0/0/0]source GigabitEthernet 0/0/0
    #加封装的目标ip地址,需要到NHRP中心站点获取
    [r2-Tunnel0/0/0]nhrp entry 192.168.4.1 14.1.1.1 register 
    [r2-Tunnel0/0/0]nhrp network-id 100
    

伪广播:当目标IP地址为组播或广播地址时,将流量基于每个用户进行一次单播;外层报头(新增报头)为单播报头,内层报头为组播或广播报头;该功能不开启,正常基于组播和广播工作的动态路由协议将无法正常使用;

[r1]dis nhrp peer all  查看分支站点注册结果

若所有tunnel对应的公有ip均为固定ip地址,可以让每台路由器均成为中心站点,两两间均进行手工注册;
可以形成全连网状结构拓扑;—rip这种存在水平分割机制的协议能够正常收敛;
当拓扑结构为中心到站点(轴辐状. 星型)—不是所有网点均为固定的公有ip,没法所有tunnel设备相互注册;只能通过关闭水平分割来实现路由的全网正常收敛;

[r1-Tunnel0/0/0]undo rip split-horizon   

(二)BMA 广播多路访问

在一个网段内可以防止多个物理节点,同时该范围内可以实施广播洪泛机制

1. 以太网

Ethernet 以太网 翻译过来“共享型” 属于典型的BMA类型

以太网技术的核心为“频分”(解决带宽) 在统一物理介质上,使用多个互相不干涉的频率来共同传输数据,实现带宽的不断提升

使用的物理传输介质:
RJ-45接口的双绞线 可全双工通讯 民用带宽最大2.5G/s 商用最大100G/S
光纤 可适用于远距离传输在大带宽要求时成本低于电口
同轴电缆;

以太网的频分为物理技术,主要在于提升带宽;迎辑上以太网选择了加入BMA类型;
MA–多路访问—一个网段内以太网允许存在多个节点,故需要二层单播地址–MAC地址
存在广播和洪泛来实现BMA功能;

三. 路由

(一)动态路由协议

可以实时收敛

动态路由协议: 在所有路由器上允许相同的一种动态协议算法,然后路由器间协商沟通计算到达所有未知网段的最佳路径,然后将这些路由加载于本地的路由表中;实现完全可达,当拓扑结构发生变化后,路由器间将继续沟通计算生成新的路由表来实现实施的收敛

动态路由协议:RIP OSPF ISIS BGP EBGP EIGRP IGPRP…
基于AS进行分类:
AS-自治系统 0-65535 其中1-64511公有 64512-65535私有
IGP:内部网关路由协议 RIP OSPF EIGRP ISIS
EGP:外部网关路由协议 BGP

IGP协议 选路佳(无环) 占用资源少 收敛快
分类:

  • 1)基于更新时是否携带子网掩码
    有类别 — 更新时不携带子网掩码,按主类别掩码进行匹配
    无类别 — 更新时携带具体的子网掩码

  • 2)根据工作特点进行分类
    DV–距离矢量RIP EIGRP
    LS–链路状态OSPF ISIS

  • 距离矢量:(我能去哪儿都告诉你) 共享路由
    运行距离矢量路由协议的路由器,会将所有它知道的路由信息与邻居共享,但是只与直连邻居共享!
    优势:交互信息量小,占用带宽小,计算简单,适用于小型网络

  • 链路状态:(以我为中心画个图把图给你) 共享拓扑
    运行链路状态路由协议的路由器,只将它所直连的链路状态与邻居共享,这个邻居是指一个域内(domain),或一个区域内(area)的所有路由器!
    优势:防环能力强,收敛速度快,适用于大型网络

(二)OSPF 开放式最短路径优先协议

无类别链路状态型路由协议;邻居间基于拓扑信息进行交互,更新量很大;故为了能在中大型复杂网络中工作,需要结构化的部署 — 良好的ip地址规划 区域划分
更新方式 — 触发更新 – 224.0.0.5/6 周期更新 --30min

1. OSPF的数据包类型

跨层封装于3层报头 协议号89

Hello — 周期收发,用于邻居的发现、关系的建立. 周期的保活-- 10s或30s
DBD-数据库描述包 用于携带数据库目录
LSR 链路状态请求 基于本地未知的LSA信息进行查询
LSU 链路状态更新 用于传递具体的LSA信息
LSack 链路状态确认 可靠性,确认包

LSA --链路状态通告 — 具体的每一条的拓扑或路由信息;

2. OSPF的状态机

邻居间的邻居关系的不同阶段

状态名出现时机
Down一旦接收到hello包进入下一个状态
Init 初始化收到的hello包中若存在本地的RID,进入下一状态
2way双向通讯 邻居关系建立的标志条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举(默认一个dead time),非DR/BDR间不能进入下一状态;
Exstart 预启动使用不携带数据库目录信息的DBD包进行主从关系的选举,RID数值大为主,优先进入下一个状态 — 排序(避免同时更新,导致网络拥塞)
Exchange 准交换使用携带目录信息的DBD包,进行交互
Loading 加载查看完其他邻接发送过来的DBD后,基于当中本地未知的LSA信息,使用LSR查询,对端使用LSU来共享这些LSA信息,本地收到后需要ACK确认;— 邻接间的数据库一致
Full 转发邻接关系建立的标志
3. OSPF的工作过程
  • 启动配置完成后,邻居间组播收发hello包,获取对端的RID,建立邻居关系,生成邻居表;
  • 邻居关系建立后,关注条件;条件不匹配的邻居间,将维持邻居关系,仅hello包周期保活即可;
  • 条件匹配:可以建立邻接(毗邻)关系
  • 将使用DBD/LSR/LSU/LSack来进行交互. 共享,同步数据库,获取未知的LSA信息;最终生成与邻接一致的数据库表;
  • 当数据库表同步完成后,本地使用SPF算法,将数据库表转换为有向图,再将有向图计算成为最短路径树,然后以本地为起点,计算到达所有未知网段的最短路径,然后将这些路由加载于本地的路由表中;收敛完成。

拓扑结构突变:
1)新增网段 直连新增网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
2)断开网段 直连断开网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
3)无法沟通 — 没有周期的hello包;dead time为hello time的4倍–倒计时,正常被每一个新的hello包刷新,归0时断开邻居关系,删除该邻接共享的信息

4. OSPF协议的基础配置
[r1]ospf 1 router-id 1.1.1.1 #启动时可以定义进程号,仅具有本地意义,默认为1;

可以定义RID — 手工 – 环回上最大数值ip地址-- 物理接口上最大数值ip地址
宣告:1)区域划分 2)激活接口OSPF协议 3. 共享接口信息.

[r1-ospf-1]area  0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
  • OSPF区域划分规则:
    1)必须为星型结构 区域0为骨干,大于0为非骨干,非骨干必须连接骨干区域
    2)区域间必须使用ABR来互联 – ABR区域边界路由器

宣告配置全部完成后,邻居间周期组播收发hello包,建立邻居关系;生成邻居表;

OSPF协议的hello包为周期收发;邻居间hello包中必须完全一致的参数:否则无法建立邻居关系

Hello. dead time;区域编号;认证字段;末梢区域标记;在华为设备中邻居间hello包还将携带建邻的接口ip地址子网掩码,也必须和邻居一致;

<r2>display  ospf peer  #查看邻居表
<r2>display  ospf peer brief  #查看邻居简表


         OSPF Process 1 with Router ID 2.2.2.2
                  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             1.1.1.1          Full        
 0.0.0.1          GigabitEthernet0/0/1             3.3.3.3          Full        
 ----------------------------------------------------------------------------

邻居关系建立后,邻居间进行条件的匹配

匹配失败,维持邻居关系,仅hello包周期保活;
匹配成功,可以建立邻接关系;
邻接关系建立后,将使用DBD/LSR/LSU/LSack来进行交互. 共享,同步数据库,获取未知的LSA信息;最终生成与邻接一致的数据库表;

<r1>display  ospf lsdb  #查看数据库表  LSDB--链路状态数据库

DBD包:DBD包中携带接口的MTU值,要求两端接口MTU一致,否则将卡在exstart状态机;华为设备默认不携带MTU值

[r1]interface g0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable  两端直连接口均需开启

DBD包中的描述位:

  • I 为1表示本地发出的第一个DBD
  • M 为0表示本地发出的最后一个DBD
  • MS 为1表示本地为主,为0表示本地为从
  • DBD使用序列号来进行隐性确认,从基于主的序列号进行;

当邻接关系间数据库同步完成后,本地基于数据库中的所有LSA生成有向图 --> 最短路径树–>将本地作为起点,计算到达所有未知网段的最短路径,然后将其加载到路由表中:

在华为设备中,默认的优先级为10;使用cost作为度量;
Cost=开销值=参考带宽/接口带宽
默认参考带宽100M;cost值向上取整数;故当接口带宽大于参考带宽时,cost值为1;可能导致选路不佳;可以手工修改默认的参考带宽:

[r1]ospf 1 
[r1-ospf-1]bandwidth-reference ?
  INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,全网所有设备需一致;
ospf协议默认将选择cost值之和最小的路径,为最短路径加表;

5. OSFP邻居关系建立成为邻接关系的条件

从邻居关系建立成为邻接关系,需要关注网络类型:点到点、MA
在点到点网络中,邻居直接全部建立为邻接关系;
在MA网络中若两两间均建立邻接关系,将可能出现大量的重复更新;DV距离矢量路由协议可以使用接口水平分割来解决,由于OSPF协议邻接需要数据库比对,故不能设计接口水平分割;只能进行DR/BDR选举来解决;所有非DR/BDR之间为邻居关系,不进行数据库同步;
选举规则:

  1. 先比较参选接口优先级,默认1;大优 为0标识不参选
  2. 若优先级相同,比较参选设备的RID数值,大优

[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 0

6. OSPF的接口网络类型 — ospf协议在不同网络类型的接口上,不同的工作方式

[r1]display ospf interface g0/0/1 查看OSPF协议在接口具体的工作方式名称
Interface: 12.1.1.1 (GigabitEthernet0/0/1)
Cost: 1 State: BDR Type: Broadcast ;

接口类型 OSPF工作方式
LoopBack 华为显示p2p,实为环回专用工作方式 无hello包 以32位主机路由传递
点到点类型(HDLC/PPP/GRE) p2p hello time10s 不选DR,邻居直接建立为邻接
BMA(以太网) Broadcast hello time10s 选DR/BDR 非DR/BDR间仅建立邻居关系
NBMA(MGRE) 默认和普通GRE一样接口工作方式为p2p,该工作方式在华为设备上仅和最先收到的hello包建立邻居关系;
故在MGRE环境需要手工修改接口工作方式:
[r1-Tunnel0/0/0]ospf network-type ?
broadcast Specify OSPF broadcast network
nbma Specify OSPF NBMA network
p2mp Specify OSPF point-to-multipoint network
p2p Specify OSPF point-to-point network
注:p2p 和broadcast 两种工作方式的hello time均为10s,故可以建立邻居关系,但在DR选举上不同,故无法正常交流LSA;
切记:邻居间ospf接口工作方式必须一致,才能正常建邻和正常收敛;

若将MGRE下所有接口的工作方式修改为broadcast,需要关注拓扑结构:
1)全连网状结构,可以正常工作,正常选举DR/BDR
2)非全连 —管理员手工合理安排DR位置
3)星型结构-- 仅中心站点为DR,无BDR

(三)重发布

重发布、重分布、重分发:
当一个网络内,存在多种路由协议时,或同一协议多个进程时;每种协议或进程,均独立运行,不共享数据;只能通过重发布技术实现全网可达;
条件:

  1. 只能在两种协议,或两个进程进行发布;不是说一个拓扑内只能存在两种协议或两个进程
  2. 必须存在ASBR — 自治系统边界路由器(协议边界路由器);同时工作工作两种协议或两个进程中
  3. 必须考虑–种子度量(起始度量);从源协议协议进入新协议时,不携带源协议的度量值;而是人为定义个新的初始度量;

规则:

  1. 将A协议发布到B协议时,是在ASBR上的B协议中进行配置;
  2. 将A协议发布到B协议时,是将ASBR上所有通过A协议学习,以及ASBR上宣告在A协议的直连路由,全部共享到B协议中; (部分协议不共享缺省路由)

名词:
单点 双点 多点 单向 双向
点-- ASBR数量

配置命令:
三部分
A–>B 将一种动态路由协议产生的路由共享到另一种动态路由协议中
静态–>B 将ASBR上的静态路由,重发布到一种动态路由协议中
直连–>B 将ASBR上未工作在B协议中的直连路由,重发布到B这种动态路由协议中

  1. RIP
    A–>B
    [r4]rip
    [r4-rip-1]import-route ospf 1
    默认的起始度量为0;可修改
    [r4-rip-1]import-route ospf 1 cost 3

静态–>B
[r4]rip 1
[r4-rip-1]import-route static
缺省静态在华为设备不重发布,默认起始度量为0;
[r4-rip-1]import-route static cost 5

直连–>B
[r4]rip
[r4-rip-1]import-route direct 注:若重发布动态和重发布直连携带了同一条路由时,优选重发布直连产生的路由;
2. OSPF
A–>B
[r4]ospf 1
[r4-ospf-1]import-route rip 1
默认进入的条目,种子度量为1;类型2;
类型2–仅显示种子度量;选路时依然基于总实际度量进行判断
[r4-ospf-1]import-route rip 1 cost 5 type 1 修改类型和种子度量
类型1–显示实际总度量=种子度量+沿途累计度量
类型1优于类型2

静态–>B
[r4]ospf 1
[r4-ospf-1]import-route static
默认进入的条目,种子度量为1;类型2; 缺省路由不进入

直连–>B
[r4-ospf-1]import-route direct
默认进入的条目,种子度量为1;类型2; 缺省路由不进入
注:若重发布动态和重发布直连携带了同一条路由时,优选重发布直连产生的路由;

二、多点双向重发布 – 单向双向重发布,在两种协议或两个进程间仅存在一台ASBR,可靠性、选路性较差;故可以使用多台ASBR来进行保障;

不同路由协议使用不同的路由优先级,当大优先级协议的路由条目进入小优先级协议时,被导致其他的ASBR路由表被刷新,最终将这些路由传回源协议—路由回馈–选路不佳

cisco在它私有的EIGRP协议中,使用了双优先级;正常EIGRP协议内部路由优先级为90,重发布进入EIGRP的路由条目为150,大于其他协议;避免了第一台ASBR重发布协议后,刷新另一台ASBR-- 避免路由回馈

在华为等厂商设备中无EIGRP;故借鉴了eigrp的规则,在OSPF协议中,基于外部重发布进入的5/7类LSA,优先级也修改为150;

  1. 由于重发布协议,将在重发布过程中,不携带源有协议的度量值,而是在重发布起始位置添加种子,故当多点(多台ASBR)重发布相同路由时,将导致选路不佳–需要路由策略来解决

  2. 在距离矢量协议中存在接口水平分割,可能由于网络拓扑的变化而再次出现路由回馈问题—需要路由策略来解决

总结:由于重发布技术,仅实施了路由条目共享工作,且过程中刷新原有度量;故在多点双向重发布中,可能因为拓扑变化、度量值等导致选路不佳 ---- 人工干预

三、路由策略
控制层面:路由协议进行路由信息共享传递的流量; – OSPF /RIP
数据层面:设备间正常的数据访问产生的流量;–PING/TELNET/应用

路由策略-- 在控制层面流量进或出的接口上,抓取流量,进行修改动作后,直接影响路由器路由表的生成,最终实现干涉选路的效果;

  1. 抓流量 – ACL 前缀列表

  2. 改流量—路由策略 – 偏移列表 分发列表 router-map

  3. 抓取流量的技术:

  4. ACL —访问控制列表设计初衷用于限制数据层面流量的进出;故在用于抓取控制层面流量时,可能无法精确匹配;

  5. 前缀列表 – 专门设计用于抓取控制层面流量
    [r1]ip ip-prefix aa permit 1.1.1.0 25
    [r1]ip ip-prefix aa permit 1.1.2.0 24
    一个名字为一张表;一张表中可以配置多条内容;匹配规则为至上而下逐一匹配,上条匹配按上条执行,不再查看下一条;末尾隐含拒绝所有;
    默认以10为步调,自动添加序列,便于插入和删除
    [r1]ip ip-prefix aa index 15 permit 1.1.3.0 24
    [r1]undo ip ip-prefix aa index 10

[r1]ip ip-prefix qq permit 2.2.2.0 24 less-equal 30
匹配网络号2.2.2.0 子网掩码长度24-30均可
[r1]ip ip-prefix qq permit 3.3.3.0 24 greater-equal 30
匹配网络号3.3.3.0 子网掩码长度为30-32
[r1]ip ip-prefix qq permit 4.4.4.0 24 greater-equal 26 less-equal 30
匹配网络号4.4.4.0 掩码长度26-30
数值规则:length<=ge<=le

[r1]ip ip-prefix qq permit 0.0.0.0 0 less-equal 32 允许所有

(四)路由策略

  1. 路由策略
    修改或删除流量 – 路由策略(偏移列表、分发列表、route-map)
    1) cisco的偏移列表,在cisco体系中算一种路由策略,在华为体系中不是策略;而是RIP这样的距离矢量协议专用,修改度量的操作;在cisco中偏移列表也只能在RIP和eigrp这样的距离矢量协议中使用,华为也一样;在cisco下只能用ACL为其服务;华为下,acl和前缀列表都可以;
    [r1]ip ip-prefix aa permit 2.2.2.0 24 使用前缀列表抓取;ACL也可

[r1]interface GigabitEthernet 0/0/1 控制层面流量传输的接口
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix aa 2 流量入,匹配前缀列表aa,度量加2
metricout 2000 2 流量出,匹配acl 2000,度量加2
该策略为逐跳行为,意思可以叠加操作;整段路径中流量经过的多个接口均配置了度量增加,最终为总增加度量;

2)cisco下的分发列表; 华为为过滤策略;
先使用ACL或前缀列表,匹配流量;然后在控制层面流量的入或出接口上限制路由条目的传递;
[r2]ip ip-prefix qq deny 2.2.2.0 24
[r2]ip ip-prefix qq permit 0.0.0.0 0 less-equal 32

[r2]rip 1
[r2-rip-1]filter-policy ip-prefix qq ?
export Specify an export policy 出方向
import Specify an import policy 入方向
[r2-rip-1]filter-policy ip-prefix qq export GigabitEthernet 0/0/0
切记:若使用ACL定义流量,正常华为acl末尾允许所有,但在过滤策略中一定手工配置允许所有命令;
注:OSPF协议中正常无法在出方向调用,因为ospf使用的拓扑更新,在同一个区域内不可以限制拓扑的传递;正常只能在入向调用,不影响数据库的同步,仅仅是不将LSA计算所得的路由加载到路由表;
若想出口调用,可以在ABR/ASBR上针对3/4/5/7类lsa进行;

3)cisco的route-map 华为路由策略
「1」抓流量—acl和前缀列表均可
[r2]acl 2000
[r2-acl-basic-2000]rule 1 permit source 1.1.1.0 0.0.0.0
[r2-acl-basic-2000]q
[r2]acl 2001
[r2-acl-basic-2001]rule permit source 1.1.2.0 0.0.0.0
[r2-acl-basic-2001]q

[r2]ip ip-prefix a permit 1.1.3.0 24
[r2]ip ip-prefix b permit 1.1.4.0 24

「2」路由策略
[r2]route-policy huawei deny node 10 创建名为huawei的路由策略,大动作为拒绝,序号为10
[r2-route-policy]if-match acl 2000 匹配一张ACL
[r2-route-policy]q
[r2]route-policy huawei permit node 20 列表huawei序号20,大动作为允许
[r2-route-policy]if-match acl 2001 匹配一张ACL
[r2-route-policy]apply cost-type type-1 定义小动作为修改度量类型,为类型1;
[r2-route-policy]q
[r2]route-policy huawei permit node 30
[r2-route-policy]if-match ip-prefix a 匹配前缀列表
[r2-route-policy]apply cost 7
[r2-route-policy]q
[r2]route-policy huawei permit node 40
[r2-route-policy]if-match ip-prefix b
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply cost 8
[r2-route-policy]q
[r2]route-policy huawei permit node 50 空表,允许所有;
[r2-route-policy]q

「3」重发布时调用
[r2]ospf 1
[r2-ospf-1]import-route rip 1 route-policy huawei

配置指南:

  1. 即便要拒绝一个流量,在抓取时也必须使用允许,之后在路由策略来拒绝;
  2. 至上而下逐一匹配,上条匹配按上条执行,不再查看下条,末尾隐含拒绝所有
  3. 在一条规则中,若没有进行流量匹配那就是匹配所有;若没有应用那么仅对匹配流量进行当大动作;
    因此大动作为允许的空表代表允许所有;
  4. 或 与 关系
    或关系为每个站点(每个序号)间为或关系;
    序号10没匹配到流量,再序号20;

[r3]ip ip-prefix a permit 1.1.1.0 24
[r3]acl 2000
[r3-acl-basic-2000]rule permit sou 12.1.1.2 0.0.0.0
route-policy huawei permit node 10
if-match ip-prefix a
if-match ip next-hop acl 2000 与关系—被匹配流量必须同时满足这两个条件;
apply cost 10
apply cost-type type-1 与关系,同时执行两种操作
以上为路由条目目标网络号1.1.1.0/24 同时该条目的下一跳为12.1.1.2;

总结或与关系:
条目基于站点号(序号)至上而下逐一匹配,上条匹配按上条执行,不查看下条–或关系
在每一个序号中,同时匹配所有流量,同时执行所有小动作—与关系

(五)BGP:边界网关路由协议

属于无类别的路径矢量协议;

EGP协议中最流行的技术,工作在AS之间;

EGP—外部网关路由协议-BGP
IGP内部网关路由协议-RIP OSPF EIGRP
AS—自治系统 全球网络—范围、管理域
AS号 – 标准 16位二进制构成 0-65535 其中1-64511公有 64512-65535私有
扩展 32位二进制构成

BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;

AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路;

IGP协议追求:

1. 无环(选路佳)
2. 收敛快
3. 占用资源少

EGP协议的追求:

1. 可控性强:管理员可以方便进行策略干涉选路
2. 可靠性:  BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;
            且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居(基于TCP工作 -三次握手四次断开 4种可靠传输机制) --  
                TCP只能基于单播工作
                单播——需要IP可达->依赖IGP->BGP承载于IGP之上   
3. AS-BY-AS  以一个AS为一跳;
(1)BGP特点:
  1. 无类别路径矢量:距离矢量的升级版->(AS–BY–AS)
  2. 使用单播更新来发送所有信息;基于TCP 179端口工作
  3. 增量更新–仅触发无周期
  4. 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
  5. 可以在进项和出项对流量实施强大的策略–可控性
  6. 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
  7. BGP支持认证和聚合(汇总)

(2)BGP数据包

基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;

首先通过TCP的三次握手来寻找到邻居;

报文作用
Open仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive保活
周期1min查询邻居关系是否存在;
实际保活TCP会话;hold time 默认3min
Update携带路由条目
目标网络号+各种属性
Notification出现错误数据时收发;

(3)BGP的工作过程
  1. 配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;
    • 会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
    • BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;
    • 邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
  2. 邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;
    • 使用updata数据包进行邻居间路由共享;之后生成BGP表;(装载本地发出及接收到的所有路由条目)
    • 默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)
  3. 收敛完成,仅keeplive周期保活即可;
  4. 若出现错误信息,邻居间将使用****Notification**报文进行报错操作
  5. 结构突变
    1)新增:本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
    2)断开:本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
    只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目
    3)无法沟通:hold time为3min,连续3次未收到邻居的keeplive
    断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由;

(4)邻居关系

邻居->直连 因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;

  • EBGP邻居关系 ---- 外部BGP邻居关系,建邻的两台设备处于不同的AS中
  • IBGP邻居关系 ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中

(5)BGP的路由黑洞问题

非直连建邻到达控制层面路由条目可传递,递归计算路由可达;
而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回

  1. 物理、逻辑拓扑全连 – 物理链路直连、或者vpn
  2. 邻居关系全连 – 网络中所有设备运行BGP
  3. BGP重发布到IGP(LAB)
  4. MPLS 多协议标签交换— 推荐做法

(6)BGP的防环机制 –水平分割
  1. EBGP水平分割—解决EBGP环路;
  • 依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;
  • BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;
  • EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;
  1. IBGP水平分割—解决IBGP环路由中的一种机制
  • 本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;
  • AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;

由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)

在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;

后期可以依赖打破水平分割的机制来解决—联邦、路由反射器


(7)BGP的基本配置:
1)BGP邻居关系建立

与路由条目宣告是分开的配置的

  1. 直连的EBGP邻居关系建立
[r1]bgp 1   #启动BGP协议,启动时需要键入AS号;没有多进程概念
[r1-bgp]router-id 1.1.1.1   #建议配置RID;若不配置将自动生成—规则同OSPF相同
[r1-bgp]peer  12.1.1.2 as-number 2  #对端IP地址,及对端所在的AS编号
  1. IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;
  • 建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递;
[r2]bgp 2 
[r2-bgp]peer  3.3.3.3 as-number 2 #对端环回接口ip地址,及对端所在AS号
#切记:一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口
[r2-bgp]peer  3.3.3.3 connect-interface LoopBack 0
  1. EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立

1)IP可达,建议静态路由
2)正常环回做为源、目ip地址建立邻居关系
3)默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立

[r4-bgp]peer  5.5.5.5 ebgp-max-hop 2

当建邻配置完成后,邻居间通过三次握手,建立TCP的会话

[r2]display tcp status
#当TCP会话建立后,邻居间BGP协议将正常收发一次open报文,建立BGP邻居关系;生成邻居表:
[r2]display  bgp peer 
 BGP local router ID : 2.2.2.2
 Local AS number : 2
 Total number of peers : 1                Peers in established state : 1
  Peer            V  AS  MsgRcvd  MsgSent  OutQ  Up/Down  State PrefRcv

  12.1.1.1         4    1        8        8     0    00:06:36  Established  0

表格最后的数值,标识本地从该邻居处学习到的路由条目的数量;

2)BGP的宣告

运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连;
而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输;

注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致

[r1-bgp]network 1.1.1.0 24
#一旦进行宣告配置,条目将加载于本地的BGP表中;--装载本地发出及接收到的所有路由信息
[r1]display  bgp routing-table 查看BGP表
 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   1.1.1.0/24            0.0.0.0          0                       0        i
状态属性
*可用
>优秀
*>同时存在—可以加表(路由表)
可以传递(传递给本地的其他BGP邻居)
i状态处若出现i,代表该条目是本地通过IBGP邻居学习到的

优秀的条件:1、同步问题(默认不关注) 2、下一跳可达

基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达->导致条目不优;

[r2-bgp]peer  3.3.3.3 next-hop-local  #将BGP路由传递给本地的邻居3.3.3.3时修改下一跳地址为本地与3.3.3.3建立邻居关系的源ip地址

当路由条目传递给本地的EBGP邻居时,属性将自动发生变化,包括下一跳地址;

  • 备注:在BGP协议中,若通过本地传递过来的路由条目,与本地路由表中已经存在且用于建立BGP邻居关系的路由相同时,该条目将不能优秀;

(8)BGP扩展配置
1)BGP的宣告问题
  1. 在BGP协议中每台运行BGP的设备上,宣告本地直连路由
  2. 在BGP协议中运行BGP协议的设备还可以宣告通过IGP学习到的、未运行BGP协议设备产生的路由
  • 在BGP协议中宣告本地路由表中路由条目时,将携带本地到达这些目标的IGP度量值;传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居;

若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值;同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量取消,按0进行传输(导致选路参考值不优)

故,建议在一个AS中若需要BGP设备宣告某条路由,那么该AS内所有运行BGP协议的设备均宣告;便于其他AS的BGP设备判断自己的EBGP邻居,那台离目标更近;

2)BGP的自动汇总问题

当代的路由器设备,默认就关闭了BGP的自动汇总功能;

自动汇总规则与正常BGP协议邻居共享的路由,或在BGP协议通过network宣告命令产生的路由条目无关;

  • 仅针对从IGP重发布到BGP的路由条目

BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP

BGP中中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP协议

但两种操作产生的路由条目其起源属性不同,宣告优于重发布

  • 在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入;
  • 不携带本地到达目标的度量值,度量为0
  • 若关闭自动汇总,进入路由将正常携带掩码,且携带度量;
  • 此时和宣告路由仅起源属性不同;故建议不要开启自动汇总;

既然在一个AS中建议所有运行BGP协议的设备均宣告相同路由,那么若进行重发布配置,也建议所有运行BGP协议的设备均进行重发布

3)BGP的认证(邻居间进行身份核实的方法):
[r1-bgp]peer  12.1.1.2 password cipher 123456   #邻居间需要秘钥一致,传递出去的秘钥必然被加密
4)BGP的聚合(汇总)
  1. 不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量;
  • 宣告特征:本地路由表中任何方式产生的路由均可被BGP宣告;
  • 不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中;
  • 在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不一定能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制;
  • 以上的汇总配置完成后,若还需要同时传输部分明细路由,再逐一宣告需要传递的明细路由即可;
  1. 标准的BGP聚合配置

1) 先逐条宣告所有的明细路由
2) 再在更新源路由上进行聚合配置,自动产生空接口防环路由

[r5-bgp]aggregate 100.100.0.0 22   #此时聚合与所有明细条目均传递
[r5-bgp]aggregate 100.100.0.0 22 detail-suppressed  #仅传递聚合条目,所有明细路由被抑制

若需要在传递聚合条目的同时,再传递部分的明细路由;需要进行路径传递干涉策略;

  1. 路由传递干涉策略

1、抑制列表 – 先让设备将所有路由传递出去,再调用抑制策略

[r5]ip ip-prefix a permit 100.100.1.0 24
[r5]route-policy a permit node 10
[r5-route-policy]if-match ip-prefix a
[r5-route-policy]q
[r5]bgp 3 
[r5-bgp]aggregate 100.100.0.0 22 suppress-policy a

被抑制调用时,表中允许的流量最终反而被抑制传输

2、Route-map 在BGP中将route-map当分发列表用

[r5]ip ip-prefix b permit 100.100.1.0 24      
[r5]route-policy b deny node 10
[r5-route-policy]if-match ip-prefix b
[r5-route-policy]q
[r5]route-policy b permit node 20
[r5-route-policy]q
[r5]bgp 3 
[r5-bgp]peer 4.4.4.4 route-policy b ?
  export  Specify export policy  控制层面的出项
  import  Specify import policy  控制层面的入向
[r5-bgp]peer 4.4.4.4 route-policy b export

3、分发列表

[r5]ip ip-prefix c deny 100.100.1.0 24 
[r5]ip ip-prefix c permit 0.0.0.0 0 le 32
[r5]bgp 3
[r5-bgp]filter-policy ip-prefix c export(控制层面方向)

4、前缀列表 – BGP协议中可以直接将前缀列表作为分发列表调用

[r5]ip ip-prefix d deny 100.100.1.0 24
[r5]ip ip-prefix d permit 0.0.0.0 0 le 32
[r5]bgp 3 
[r5-bgp]peer  4.4.4.4 ip-prefix d export
5)有条件的打破IBGP水平分割

在一个AS中一台设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系;又由于IBGP的水平分割规则,导致从外部学习到的路由传递给本地AS时,需要和本AS中所有运行BGP协议的设备逐一建立IBGP邻居关系;----两两间均为IBGP邻居关系,建立数量成指数上升;

所谓有条件的打破,是指在保障无环的前提下消除IBGP水平分割机制(AS-BY-AS)

  1. 路由反射器 角色:RR反射器|客户端|非客户端
    无论客户端还是非客户端都必须是RR的IBGP邻居; 由RR作为中心点与多个客户端、非客户端构成一个簇(组);在一个簇内存在一台RR和至少一台客户端;也可以一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端;

反射规则:不优路由不能被传递,自然也不能被反射;

  1. RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
  2. RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
  3. RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;
[r3-bgp]peer 2.2.2.2 reflect-client     #邻居2.2.2.2成为本地的客户端,同时本地成为RR
  1. 联邦-将一个AS,逻辑的分为多个小AS;对外依然遵循大AS号传递规则;
    但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改;
    1) 所有操作基于小AS号进行;
    2) AS内所有设备需要定义自己所在的大AS号
    3) 小AS间的BGP设备需要告知对端的小AS号
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 2   #申明本地的大AS号
[r3-bgp]confederation peer-as 64513  #告知本地直连的其他小AS号,若没有直连到其他小
#AS不用配置
[r3-bgp]peer  2.2.2.2 as-number 64512
[r3-bgp]peer  2.2.2.2 connect-interface LoopBack 0
[r3-bgp]peer  4.4.4.4 as-number 64513
[r3-bgp]peer  4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer  4.4.4.4 ebgp-max-hop

注:在实际工程中,反射器与联邦技术协同工作在一个网络拓扑中;

6)BGP在MA网络中下一跳问题:

图中1、2、3在一个MA网段,但不在同一AS;正常R1从R2学习到的R4的路由,下一跳自动显示为R3(最佳路径)
原理:
1)R1/2/3必须使用MA网段的物理接口建立邻居关系
2)ICMP重定向开启(默认开启) — 一台路由器在转发一个流量时,发现流量在本地的入口和查询完路由表的出口为同一接口时,将告知上一跳设备本地的下一跳地址;帮助上一跳设备找到最佳的下一跳地址;
在BGP中仅查看某个邻居发送或接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 received-routes
仅查看本地从邻居10.1.1.2接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 advertised-routes
仅查看本地发送给邻居10.1.1.2的BGP路由


(9)BGP属性
[r2]bgp 64512
[r2-bgp]peer  172.16.1.3 next-hop-local

该命令表面上意思为本地将路由传递给邻居172.16.1.3时,修改BGP条目中下一跳地址为本地R2的ip地址;
但实际仅针对R2从本地的EBGP邻居学习到的路由传递给172.16.1.3才修改;本地从其他IBGP邻居处学习到的所有路由再传递给172.16.1.3这个IBGP邻居时不修改下一跳地址;

意义在于,IBGP邻居间传递路由在一个AS内部,若贸然修改属性,极易出现环回–维持AS-BY-AS特性

一)BGP的属性:基础属性
级别名传播范围默认值大/小
1、PrefVal(优先级)不传播0-65535该属性为私有属性(华为)
2、LocPrf 本地优先级整个AS内部-IBGP邻居间100(0-255)用于干涉IBGP邻居关系下选路最常用属性

1、PrefVal(优先级)

[r3]bgp 2 
[r3-bgp]peer  4.4.4.4 preferred-value 1   

本地所有通过4.4.4.4邻居学习到的BGP路由,优先级全部修改为1;

负载分担:访问不同目标时,让路由器选择不同的路径;起到所有路径被使用效果;

路由策略来实现—在BGP路由控制层面传递的过程中,抓取路由修改属性

[r3]ip ip-prefix p permit 1.1.1.0 24   #抓住网络号
[r3]route-policy p permit node 10    #定制策略
[r3-route-policy]if-match ip-prefix p    #匹配流量
[r3-route-policy] apply preferred-value 1   #修改优先级属性
[r3-route-policy]q
[r3]route-policy p permit node 20    #由于路由策略存在分发列表的功能,必须考虑空表
[r3-route-policy]q
[r3]bgp 2 
[r3-bgp]peer 4.4.4.4 route-policy p import   #和邻居传递路由的控制层面方向调用;

优先级不传播的特性,只能在本地的入方向调用;

2、LocPrf 本地优先级

[r4-bgp]default local-preference 1   本地传递路由给本地所有IBGP邻居时,修改属性为1;

负载分担:

[r3]ip ip-prefix l permit 1.1.1.0 24
[r3]route-policy l permit node 10      
[r3-route-policy]apply local-preference 101
[r3-route-policy]if-match ip-prefix l
[r3-route-policy]q
[r3]route-policy l permit node 20
[r3-route-policy]q
[r3]bgp 2 
[r3-bgp]peer  4.4.4.4 route-policy l import    #可以在IBGP邻居关系间的出或入方向调用

3、优先本地下一跳

本地在bgp协议中宣告本地路由表中的IGP路由时,在本地的BGP表中下一跳地址为0.0.0.0;
而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0;本地优选0.0.0.0的路由传递给本地的其他BGP邻居;

4、AS-PATH – 记录条目经过的所有AS编号

注意AS号的添加,一定是在EBGP邻居间进行的;
优选经过的AS号数量最少的路径;同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收;
可以人为的在EBGP邻居关系间,增加AS号的数量来干涉选路;修改A路径,优选B路径;
因为人为操作只能添加,不能减少;
可以干涉到EBGP关系/IBGP关系选路,但只能在EBGP关系设备间配置;

ip ip-prefix as index 10 permit 1.1.1.0 24

route-policy as permit node 10 
 if-match ip-prefix as 
 apply as-path 3 4 5 additive
#
route-policy as permit node 20

bgp 2
peer 12.1.1.1 route-policy as import

出向调用为 x 3 4 5 X代表实际经过过的AS
入向调用为 3 4 5 X X代表实际经过过的AS
新增AS号处于列表的最左端;

注:以上配置方式,若网络后端真实存在AS3/4/5.那么由于EBGP水平分割,将导致这些路由无法被学习;
解决方案:重复添加实际已经经过的AS编号来增加数量

[r2-route-policy]apply  as-path  1 1 1 additive

5、起源属性 – 该条目的来源—通过什么方法进入到BGP协议的
BGP宣告本地路由表中路由 i
将本地路由表中IGP路由重发布到BGP协议 ?
将本地路由表中EGP路由重发布到BGP协议 e
规则 i优于e优于?

[r3]ip ip-prefix o permit 1.1.1.0 24
[r3]route-policy o permit node 10
[r3-route-policy]if-match  ip-prefix o 
[r3-route-policy]apply origin egp 2    #编写对端设备的AS号
[r3-route-policy]q
[r3]route-policy o permit node 20
[r3-route-policy]q
[r3]bgp 2 
[r3-bgp]peer  2.2.2.2 route-policy o import

控制层面流量的入或出接口调用均可;

6、MED -多出口鉴别属性
BGP协议默认没有度量值,没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;
可用于干涉EBGP/IBGP关系下的选路;最常用于干涉EBGP关系选路;
常常用于AS1干涉AS2对AS1的选路;

<r1>ping -r -a 1.1.1.1 3.3.3.3
[r1]ip ip-prefix med permit 1.1.1.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix med
[r1-route-policy]apply cost 2
[r1-route-policy]q
[r1]route-policy med permit node 20
[r1-route-policy]q
[r1]bgp 1 
[r1-bgp]peer  12.1.1.2 route-policy med export
二)BGP选路规则

比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)

  • 优选Preference_Value值最高的路由(私有属性,仅本地有效)。
    不传递 权限最高属性 可以干涉EBGP/IBGP选路
  • 优选本地优先级(Local_Preference)最高的路由。
    IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
  • 优选手动聚合>自动聚合>network>import>从对等体学到的。
  • 优选AS_Path短的路由。
    EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
  • 起源类型IGP>EGP>Incomplete。
    起源属性 i优于e优于?; 可在控制层面任意接口修改;
  • 对于来自同一AS的路由,优选MED值小的。
    默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
    最常用于干涉EBGP选路的属性
  • 优选从EBGP学来的路由(EBGP>IBGP)。
  • 优选AS内部IGP的Metric最小的路由。
  • 优选Cluster_List最短的路由。
  • 优选Orginator_ID最小的路由。
  • 优选Router_ID最小的路由器发布的路由。
  • 优选具有较小IP地址的邻居学来的路由。
三)BGP的社团属性

BGP的扩展属性,默认大多数厂商的产品在BGP协议中不携带社团属性

例:控制传播范围的社团属性

[r1]route-policy com permit node 10
[r1-route-policy]apply community no-advertise  #针对所有的流量修改属性
[r1]bgp 1 
[r1-bgp]peer 12.1.1.2 route-policy com export
#默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性  
[r1-bgp]peer 12.1.1.2 advertise-community   #逐跳行为,每台设备均需开启传递性

no-advertise 接收到的条目中若存在该社团属性,将不再传递该路由
no-export 接收到的条目若存在该社团属性,将不传递给下一个AS
no-export-subconfed 接收到的条目若存在该社团属性,将不传递给下一个小AS
若网络没有小AS,仅存在大AS时no-exportno-export-subconfed作用一致

[r1-bgp]load-balancing as-path-ignore  #BGP协议开启负载均衡,仅针对EBGP路由有效

条件为均衡的这些路径,其对端一定为同一个AS;且在BGP表中仅显示优最佳;但路由表中出现负载均衡现象;

Nex-hop-locai 仅针对本地通过外部AS–EBGP邻居学习到的路由条目才修改下一跳为本地;
联邦内的EBGP关系,传递的路由其属性遵循IGBP关系;传递性遵循EBGP关系;

四. 交换

STP-生成树协议

在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;
存在算法: 802.1D PVST PVST+(CISCO) RSTP(802.1w) MSTP(802.1S)

一、802.1D 一个交换网络内仅存在一棵生成树实例;

交换机间使用BPDU—桥协议数据单元 – 交换机间沟通互动收发的数据

配置BPDU—只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;

使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;再所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;

周期2s发送,hold time 20s;

TCN—拓扑变更消息(也是BPDU):

本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;
之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老化时间修改为15s(默认的,转发延时)

选举:根网桥/根端口/指定端口/非指定端口(阻塞端口)

  1. 根网桥 – 在一棵生成树实例中,有且仅有一台交换机为root;

BPDU中的 桥ID来决定

ID = 网桥优先级(0-65535公有) 默认32768 + MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)

根网桥的选举:先比较优先级,小优;若优先级相同,比较mac,数值小优;

  1. 根端口—在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)

规则:

1、比较从根网桥发出后,通过该接口进入时最小的cost值;
2、入向cost值相同,比较该接口对端设备的BID,小优
3、对端BID也相同,比较该接口对端设备的接口的PID;先优先级小,若优先级一致,编号小
4、连对端PID也相同,比较本地PID,小优;
PID=端口ID 接口优先级(0-240,步长16,默认128) 接口编号

  1. 指定端口,在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;

1、比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
2、若出向cost值相同,必须本地的BID,小优;
3、本地BID相同,比较本地的PID;
4、本地PID,相同,直接阻塞该端口;

  1. 非指定端口(阻塞端口)当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;
    该接口逻辑阻塞,实际可以接收到信息,但不转发;

cost值:不同带宽 存在不同cost

802.1d标准: 802.1T标准
10M = 100 1000M= 20000
100M=19 100M=200000
1000M=4
10000M=2
100000M=1

[SWA]stp pathcost-standard ?    默认华为使用802.1t标准
  dot1d-1998  IEEE 802.1D-1998
  dot1t       IEEE 802.1T
  legacy      Legacy

生成协议中,至少应该将根网桥干涉到汇聚层处;

接口状态

down:没有BPDU收发,一旦可以进行BPDU收发进入下一状态
侦听:强制15s;所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态;若为指定端口和根端口进入下一状态;
学习:强制15s; 指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状态;
转发:指端端口和根端口进入,可以转发用户报文;
阻塞:逻辑阻塞;

注:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据;

收敛时间:
初次收敛—30s = 15侦听+15s学习
结构变化:
**存在直连检测:本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听(选举);结果若为启用,那么将再进入15s学习—总30s
没有直连检测:
本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s

802.1D 缺点:
1、收敛慢
2、链路利用率低

802.1配置命令:

[sw1]stp mode stp   #修改为802.1d算法,当下华为默认为MSTP;
[sw1]stp priority 4096    #修改网桥优先级

[sw1-GigabitEthernet0/0/1]stp cost ?   #修改接口cost值
  INTEGER<1-200000000>  Port path cost

[sw1-GigabitEthernet0/0/1]stp port priority ?  #修改接口优先级
  INTEGER<0-240>  Port priority, in steps of 16
二、PVST cisco私有 基于vlan的生成树协议

在每个vlan内,存在一棵树,每个树的工作原理同802.1d一致;不同vlan的BPDU区别在于优先级;
优先级=4096倍数+vlan id 人为仅可修改4096倍数备份,且只能修改为4096的整倍
仅支持 trunk干道封装为ISL(cisco私有封装)

三、、快速生成树

快速的原理:

1、取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
3、BPDU的保活为6s;hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了
5、兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;

接口默认为半双工时,即便允许RSTP,依然基于慢速的802.1D算法来收敛;

[sw1]stp mode rstp
#边缘接口---用于连接PC的接口,一旦被设定为边缘接口;将不再进行BPDU的发送,且不进行STP的收敛,直接为转发状态;  但若该接口收到了对端的BPDU,将失去边缘特性,重新正常收敛;
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp edged-port enable

[sw1]stp priority ?  #修改网桥优先级
  INTEGER<0-61440>  Bridge priority, in steps of 4096 

[sw1]stp root ?  #快速定义根网桥角色
  primary    Primary root switch
  secondary  Secondary root switch

[sw1-GigabitEthernet0/0/1]stp port  priority ?   #修改接口优先级
  INTEGER<0-240>  Port priority, in steps of 16

[sw1-GigabitEthernet0/0/1]stp cost ? #修改接口cost
  INTEGER<1-200000000>  Port path cost 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不渡云山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值