抽象语言---->编码
编码---->二进制
二进制--->电信号
处理电信号
OSI参考模型----OSI/RM
应用层
表示层
会话层
传输层 端口号:0-65535;1-1023是注明端口
网络层 IP地址
数据链路层
物理层
ARP协议
正向ARP---通过IP地址获取目的MAC地址
目的IP---目的MAC-----ARP表中---180
反向ARP---通过目标MAC地址获取目标IP地址
免费ARP----利用正向ARP的原理请求自己的IP地址
1、自我介绍
2、检测地址冲突
四层模型—TCP/IP标准模型
五层模型—TCP/IP对等模型
L1PDU(layer 1 物理层)
L2PDU
...
L7PDU
应用层---数据报文
传输层---数据段
网络层---数据包
数据链路层---数据帧
物理层---比特流
封装和解封装
目的:提高封装和解封装的速度,加快传输效率
跨四层封装—应用层的数据封装完成后,直接封装网络层数据
跨三四层封装—在应用层封装之后直接封装二层数据
SOF---帧首定界符
MAC子层---介质访问控制层---802.3
LLC子层---逻辑链路控制层---802.3
DSAP:标识接收方上层处理数据报文的模块
SSAP:标识发送方上层梳理数据报文的模块
Control:决定我们数据传送方式的模块
1.无连接模式
2.面向连接模式---控制分片、重组、排序
IPv4版本—32位二进制
IPv6版本—128位二进制
点分十进制:把32位二进制分为4部分,每部分8位,进行二进制到十进制的转换
网络位:网络位相同,则代表在同一个广播域
主机位:在同一个广播域中,使用主机位来区分不同的主机
掩码:由连续的1和连续的0组成,1代表网络位,0代表主机位
IPv4地址分类(有类分址)
单播地址---一对一通讯
特点:既能作为源IP地址,又能作为目的IP地址
组播地址---一对多
广播地址---一对所有
仅作为目的IP地址使用
A:掩码:255.0.0.0
B:掩码:255.255.0.0
C:掩码:255.255.255.0
D
E
IP地址分类原则:根据IP地址二进制的前八位数字特征分类
A:0XXX XXXX-----0-127
B:10XX XXXX-----128-191
C:110X XXXX-----192-223
D:1110 XXXX-----224-239
E:1111 XXXX-----240-255
私网IP地址—单播地址
A:10.0.0.0-10.255.255.255-----1个A类网段
B:172.16.0.0-172.31.255.255-----16个B类网段
C:192.168.0.0-192.168.255.255----256个C类网段
私网IP地址可以重复使用,但是在私网内部需要保证唯一性。
特殊IP地址
1、127.0.0.1-127.255.255.254----环回地址----本地测试
2、255.255.255.255---受限广播地址
3、主机位全1---192.168.1.255/24----直接广播地址
区别:受限广播地址是不被路由器转发的,而直接广播地址会被转发。
4、主机位全0---192.168.1.0/24----网络
5、0.0.0.0----代表没有IP地址,或代表所有IP地址
6、169.254.0.0/16----本地链路地址/自动私有地址
注意:该IP地址不能进行跨网段通讯----以太网环境
VLSM—可变长子网掩码
思路:从主机位向网络位借位。
192.168.1.0/24
192.168.1.0 000 0000/25---192.168.1.0/25
192.168.1.1 000 0000/25---192.168.1.128/25
CIDR----无类域间路由
思路:取相同,去不同
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.0000 0000.0
192.168.0000 0001.0
192.168.0000 0010.0
192.168.0000 0011.0
192.168.0.0/22----超网
172.16.0.0/24
172.16.1.0/24
172.16.2.0/24
172.16.3.0/24
172.16.0.0/22----子网汇总
DHCP Discover—广播
应用层 | DHCP Dicover |
---|---|
传输层 | UDP—源端口号68—目的端口号67 |
网络层 | IP—源IP地址0.0.0.0;目的IP地址255.255.255.255 |
数据链路层 | 以太网协议—源MAC地址:00-16-D3-23-68-8A 目的MAC:FFFF-FFFF-FFFF |
交换机的转发原理
交换机收到电信号后,将电信号转换为二进制,之后,截取到数据帧。
查看数据帧的源MAC地址,之后将该地址和数据进入的接口的对应关系记录在本地的MAC地址表中---300s
之后,看数据帧中的目的MAC地址,基于目标MAC地址查询本地MAC地址表,如果表中存在记录关系,则按照记录进行转发;若表中无记录关系,则将进行洪泛(交换机将数据从除了进入的接口外的所有接口发送一遍)
交换机洪泛的三种情况
DHCP Offer报文—广播/单播
该报文中存在一个可用的IP地址给DHCP客户端
应用层 | DHCP Dicover |
---|---|
传输层 | UDP—源端口号67—目的端口号68 |
网络层 | IP—源IP地址68.85.2.1;目的IP地址68.85.2.101 |
数据链路层 | 以太网协议—源MAC地址:路由器 目的MAC:00-16-D3-23-68-8A |
DHCP Request报文—广播
应用层 | DHCP ACK |
---|---|
传输层 | UDP 67 68 |
网络层 | IP-源IP:68.85.2.1—目的IP:68.85.2.101 |
数据链路层 | 以太网协议—源MAC:路由器;目的MAC:00-16-D3-23-68-8A |
目的:通过域名获取对应的IP地址
DNS端口号—53—TCP/IP
DNS查询过程
路由器的转发原理
原理:路由器将基于数据包中的目的IP地址查询本地路由表。若路由表中存再记录,则无条件按照记录 转发;若没有记录,则将直接丢弃该数据包。
获取未知网段的信息
1、直连路由:路由器默认生成可用接口直连网段的路由条目
2、静态路由:由网络管理员手工配置
3、动态路由:所有路由器运行相同的路由协议,之后路由器之间彼此沟通,计算出未知网段的路由信息
直连路由的生成条件
1、接口双UP
物理层面UP:代表链路正常
协议层面UP:代表具备通讯协议
2、接口必须配置IP地址
TCP---80
超文本---包含有超链接link和多媒体元素标记的文本
是一种面向连接的可靠性传输协议(首先建立一个点到点的连接)
确认机制:传输确认,每接收一个数据段,则需要进行一次确认
重传机制:保障可靠性的最优机制,当一个数据段中某一个包丢失,会提醒要求重新传输这个报文
排序机制:传输一个数据段,被分为多个报文,从而不同路径传输,最终到达目的地的顺序会被打乱,所以需要重新进行排序。根据TCP数据包中的序号字段。
流控机制:滑动窗口机制---调节窗口大小从而对流量进行控制
可靠性:
TCP协议保证传输可靠性的机制 --- 确认、重传、排序、流控
MTU---最大传输单元
以太网MTU=1500
TCP在ip层面不允许分片原因是不同网络MTU不同,要进行分片,
如果丢失则不知道是那块丢了,要全部重传,因此不行。
最大段长度 MSS=MTU-TCP头部-IP头部(在TCP协议的选项字段)
PMTU---路径MTU发现协议
在IP报头中,有一个a字段是DF,该字段表明了IP报文是否允许分片,PMTU功能开启后,会将该字段设置为1,表示不能分片。
此时当需要进行分片时,发现该报文不能分片,设备会丢弃该报文,并向发送方发送一个ICMP报文(数据不可达)
MSL一个数据包在网络中最大的传输时间2min
应用层 | HTTP请求报文—请求方式:GET(用于请求一个网页信息) |
---|---|
传输层 | TCP 源端口:随机端口;目的IP;web服务器 |
网络层 | IP协议—源IP:小明电脑;目的IP:web服务器 |
数据链路层 | 以太网封装—MAC源:小明;目的MAC:网关 |
GET---请求读取一个web页面
POST---附加一个命名资源(web页面)
PUT---请求存储一个web页面
应用层 | HTTP应答报文—状态码 200—ok |
---|---|
传输层 | TCP协议—源端口号:80;目的:请求方的随机数 |
网络层 | IP协议—源IP:web服务器;目的IP:小明 |
数据链路层 | 以太网封装—源MAC:服务器;目的MAC:下一跳设备的MAC地址 |
分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
静态路由的优点
1.选路合理,由网络管理员手工配置
2.安全,动态路由协议的计算是需要路由器之间交互数据报文
3.不需要额外占用设备资源
缺点:
1.配置量大
2.无法基于拓扑结构的变化而自动收敛
flag:RD 递归计算而得
基本配置
方法一:
[r1]ip route-static 23.0.0.0 24 12.0.0.2-----在以太网中使用
方法二:
[r3]ip route-static 12.0.0.0 24 GigabitEthernet 0/0/0
方法三:
[r1]ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1 12.0.0.2
方法四:
[r3]ip route-static 192.168.1.0 24 12.0.0.1 //需要提前铺垫好所有在路由递归查找过程中的所有路由项。
Pre — 优先级 — 当多条路由条目的目标网段相同时,仅加载优先级 最高的路由条目到路由表中。 — 数值越大,优先级反而越低 0 - 255 — 华为设备默认静态路由的优先级为60,直连路由的优先为0。
[r1]ip route-static 192.168.3.0 24 GigabitEthernet 0/0/1 192.168.2.2 — 增加出接口添加静态路由
路由环路 TTL — 64 128 255
拓展配置
1,负载均衡:当路由器访问同一个目标网段,具有多条开销相似的路径 时,可以让设备将流量进行拆分,分别从多条路径同时传输。可以起到叠 加带宽的效果。 192.168.6.0/24 Static 60 0 RD 192.168.2.2 GigabitEthernet 0/0/1 Static 60 0 RD 192.168.3.2 GigabitEthernet 0/0/2
2,环回接口:路由器配置的虚拟接口,一般用于虚拟实验而不受设备的 限制。 [r1]interface LoopBack ? <0-1023> LoopBack interface number ---- 环回接口可以创建 1024个 [r1]interface LoopBack 0 — 创建环回接口 [r1-LoopBack0] [r1]ping -a 192.168.1.1 192.168.4.1 — 指定发送Ping包中的源IP地 址
3,手工汇总:当路由器可以访问多个连续的子网时,若均通过相同的下 一跳,可以将这些网段进行汇总计算,之后仅编辑到达汇总网段的路由信 息即可,以达到减少路由条目数量,提高转发效率的目的。 192.168.00000001.0/24 192.168.00000010.0/24 192.168.0.0/22
4,路由黑洞:在汇总中,包含网络内实际不存在的网段时,可能会产生 流量有去无回的现象,造成链路资源的浪费。 192.168.0.0/22 <<< 192.168.0.0/24 192.168.0000 0001.0/24 192.168.0000 0010.0/24 192.168.0000 0011.0/24 合理的子网划分和汇总可以减少路由黑洞的产生。
5,缺省路由:一条不指定目标的路由条目。查表时,若本地路由均未匹 配,则将匹配缺省路由。 路由黑洞和缺省路由相遇将100%出环 [r1]ip route-static 0.0.0.0 0.0.0.0 12.0.0.2
6,空接口路由:防止路由黑洞和缺省路由相遇成环,在黑洞路由器上配 置一条到达汇总网段指向空接口的路由条目。 1,路由表的匹配原则:最长匹配原则(精确匹配原则) 2,null 0:如果一条路由的出接口设置为空接口,则将匹配到的数 据包直接丢弃。 [r1]ip route-static 192.168.0.0 22 NULL 0
7,浮动静态路由:通过修改静态路由的默认优先级,实现静态路由的备 份效果。 [r2]ip route-static 192.168.1.0 24 21.0.0.1 preference 80 [r1-GigabitEthernet0/0/0]shutdown — 手工关闭接口 [r1-GigabitEthernet0/0/0]undo shutdown — 重新开启接口
双向转发检测,是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
网络类型是根据我们数据链路层所运行的协议及规则来划分。
特点:需要使用MAC地址对我们的设备进行区分和标识
原因:(为什么以太网需要使用MAC地址进行物理寻址)利用以太网协议建立起来的二层网络中可以包含多个接口,每个以太网接口之间都可以进行交互以太网数据帧,从而进行通讯,若不存在MAC地址,则无法找到对应的接收数据帧的设备。
所属类型—BMA
以太网网络的构建方式—使用以太网线缆,连接设备的以太网接口,形成的网络称为以太网络,所运行的协议就是以太网协议。
以太网的特色—可以提供极大的传输速率—频分技术
POS为服务器间高速转发数据流的线
同步=跟在报文后面
异步=以字节为单位
当一个网络中只能存在两台设备,且不允许第三台设备加入,这样的网络称之为P2P网路。
P2P网络的搭建—使用串口线缆连接设备的串线接口,形成的网络
串口线—一种比较古老的线缆,早期主要使用的线缆之一
串口的标准:E1—2.048M/bps T1—1544M/bps
标准:(两种不兼容思科、锐捷)
HDLC网络搭建
理论上不用配ip,为了服务上层协议要配ip
display interface brief
link-protocol hdlc
HDLC的接口地址借用
串行接口可以借用loopback接口的ip地址和对端建立连接。
[Huawei-Serial4/0/0]ip address unnumbered interface LoopBack 1
要配路由且该路由条目出口配置为出接口,因为没有ip地址
将环回接口IP地址配置为对端接口IP地址的同网段地址,且掩码为32
PPP协议优点
PPP会话的搭建
PPP协议建立会话需要经过三个阶段
PPP链路建立阶段
F=flag标记 0x7e 帧开始 结尾
A=address地址 0xff 全F 填充
C=control 无意义0x03
LCP协议—链路控制协议—主要用于完成PPP会话建立的第一阶段协商过程
NCP协议—网络控制协议—是一系列协议的总称,完成PPP会话建立第三阶段时针对网络层协议进行协商。网络层所使用的协议不同,则对应的NCP协议不同。
LCP建立
1.MRU值=PPP数据帧中所允许携带的最大数据单元(信息部分大小),单位字节,默认1500
2.认证方式:根据第二阶段认证来判断,若存在认证,则需要协商认证方式;若不存在认证,则不需要协商。
3.魔术字:用来检测链路中是否存在环路,是由本地设备随机生成的字符串(设备序列号、硬件地址)
协商过程
PPP的认证,一般是通过AAA管理框架来完成的
认识是双向的,但是也可以做单向,但是不建议
两种认证方式:PAP、CHAP
认证方
创建用户信息
[r1-aaa]local-user huawei password cipher 123456
[r1-aaa]local-user huawei service-type ppp
配置认证方式
[r1-Serial4/0/0]ppp authentication-mode pap
被认证方
[r2-Serial4/0/0]ppp pap local-user huawei password cipher 123456
PPP会话的建立是一次性会话方式,当第一次链路建立完成后,后续修改认证方式不会影响链路的通讯。(需重启接口来激活)
认证方
[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协议来对网络层参数进行协商
协商内容
协商过程
静态地址协商
动态地址协商
网络安全的一种管理机制
安全功能
AAA域
授权信息分为两类
用户所属域
用户属于哪一个域—根据NAS设备来判断(类似DNS服务器)
NAS存储一个区域内部所有的用户信息,以及其对应的域信息
当用户名中携带了域名信息,则NAS设备会根据域名将其归属到对应域下,并回复该域下所配置的AAA方案、服务器模板、域下授权信息。如果用户名没有携带域名信息,则会将其归属到默认域中。
默认域中自带默认的认证方案、授权方案和计费方案
aaa
domain huawei //创建一个域
认证方案
认证方案用来定义用户认证时所使用的的认证方法以及每种认证方法的生效顺序。
认证方案必须应用到域。
设备支持的认证方式
授权方案
授权方案用来定义用户授权是使用的授权方法以及每种授权方法的生效顺序并且也需要应用到域。
设备支持的授权方法
计费方案
计费方案用来定义用户计费时使用的计费方法以及每种计费方法的生效顺序并且,也需要应用到域。
设备支持的计费方法
计费只能有一种方案,故没有所谓的生效顺序
小实验
配置信息:
创建用户:
[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
VPN出现前:使用物理专线—维护成本高
VPN—虚拟私有网络
虚拟:用户不再需要拥有实际的长途数据线路,而是使用公共网络资源建立的属于自己的私有网咯
专用:用户根据自身需求,特别定制的最符合自身网络架构的网络
核心技术—封装技术(VLAN同理)
属于点到点隧道
GRE环境
希望的流量走向
SIP:192.168.1.1 | DIP:192.168.2.1 | 数据 |
---|
实际的流量走向
SIP:12.0.0.1 | DIP:23.0.0.3 | 数据 |
---|
经过GRE粘合后的走向
SIP:192.168.1.1 | DIP:192.168.2.1 | 数据 |
---|
SIP:12.0.0.1 | DIP:23.0.0.3 | SIP:192.168.1.1 | DIP:192.168.2.1 | 数据 |
---|
1.创建隧道接口
[r1]interface Tunnel 0/0/0 //创建隧道接口
[r1-Tunnel0/0/0lip 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配置
2.配置虚拟静态路由条目
GRE的报文结构
SIP:12.0.0.1(传输协议) | DIP:23.0.0.3(传输协议) | GRE(封装/运载协议) | SIP:192.168.1.1(乘客协议) | DIP:192.168.2.1(乘客协议) | 数据 |
---|
Keepalive检测—GRE保活机制—用于检测隧道对端是否可达
[r1-Tunnel0/0/0]keepalive period 2 retry-times 5
设置发送周期为2s;重传次数为5次。
如果本端隧道配置了keepalive检测功能,GRE隧道会创建一个计时器,并周期性的发送探测报文,同时进行不可达计数。
每发送一个探测报文,不可达计数+1
如果该计数器到达预先设定的值之前收到回应报文,则表明对端可达。
如果计时器值达到预先设定的重传次数,还未收到对端的回应报文,则认为对端不可达。关闭隧道连接.
keepalive是不需要双方均进行配置的,仅配置一端即可进行检查,最好两端都配
NHRP—下一跳解析协议
中心&节点:Hub&Spoke架构
NHS(下一跳服务器):在私网当中选择一个出口物理IP地址不会变的设备充当NHS服务器。剩下的节点都可以知道中心的隧道IP和物理IP,然后通过NHRP要求所有的分支节点都需要将自己的物理接口IP和隧道IF发送给该服务器(有变化就发送) 。
NHS服务器将会存有所有分支节点的地址映射关系的一个动态记录。
发送消息时查询该映射记录表即可。
MGRE的非shortcut配置
reset saved-configuration //清除本地配置文件
Hub配置
[r1Jinterface Tunnel 0/0/0
[r1-Tunnel0/0/0lip 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配置
[r4Jinterface 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 45.0.0.1
[r4-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register //分支需要到中心站点注册隧道地址物理地址注册
ip rpute-static ....
[r1]display nhrp peer all //查看nhrp的注册情况
通过总部中转流量缺点:
DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支的公网IP地址的问题,从而可以在分支和分支之间直接建立一条动态的VPN隧道,实现分支和分支之间的直接通讯,减轻总部的设备负
担。
DSVPN借助MGRE技术,使VPN魔道能够传输组播报文和广播报文,并日一个tunne]接口可以跟多人对端建立VPNY道,减少网络管理员的配置量。并且,在新增分支或者分支地址变化的情况下,能够自动维护总部和分支之间的隧道关系,而不需要调整任何配置。
DSVPN概念
当源spoke需要向目的spoke发送数据报文时,
源spoke通过与hub节点的静态mgre道交与NHRP协议报文获取目的spoke节点的公网地址,并目与目的Spoke节点建立动态mgre隧道
MGRE隧道
NHRP映射表建立过程
建立spoke和hub之间的MGRE隧道
分支学习路由
建立spoke和spoke之间的MGRE隧道
分支间配置彼此的静态路由但下一跳都为总部虚拟地址
[r1-Tunnel0/0/0]nhrp redirect //在hub设备上配置(重定向)告诉发送方要去的虚拟地址
[r4-Tunnel0/0/0]nhrp shortcut //在spoke设备上配置---
建立Spoke与Spoke之间的mGRE隧道(shortcut方式):
Spoke与Spoke之间的mGRE隧道建立过程(Normal方式\非shortcut方式):
[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
IETE—国际互联网工程任务组—RFC2328
工作范围:AS内部—IGP
算法:迪特拉斯算法
OSPFv2和RIPv2对比
相同点:
不同点:
OSPF域(Domain)—将一系列的OSPF路由器组成的网络称为OSPF域。
区域ID:32bit
OSPF区域划分
假定没有“所有非骨干区域都必须与骨干区域相连”这条规则----“远离骨干的非骨干”
定义了ABR(区域边界路由器)设备—确保所有人遵循上述规则
至少连接两个区域
连接的区域中至少有一个是区域0
在区域0中至少有一个活跃的邻居
作用:传递区域间路由
为了避免区域间的路由形成环路,非骨千区域之间不允许直接相互发布区域间路由
假定没有“骨干区域不能被分割”这条规则----不连续骨干区域:
从非骨干区域收到的路由信息,ABR能接收,但不会使用这条路由信息(OSPF水平分割原则)
OSPF有如下规则:
1、对于伪ABR设备不允许转发区域间路由信息。
2、对于真实ABR而言
能够将自己直连的非骨千区域的区域内路由信息传递给骨干区域能够将自己直连的骨干区域的区域内路由信息传递给非骨干区域。能够将自己从骨干区域学习到的区域间路由信息传递给非骨干区域。
Hello
用来周期发现、建立、保活OSPF邻居关系,通过组播224.0.0.5发送
10s发送一次来确认邻居的存在
hold-time—四倍的hello时间
Router-ID(RID)
全域AS唯一,标识路由器身份
用IP地址形式表示(32bit,点分十进制)
配置方法
手工配置
自动配置
默认最大环回地址,若没有最大环回则选择最大物理IP地址(路由器的RID选择,非OSPF)
[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
LSR
LSU
LSAck
条件匹配:匹配成功则进入下一阶段,不成功则停留在2-way
包发送前后,不同路由器视角下,路由器的状态不同
主R2优先进入Loading状态,R1接收到带有信息的DBD报文,才进入Loading
DD报文最后没有LSA头部,R1告诉R2,收到了它发出的最后一个DD报文
DR设备使用组播224.0.0.5向该MA网络发送消息.
而DR和BDR使用224.0.0.6监听该MA网络的消息。
DRother使用224.0.06发送自己的LSU报文。
NBMA网络类型:
在NBMA网络类型下,如果需要启动OSPF协议,需要手工指定邻居,否则不会发送he11o报文。
若不发送he11o报文,则邻居状态处于attempt状态。
结构突变
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.o]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 //宣告网段
宣告使用反掩码形式
display ospf peer
display ospf peer brief
display ospf lsdb
display ip routing-table protocol ospf
display ospf routing
华为体系中,优先级为10;
OSPF的COST====参考带宽(100Mbps)/实际带宽
[r1-ospf-1]bandwidth-reference 1000 //修改参考带宽-----所有设备均需修改
一条OSPF路径的Cost等于从目的地到本地路由器沿途的所有设备的入接口Cost值的总和
OSPF的认证功能存在于所有的数据交互过程中,对于任何一种数据报文,都需要进行认证
在认证的过程中,需要对比两个字段,首先对比认证类型
若相同,才会对比认证数据字段
网络掩码(Network Mask)
Hello间隔
可选项(Options)
路由器优先级(接口优先级/DR优先级)
[r2-GigabitEthernet0/0/0]ospf dr-priority ?
/修改OSPF接口的DR优先级
路由器失效时间
指定路由器
备份指定路由器
邻居
所有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可以接收到该数据包,但无法回复
邻居建立好后,在一方修改子网掩码,修改一方状态机立刻Down,而另一侧会在40sdead time 后Down,但是在40s内OSPF peer依然为FULL,依然可以学到路由,但无法回包
改Hello时间 接口视图:ospf timer hello 20
改死亡时间 接口视图:ospf timer dead 120 一个死亡时间后生效
OSPF特殊区域标记 和修改掩码效果相同(STUB)
认证字段
[area-0.0.0.0]authentication-mode simple plain 123
作用:
使用未携带数据的DBD报文进行主从关系选举
使用携带数据的DBD报文进行目录信息共享
使用未携带数据的DBD报文进行确认
接口最大传输单元(接口的MTU)
华为将该值设置为0
华为默认不对MTU值进行检测
[r1-GigabitEthernet0/0/0]ospf mtu-enable
如果两边均开启该功能,则会进行MTU检测,并且进行检测时,若两边不同,则状态卡在 exstart状态。
I位----主从关系选举
M位----代表后续是否有多个DD报文
MS位----代表主设备
DD序列号
LSA头部
基于DBD报文请求本地未知LSA信息
链路状态类型、链路状态ID、通告路由器-----LSA三原则。—通过三个参数唯一标识一条LSA。
LSA个数、LSA—具体LSA信息
LSA头部—对之前请求的LSA信息进行确认—20字节
OSPF运行在不同的网络类型下,接口的不同工作方式
网络类型 | OSPF接口的工作方式 |
---|---|
BMA | Broadcast,可以建立多个邻居关系。需要进行DR和BDR的选举。hello 10S; dead 40S |
P2P | P2P,只能建立一个邻居关系。不需要进行DR和BDR的选举,hello 10S;dead 40S |
环回接口(虚拟接口) | P2P,华为设备定义为P2P类型,但实际上该接口无数据收发。环回接口默认学习 32位主机路由。hello 10S;dead 40S |
P2MP | P2MP,可以建立多个邻居关系,不需要进行DR和BDR的选举;hello 30S,Dead 120S。会学习邻居接口IP地址所对应的主机路由 |
NBMA | NBMA,可以建立多个邻居关系,需要进行DR和BDR的选举,Hello 30S,Dead 120S。无法自动建立邻居关系 |
VLINK | Vlink;以单播的形式发送hello包,hello 10S;dead 40S;不需要进行DR和BDR 的选举。 |
小知识:
[r1]dis ospf int g 0/0/0 //查看ospf接口信息
[r1-GigabitEthernet0/0/0]display ospf brief //查看所有ospf接口信息
[r1]dis ospf lsdb //查看链路状态数据库表(拓扑表)
Poll---发送轮询Hello报文的时间间隔
Retransmit ---重传次数,别太少
Transmit Delay --- 接口传送LSA的延迟时间 ---尽量等于一个MSL
[r2]display current-configuration configuration ospf //查看所有当前配置中的关于OSPF的配置
OSPF在BMA网络类型的接口上通常以组播的方式发送hello报文、LSU报文和LSACK报文。以单播的 形式发送DD报文和LSR报文。
OSPF在网络类型为P2P的接口上以组播的方式(224.0.0.5)发送所有的协议报文。并且OSPF在P2P类 型的网络中不会选举DR和BDR。 该接口类型信息中,缺少了在BMA网络中看到的DR优先级、DR和BDR的描述信息。
Type----P2P-----在思科中有专门定义的Loopback类型作为环回接口的类型,而华为中没有定义,使用 P2P来填充(没有意义)。
所有通过OSPF学习到的环回接口的路由掩码信息都是32位,这是因为环回接口是一个模拟的接口, 它实际上并没有连接用户,所以没有其余的IP地址存在于环回接口之下,只有一个可用的IP地址,故而 使用32位掩码来直接标识环回接口。保证路由信息的精确性。----避免产生环路或者路由黑洞。
修改ospf接口网络类型为broadcast后:
[r1-LoopBack0]ospf network-type broadcast //修改网络类型为BMA
State:Waiting 原因在于环回接口此时并没有邻居,也就无法进行正常的DR和BDR选举,当时间超时后,环回接口会 认为自己就是DR,并将相应信息填充到该接口信息中。
华为将tunnel接口的传输速率定义为64Kbps。
OSPF在P2MP类型的接口上通常以组播的方式发送hello报文,以单播的方式发送其它报文。 P2MP类型无法由设备自动生成,必须由管理员手工更改。 P2MP类型网络不需要选举DR和BDR。
在NBMA场景中,为了让OSPF路由器之间能够正确建立邻居关系,需要使用单播邻居的方式来发送OSPF报文,双向配置
[r4-ospf-1]peer ?
IP ADDR IP address
实现加快收敛:
BMA网络,DR/BDR选举可以取消吗?可以取消可以选择修改接口优先级,也可以选择修改链路类型
在R2和R3之间构建一条隧道,之后,将这个隧道宣告到Area0,相当于将R3这个非法的ABR设备合法 化。
专门为了解决OSPF不规则区域所诞生的技术。是一种虚拟的、逻辑的链路。
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
虚链路的配置条件:只能穿越一个区域。
Vlink链路实际上全部使用单播报文来描述信息。
Vlink被视为骨干区域的一段延伸----vlink永远属于Area0。
实际上,vlink不仅仅应用在我们上述两种不规则区域,还可以用来修复一些次优路径或者骨干区域不健壮问题。
当R1和R2断开连接,可以用Vlink连接R3和R4,此连接属于area0
Vlink还可以解决没有骨干区域的场景。
场景一
成环原因:在R2和R4之间使用Vlink
使用Vlink之后,R5的路由将会传给R2(单播发给Vlink邻居),路由需要经过R3,,R2通过R4学习到了环回路由,需要往外传,发给R1和R3,R1接收到后,也会传递给R3,针对这条路由的传递,R3会信任R1传过来的。针对这个环回,R3学到的下一跳是R1,R1的下一跳是R2,R2学习到的下一跳却是R3,然后R3再传给R1,形成环路。
解决方法: Vlink不在R2和R4之间搭建,在R3和R4之间搭建,实现环回路由,从R4传给R3,R3传给R1,R1传给R2.
场景二
成环原因(看不到现象):在R2和R4上实行Vlink,在R2上进行汇总,和R4上进行汇总。R2会通过R3将路由发给R4,也发给R3,R4上的汇总路由也会发给R3;根据掩码最大匹配原则,R3会优先使用/16的路由。然后,针对汇总路由,R3的下一跳为R4,R4的下一跳为R3,形成环路。
解决方法:OSPF规定,vlink所在区域不允许传递聚合路由。
重发布
把一种路由信息以另一种路由协议的方式发布出去。
[r3-ospf-1]import-route ospf 2 ---将OSPF进程2的路由导入到OSPF进程1
[r3-ospf-2]import-route ospf 1
OSPF双向进程重发布不会导入缺省路由
当在同一个区域0内,有两台直连设备RID一致,将导致无法建邻;
非直连:
当在同一个区域内,有两台设备RID一致,中间加一台设备,此时可以建邻成功;但是如果在两台RID相同的设备上,其中一个宣告一个环回,将会造成建邻震荡,此时邻居关系不稳定,此时数据通信频繁。原因: 没有宣告环回的设备不认识宣告的网段,认为自己掉线了,重建邻居,然后就会产生新的更新报文LSA,传给中间设备,告知没有,中间设备再转发更新给宣告路由器,宣布路由器,也会重新建邻,再转发中间路由器有,不停震荡。在华为中,一旦震荡,其中一台华为设备或两台设备将在很短的时间内,修改自身RID值,消除震荡。
在MA网络中,在同一个域内,将中间设备放弃选举,RID相同的两台设备作为DR,在两台RID相同的设备上,其中一个宣告一个环回,通信数据震荡将持续很长一段时间,15min,然后其中一台或者两台设备将把DR强制换给另外一台设备(即中间设备)。
如上图,OSPF不规则区域,使用Vlink打通,导致两台RID相同的设备在同
个区域
OSPF多进程
启动多套路由协议是为了----路由隔离
多进程应用场景
首先是省公司的路由情况
然后来连接市、县、区等低一级的公司
如果是单进程,下一级可以学习到升一级的路由,这是不没有必要的,数据量很大,那么就不用加入到上一级的OSPF域,低一级的公司只需要写一条缺省可以指向高一级的就可以
实现站点式的互通,高一级的全部学习,低一级的学习自身,缺省指向高级。目的:安全性。
低一级不希望学习到高一级的明细。
链路状态老化时间(Link-State Age)
可选项
链路状态类型(Link-State Type)
链路状态ID
通告路由器
链路状态序列号
校验和
链路状态序列号、老化时间、校验和
类型 | LS ID | 通告者 | 作用范围 | 携带信息 |
---|---|---|---|---|
Type-1 LSA(Router) | 通告者的RID | 区域内所有运行OSPF | 单区域 | 本地接口的直连拓扑 |
Type-2 LSA(network) | DR接口IP地址 | 单个MA网络中DR所在的路由器的RID值 | 单区域 | 单个MA网络拓扑信息的补充 |
Type-3 LSA(summary) | 路由信息的目标网络号 | ABR,在通过下一个ABR设备时会被修改为新的ABR的RID | 单区域(ABR临近的) | 路由信息 |
Type-5 LSA(ase) | 域外的路由信息的目标网络号 | ASBR | 整个OSPF域 | 域外路由信息 |
Type-4 LSA(asbr) | ASBR的RID | 与ASBR同区域的ABR设备,在通过下一个ABR设备时会被修改为新的ABR的RID | 除去ASBR所在区域的单区域 | ASBR的位置信息 |
Type-7 LSA (nssa) | 域外的路由信息的目标网络号 | ASBR;离开NSSA区域后由ABR设备转换为5类LSA | NSSA区域 | 域外路由 信息 |
ID到TOS度量之间可以重复
V—Vlink E—ASBR B—ABR
链路类型—
display ospf lsdb router 1.1.1.1 展开一条一类LSA信息
display ospf lsdb network 23.0.0.3 展开二类LSA
display ospf lsdb summary 12.0.0.0 展开三类LSA
找ASBR
5类LSA中携带的是域外路由信息,通过重发布导入OSPF网络,因为不同协议对开销值的算法标准不同,所以,在路由导入之后,将直接舍弃原有的开销值之后给路由赋予一个规定值----种子度量值
OSPF的种子度量值为1
import-route rip 1 cost 5
E位:
外部路由标记
转发地址—FA
ospf 1
import-route rip 1 tag 10
E位—表示允许洪泛5类LSA信息,如果做成特殊区域,则E位为0
N位—属于options字段,表示允许处理7类LSA
P位—不属于options字段
在7类LSA中,在不存在选路不佳的情况下,一般会使用通告者 (ASBR) 设备的环回接口地址作为转发地址。
七转五:改通告RID和FA字段
一类LSA撤销
二类LSA撤销
三类LSA撤销
五类与七类LSA撤销
主要目的—减少LSA的更新量以及数量
标准企业网内部
[GS-R2-ospf-1-area-0.0.0.1] abr-summary 192.168.0.0 255.255.224.0
[GS-R3-ospf-1-area-0.0.0.2] abr-summary 192.168.32.0 255.255.224.0
只要站点内这条汇总路由所涵盖的所有明细路由中有一条是有效的,则ABR就会通告该汇总路由,而当所有的明细路由全部失效时,ABR设备才不会继续通告该汇总路由。
汇总并不会影响ABR设备自身的明细路由
汇总会抑制明细路由的发送。
域间路由汇总只能汇总ABR设备自身通过一类LSA和二类LSA信息学习到的路由条目
[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0
5类LSA汇总之后的开销值计算方法:
1.不能是骨干区域;2.不能存在虚链路;3.不能存在ASBR设备
[r5-ospf-1-area-0.0.0.2]stub
[r1-ospf-1-area-0.0.0.2]stub
注意:一旦做特殊区域,则所有区域内的设备都必须做特殊区域
完全末梢区域(Totally Stub Area)
在末梢区域的基础上,进一步拒绝学习3类LSA,仅保留3类缺省
[r1-ospf-1-area-0.0.0.2]stub no-summary
该命令仅需要在ABR设备上配置即可
[r5-ospf-1-area-0.0.0.2]nssa
[r1-ospf-1-area-0.0.0.2]nssa
O_NSSA — 7类域外路由信息的标记,默认优先级也是150
[r1-ospf-1-area-0.0.0.2]nssa no-summary
Type-1 | Type-2 | Type-3 | Type-4 | Type-5 | Type-6 | |
---|---|---|---|---|---|---|
常规区域 | √ | √ | √ | √ | √ | × |
Stub区域 | √ | √ | √ | × | × | × |
Totally Stub区域 | √ | √ | × | × | × | × |
NSSA区域 | √ | √ | √ | × | × | √ |
Totally NSSA区域 | √ | √ | ×有缺省 | × | × | √ |
场景一
两条缺省路由产生负载均衡,数据丢失
场景二
R4和R5无法下发OSPF缺省路由的原因是本地路由表中的静态缺省路由被R3发送的七类缺省路由所替代。
当删除R3的下发命令后,R4和R5均会下发七类缺省路由,并学习对方的七类缺省路由,但是并不会将从对方学习到的七类缺省路由加入到路由表中。
总结:
OSPF规定: 在NSSA区域中,可能同时存在多个ABR或ASBR,为了防止路由环路产生,边界路由器之间不计算对方发布的缺省路由
OSPF对进行7转5操作的规范
[r4-ospf-1-area-0.0.0.1]nssa suppress-forwarding-address //在进行7转5时,删除转发地址
[r1-ospf-1-area-0.0.0.1]nssa translator-always /制开启7转5操作,在ABR设备上配置
若本地存在两条LSA除了通告者不同外,只有FA字段的值不同,那么对于这两条五类或七类LSA而言,FA字段不为0.0.0.0的LSA优先级更高。
NSSA区域如果没有FA字段,将会有很大的可能因为7转5操作出现次优路径
nssa环路:
左侧为nssa区域,此时R1宣告环回,nssa区域内,七类信息传播,R3可以学到,R3作为ABR,且RID大,实现七转五操作,将环回转5类,发给R4,R4又将它发给R2。此时,R2会学习5类,因为5类的开销更小。
如果FA字段为0,R2选择5类LSA,将会演算通告者R3,R2和R3同区域,可以递归到。此时R2去往环回下一跳是R3,而R3下一跳是R2,出现环路可能的情况,但实际上,因为是R4将路由传给R2,所以,R2实际下一跳是R4R4下一跳是R3,也是环路
在同一个网络拓扑结构中,如果存在多种不同的路由协议,由于不同的路由协议对于路由项的处理机制不同,这就会导致在网络中造成路由信息的隔离。而在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入 (Route lmportation) 或者路由重分发。-执行该操作的技术被称为重发布。
作用:在一个网络中,若运行多种路由协议或相同路由协议的不同进程,协议之间不能直接沟通计算,进程之间也是相互独立,所以需要使用重发布技术来实现路由的共享。
点—设备
向
单向:仅将A协议路由共享到B协议中
双向:A和B的路由均共享到对方
A—>B:
[r2-rip-1]import-route ospf 1
通过重发布技术将其他协议的路由信息导入到RIP中,RIP协议赋予其的种子度量值为0。
修改RIP种子度量值:
[r2-rip-1]default-cost 5 //修改全局种子度量值
[r2-rip-1]import-route ospf 1 cost 10 //修改特定路由的种子度量值
注意:两条命令同时执行时,将按照第二条执行
静态—>B:
[r2-rip-1]import-route static
直连—>B:
[r2-rip-1]import-route direct
路由回馈
默认RIP和OSPF协议进行双点重发布,由于两者的优先级不同,故第一台ASBR设备重发布动作结束后,将影响其他ASBR设备的路由表。使得路由可能被回传到源协议当中,发生路由回馈—A协议的路由重发布到B协议当中后,又被重发布回A协议。路由回馈可能会导致选路不佳,甚至是路由环路的出现。
华为为了解决路由回馈问题,将OSPF的域外路由的优先级定义为150(150高于华为体系下所有IGP协议的优先级),从而解决路由回馈。
在双点双向重发布中,虽然解决了路由回馈问题,但是多点重发布还是存在一个必然产生的问题—选路不佳。----原因在于重发布时清除了原先的开销值导致的。
解决方法:路由策略
所谓的路由策略—.在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由器路由表的生成,干涉选路的效果
[r3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0
因为ACL列表本身设计是为了抓取数据层流量的,所以,因为通配符的存在他可以灵活的匹配IP的数字特征,但是,没有办法匹配路由信息中的掩码特征。所以,ACL并不擅长控制层流量的抓取。
[r3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0
因为ACL列表本身设计是为了抓取数据层流量的,所以,因为通配符的存在他可以灵活的匹配IP的数字特征,但是,没有办法匹配路由信息中的掩码特征。所以,ACL并不擅长控制层流量的抓取
如果需要在192.168.1.0/24、192.168.1.0/25、192.168.1.0/30中抓取到192.168.1.0/24,ACL是无能为力的只能按照数字特征抓取,则意味着使用以上命令将同时抓取携带着三种路由信息的数据包
一个路由条目由目的网络地址 (前) +掩码长度 (前缀长) 共同标识
IP前缀列表可以包含一条或多条语句,每条语句都使用一个序号 (十进制)进行标识
前缀列表的匹配规则:从上而下,逐条匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有规则。
实例
假设,有四条路由信息: 172.16.0.0/16、172.16.0.0/24、172.16.0.0/30、172,16.1.1/32。
[r3]ip ip-prefix aa permit 172.16.0.0 24 //该语句要求路由的目的网络地址的前24位比特位需要与172.16.0.0的前24位相同,并且路由的目的网络掩码长度必须为24,因此该规则可以抓取172.16.0.0/24
[r3]ip ip-prefix aa permit 172.16.0.0 16 less-equal 24
该语句要求路由的目的网络地址的前16比特位与172.16.0.0的前16位相同,并且路由的目的网络掩码长度必须大于或等于16,且小于或等于24。因为改规则可以抓取172.16.0.0/16、172.16.0.0/24
[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24
[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 32
[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24
[r3]ip ip-prefix qq deny 172.16.0.0 30 //默认拒绝所有
[r3]ip ip-prefix qq permit 172.16.0.0 24
[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
上述语句中,IP地址为0.0.0.0,这种形式的IP地址被称为通配地址,也即该地址能匹配任意形式的目的网络地址。因此,该语句并不关系被匹配路由的目的网络地址,但是要求路由目的网络掩码长度必须大于等于0,小于等于32,实际上这条路由相当于“允许所有”
[r3]ip ip-prefix ee deny 172.16.0.0 30
[r3]ip ip-prefix ee permit 0.0.0.0 0 less-equal 32
[r3]ip ip-prefix aa permit 0.0.0.0 0 greater-equal 32 less-equal 32
该语句将匹配掩码长度为32的任意路由,也就是所有的主机路由
[r3]ip ip-prefix aa permit 0.0.0.0 0
该语句允许的是默认路由0.0.0.0/0
[r3]ip ip-prefix hcip permit 172.16.4.0 22 greater-equal 24 less-equal 24
策略路由:针对数据层面
偏移列表属于RIP这种距离矢量型协议专用的
偏移列表属于RIP这种距离矢量型协议专用的
抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
调用
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix huawei 5
进入流量入方向接口,给其度量值增加5,metricin入; metricout出;出接口默认每次加1,如接口默认不加。
该策略为逐跳行为,效果可以叠加操作;整段路径中流量经过的多个接口均配置了度量值增加,最终的开销值为增加的总度量值
分发列表—cisco
只能够对路由信息进行过滤,而无法对LSA进行过滤
[r2-acI-basic-2000]rule deny source 34.0.0.0 0.0.0.0
过滤列表本身没有过滤能力,所以需要在抓取流量的时候使用拒绝动作
[r2-ac-basic-2000]rule permit source any //在抓取流量的时候,末尾一定要放通所有流量,否则将会把所有的流量均过滤掉,原因在于过滤策略是完全依照ACL表项进行工作的
在过滤策略中调用
[r2-rip-1]filter-policy 2000 export GigabitEthernet 0/0/0-----在进程中调用,选定入方向或出方向的接口,若不选择接口,则为全局调用,会匹配所有接口
[r2lip ip-prefix aa deny 34.0.0.0 24
[r2lip ip-prefix aa permit 0.0.0.0 0 less-equal 32
[r2-rip-1]filter-policy ip-prefix aa export GigabitEthernet 0/0/0
切记,若使用ACL定义流量,正常华为为ACL末尾隐含允许所有,但是在过滤策略中一定要手工配置允许所有。
注意,若此时没有在R1上进行过滤,而是等R1将域外的五类LSA发布仅OSPF后,在再R2的出方向或入方向,有着或是R1的出方向调用过滤策略,则不会成功。必须要在R1将路由信息转换为LSA信息之前进行调用,也就是在ASBR的入方向调用
若在R2的入方向使用过滤策略限制192.168.2.0/24路由,则R2将不会具备该路由信息,因为是在R2根据本地LSDB中的LSA信息计算出192.168.2.0/24路由后,拒绝将这条路由信息加入本地路由表中。而R3此时还具备该路由信息,原因在于R3可以正常收到所有的LSA信息,并成功计算路由信息
若将过滤策略使用在链路状态型协议中,必须使用入方向
路由策略的匹配规则:自上而下,逐一匹配,一旦匹配上则将按照对应的规则来执行动作,不再向下匹配。末尾隐含拒绝所有的规则
配置实例
192.168.1.0/24 -----过滤
192.168.2.0/24 ---修改种子度量值10
192.168.3.0/24 -----开销值类型修改为Type-1
192.168.4.0/24 -----开销值类型修改为Type-1,tag=200
12.0.0.0/24 -----不处理
抓取流量:
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0
[r2]acl 2001
[r2-acl-basic-2001]rule permit source 192.168.2.0 0
[r2lip ip-prefix aa permit 192.168.3.0 24
[r2]ip ip-prefix bb permit 192.168.4.0 24
做策略:
[r2]route-policy hcip deny node 10 ----创建一个叫做hcip的route-policy列表,且序号为10
[r2-route-policy]if-match acl 2000 ----配ACL 2000
[r2]route-policy hcip permit node 20
[r2-route-policy]if-match acl 2001
[r2-route-policy]apply cost 10
[r2]route-policy hcip permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost-type type-1
[r2]route-policy hcip permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 200
[r2]route-policy hcip permit node 50
在重发布中调用
[r2-ospf-1]import-route rip 1 route-policy hcip
[r2]display route-policy hcip-----查看路由策略内容
为什么抓取流量使用permit: 如果使用deny将拒绝流量,无法对流量进行操作为什么调用都是hcip:因为调用只能调用一张路由策略的表在做策略中:
permit:
deny:
为什么最后创建一个空的路由策略表单?
因为路由策略表单末尾隐含拒绝所有
配置指南总结
实验:
要求:
AS定义:由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合
AS划分的原因
不同的AS通过AS号进行区分,AS号存在16bit、32bit两种 IANA—互联网数字分配机构
解决方法:
运行BGP协议之间的设备传递路由信息,原因在于若传递拓扑信息,会导致路由器负载过高,并且会让对端AS看到本端的拓扑信息,引发安全问题。
BGP需要传递所有的通过BGP学习到的路由信息,并且运行了BGP协议的路由器,所维护的路由表是包含了整个互联网的所有路由信息的。
BGP基于TCP,只要能够建立TCP连接,就可以建立BGP连接触发式更新,不再进行周期更新
只传递路由信息,而不会暴露AS内的拓扑信息。不传递拓扑的原因
无类别的路径矢量型协议
IGP协议的主要任务是将AS内部的未知网段信息计算获取到,而BGP则主要是将IGP协议计算出来的路由信息进行搬运和传递,并不去计算路由
IGP协议特点
可控性
因为在重发布的过程中,由于会抹除原有度量值会导致出现选路不佳的情况。而BGP为了弥补这个不足点,直接舍弃了开销值。取而代之的是设计了很多的路径属性。
可靠性
BGP因为只有触发更新,而不存在周期更新,所以需要确保其可靠性,使用TCP为传输层协议。端口号179----BGP会话的建立是手工指定的(单播形式)
IGP协议不选择使用TCP的原因:
AS-BY-AS
BGP将一个AS看作是一个整体
BGP协议不支持负载均衡
IGP协议追求 | 收敛速度快 | 选路佳(无环路) | 占用资源少 |
---|---|---|---|
EGP协议追求 | 可控性 | 可靠性 | AS-BY-AS |
BGP因为传输层使用的是TCP协议,所以只要在TCP协议可以正常建立会话的基础上就可以完成BGP的建邻工作。
BGP支持非直连建邻 (网络可达) -----BGP的非直连建邻是建立在IGP (静态)之上的
BGP存在两种对等体关系类型:EBGP、IBGP
EBGP对等体关系
IBGP对等体关系
Marker:全1 代表进入BGP部分
Length:报文总长度
作用:用来要求对等体重新发送指定地址族的路由信息
一般为本端修改了相关路由策略之后让对方重新发送更新报文,本端执行新的路由策略重新计算BGP路由。
双方均支持路由刷新功能。
OSPF中的hello报文—可以周期性的发现、建立和保活邻居关系
是TCP建立之后发送的第一个报文,用于建立BGP对等体之间的连接关系
BGP需要协商的参数
作用:用来周期保活
没有数据字段,仅有报文头部
除了保活机制外,keepalive报文还在open报文协商参数时,临时充当确认报文----确认open报文中的参数是否认可
作用:用于在对等体之间传递路由信息,可以用于发布、撤销路由----携带需要传递的路由信息
需要携带的参数主要就是目的网络号、子网掩码信息和路径属性
纯纯的告警机制,当BGP检测到错误状态时(对等体关系建立时、建立之后都可能发送该报文),就会向对等体发送该报文,告知对端错误原因。之后BGP连接会立即中断
Error code: 差错码
Error subcode: 差错子码
Data(可变长度): 数据可以通过抓包发现错误是什么原因,进而进行修复
BGP的状态机仅描述的是对等体关系建立过程的状态变化。BGP可以将邻居建立过程和BGP路由收发 过程分开。
IDLE-----空闲状态
Connect-----连接状态
Active状态----尝试状态
OpenSent-----发出本地的Open报文
OpenConfirm----等待确认状态
Established----连接建立完成状态
AS_Path属性----记录AS路径的一个属性
BGP规定,当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体-----IBGP水平分割机制
由于BGP协议可以非直连建邻,所有导致BGP协议可能出现跨越未运行BGP协议的设备,导致BGP路由传递后控制层面可达。但是数据层面,流量流经未运行BGP协议的设备时,无法通过,形成路由黑洞。
避免路由黑洞的方式—BGP同步更新规则----当一台路由器从自己的IBGP对等体学习到一条BGP路由时,他将不能使用该条路由或把这条路由信息通告给自己的EBGP对等体,除非它又从IGP协议学习到这条路由,也就是要求IBGP路由与IGP路由同步
在华为数通设备上,BGP同步更新规则缺省是被关闭的,并且华为也不允许开启BGP同步规则
解决方案
1.启动BGP协议
[r1]bgp 100 -----启动BGP进程,且标准本设备所在的AS号
2.设置RID
[r1-bgp]router-id 1.1.1.1
3.配置BGP对等体,并指定对等体所在的AS号
[r1-bgp]peer 12.0.0.2 as-number 200
双向配置
[r1]display bgp peer //查看邻居表
[r1]display tcp status //查看tcp连接状态
发起方以一个随机端口向接收方的179发送TCP SYN报文,接收方开启179端口才能回包
由于直连接口建立对等体时,若链路终端,则会中断BGP会话。故在实际工程中,一个AS内部正常具有较为复杂的网络拓扑结构,设备到设备之间存在大量的备份和负载均衡路径,因此建立IBGP邻居关系时,建议使用双方的环回接口来作为源/目IP地址
[r2]bgp 200
[r2-bgp]peer 3.3.3.3 as-number 200
[r3]bgp 200
[r3-bgp]rou
[r3-bgp]route-select
[r3-bgp]router-id 3.3.3.3
[r3-bgp]pe
[r3-bgp]peer 2.2.2.2 as
[r3-bgp]peer 2.2.2.2 as-number 200
手工建立邻居关系时,所指定的建邻的IP地址必须和收到的数据包中的源IP地址相同才能正常建立邻居关系。否则,邻居关系建立失败
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 ---将R2发送的数据包的源P地址修改为loopback 0接口的IP地址
抓包后会发现一个问题,就是BGP此时仅建立了一次TCP连接,就完成了BGP会话的建立。这也就意味着BGP会话的建立仅仅是依靠TCP会话,而并没有对这个TCP会话建立的方式有要求,该TCP会话是由谁发起的,谁是客户端,谁是服务端并不影响BGP对等体的建立-------在BGP协议中,TCP会话建立两次完全是多余的,而建立两次的原因也是因为双方路由器均会指定对等体(均将自己看做是客户端),从而发起建立连接请求
而在当下场贵中,R3作为TCP会话的服务端,已经认知到了自己本地已经有接口3.3.3.3,与自己本地配置的对等体建立了连接,所以本地也不会在发送所谓的TCP连接建立请求。
一般情况下,双方均要修改本地数据包的源IP地址。
若EBGP对等体之间存在多条直连链路时,才可使用环回接口建立对等体关系。
1、实现路由可达
ip route-static 5.5.5.5 255.255.255.255 45.0.0.5
ip route-static 4.4.4.4 255.255.255.255 45.0.0.4
2、对等体配置
[r4]bgp 200
[r4-bgp]peer 5.5.5.5 as-number 300
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r5]bgp 300
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 200
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
因为EBGP之间的数据包的TTL值为1,故此时虽然可以建立TCP连接和BGP会话,但是路由器会认为该 连接和会话存在异常,在BGP对等体建立完成后,发送notification报文断开连接,从而会产生一个现象—状态机震荡。
解决方法:修改TTL值
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
如果未标明参数值,则代表将TTL值修改为最大值255
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 2
两边均要修改,不然无法建立对等体关系,还存在状态机震荡。
路由发布----对于BGP而言,只要是路由表中存在的路由信息,都可以通过network命令发布。
[r1-bgp]network 1.1.1.1 32 目标网络号 路由表中的掩码信息
注意:BGP使用network命令宣告时,该路由信息必须与全局路由表中存在的路由项一致。
[r1-bgp]display bgp routing-table ---查看BGP表
network-----目标网络号及掩码 nexthop-----下一跳,谁发送的路由信息,则下一跳就写谁;如果是本地发布的路由,则下一跳写0.0.0.0
状态码:
>
i
对于R3而言,R2传递来的路由信息是不可用且不优的,原因在于下一跳属性未修改,无法递归。
[r2-bgp]peer 3.3.3.3 next-hop-local
将路由传递给自己的3.3.3.3邻居时,将路由中的下一跳属性该为本地。
总结一下配置逻辑
[r2-bgp]import-route ospf 1
ONG----起源码属性----标识一条路由信息的起源类型
该方法仅针对重发布的路由信息生效。 华为设备默认关闭自动聚合功能。
[r1-bgp]summary automatic 开启自动聚合功能
自动聚合功能是以主类聚合的方式进行的。而主类聚合方式会导致一个结果就是产生路由黑洞。所以 也会生成一条去往空接口的防环路由。这也是华为设备关闭自动聚合功能的原因。
状态码S-----代表抑制,被抑制的路由信息将不再加表和传递。
特点:
关键字 | 参 数 | 缺陷 | 优势 |
---|---|---|---|
aggregate | / | 无法抑制明细路由,导致汇总 操作并没有减少路由条目;汇 总路由丢失了明细路由的路径 属性。 | 可以灵活指定汇总路由的目的网络掩码 长度;可以在非直连上汇总,前提条件 是非直连设备上具备的明细路由可用且 优。 |
detailsuppressed | 在某种情况下,可能还需 要部分明细路由进行传 输,而该命令会抑制所有 明细路由 | 可以抑制明细路由的传输 | |
suppresspolic | 抓取流量时,需要使用 permit操作,因为抑制策 略是取反操作。 | 可以灵活性的选择通告某些明细路 由 | |
as-set | 仅继承了AS-path属性 | 可以继承明细路由的路径属性 |
[r3-bgp]aggregate 172.16.0.0 20
手工聚合会生成一条指向空接口的防环路由,并且掩码可以随意汇总,但是手工聚合没有将明细路由 进行抑制。
手工聚合只有在所有明细路由均无效时,才会撤销。并且,手工聚合可以灵活调整掩码信息,只要还 存在一条明细路由,手工聚合后的路由就是可用且优的。
手工聚合命令在配置后,1、检测本地路由表中是否有聚合路由的可用明细路由。2、若有则在本地路 由表中发布一条指向空接口的防环路由;若无则该命令无效;3、将汇总的防环路由发布到
BGP中 BGP的手工聚合可以在非直连设备上进行,只要本地存在这些明细路由,且明细路由可用且优就可以 进行聚合操作。
聚合路由不会继承明细路由的属性,导致AS_Path属性丢失,可能会引发环路问题
[r3-bgp]aggregate 172.16.0.0 20 detail-suppressed -----抑制所有明细路由
抑制策略,通告172.16.0.0/20的汇总路由时,将172.16.1.0/24的明细路由也通告出去。
在该策略中,会将路由策略中所允许的流量给抑制。也就是说,实际上是与路由策略的玩法相反。
1、抓流量
[r3]ip ip-prefix aa deny 172.16.1.0 24
[r3]ip ip-prefix aa permit 172.16.0.0 20 greater-equal 24 less-equal 24
2、配置策略
[r3]route-policy aa permit node 10
[r3-route-policy]if-match ip-prefix aa
3、调用
[r3-bgp]aggregate 172.16.0.0 20 suppress-policy aa ----策略名称即为路由策略的名称
as-set -----汇总路由会继承明细路由的路径属性
as-set属性在继承多个明细路由属性时,会将继承的不同的多个明细路由的AS_Path属性使用{}括起
来,在选路时,当做一个来看,而在防环时,将观察所有的AS号。
attribute-policy-----该参数可以设置聚合路由的大部分路径属性
[r1]route-policy bb permit node 10
[r1-route-policy]apply as-path 1 2 3 additive
[r1-route-policy]apply local-preference 10
[r1-route-policy]apply cost 100
[r1-route-policy]apply preferred-value 20
[r1-bgp]aggregate 172.16.0.0 20 detail-suppressed attribute-policy bb
origin-policy ----设置某些明细路由为汇总路由宣告的触发条件
[r1]ip ip-prefix aa permit 172.16.1.0 24
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa
[r1-bgp]aggregate 172.16.0.0 20 origin-policy aa
Atomic-Aggregate
Aggregator
RFC4456
IBGP水平分割:路由器无法将从IBGP对等体学习到的路由信息传递给其他IBGP对等体。
IBGP水平分割解决了AS内部环路的问题,但是产生了新的问题-----BGP路由在AS内部只能传递一跳,会
造成IBGP路由无法被正常传递,造成通讯障碍。
路由反射器的配置是在充当反射器的BGP路由器上完成的。而路由反射器的客户设备并不需要做任何
额外的配置,它甚至不知道自己成为了某个路由反射器的客户。
路由反射器与所有的客户或非客户建立IBGP对等体关系,而客户之间则无需建立IBGP对等体关系。这
样就优化了网络中的IBGP对等体关系数量。
[r3-bgp]peer 2.2.2.2 reflect-client -----1、指定2.2.2.2为自己的客户;2、并说明自己是RR
路由反射器角色可能会根据处于不同的反射簇时充当不同的角色。一般会设置传递路由信息的一方为RR
的客户端。
当一条BGP路由被路由反射器反射给其他路由器时,如果该条路由已经携带了起源ID属性,则保留该
属性,否则路由反射器为这条路由添加起源ID属性,并将该属性值设置为该路由在本地AS内的始发路由
器的RID值
当路由器从BGP对等体收到一条IBGP路由,并且该路由所携带的起源ID属性与自己的BGP RID相同
时,它将意识到该路由是从自己这里发送到本AS内部的,且又被发送回来了,此时本地将忽略这条路由
的更新。如此消除环路隐患
当一条BGP路由被路由反射器执行反射时,如果该条路由已经存在Cluster-List属性,那么路由反射
器将本地的Cluster-ID附加到路由的Cluster-List属性中,而如果该路由没有Cluster-List属性,那么路
由反射器为其创建,并将Cluster-ID加入到Cluster-List中。
当一台路由反射器收到一条BGP路由后,若发现该路由携带Cluster-List属性,并且Cluster-List属性
中包含着自己的Cluster-ID时,会忽略关于这条路由的更新。-----类似于AS-Path属性的防环原理。
属性 | 作用 |
---|---|
Origin-ID | 用于防止集群内产生路由环路 |
Cluster-List | 用于防止集群间产生路由环路 |
注意:
由于RR打破了IBGP对等体收到的路由不能传递给其他IBGP对等体的限制,所以同一集群内的RR之间可能存在环路。这就需要将同集群内的所有RR的Cluster-ID设置为相同值,用以避免RR之间的路由环路。
[r3-bgp]reflector cluster-id 10.10.10.10 ----设置集群的族ID,只能在反射器上进行配置,该命令为覆盖式命令,配置后,会覆盖掉之前路由器选择出来的cluster-ID
分级路由反射器
同级路由反射器
注意: 在同级路由反射器中,RR之间属于Non-Client的IBGP Full Mesh结构.
多集群设计不仅提供了针对物理链路失效带来的物理冗余,同时提供针对客户端和RR之间的IBGP会话失效的逻辑冗余。
联邦的思想是在一个大的AS内创建若干个小的AS,使得AS内部出现一种特殊的EBGP对等体关系,从而解决IBGP路由在AS内部传递的问题
若使用联邦将AS 3456划分为多个,则AS 3456被称为联邦AS,而划分的小的AS,称为成员AS.
由于成员AS号是由联邦AS号的管理者进行分配的,所以不能使用公有AS号,而是使用私有AS号 (64512-65534)
成员AS之间建立的EBGP对等体关系是一种特殊的EBGP对等体关系,他们之间仅遵循EBGP对等体的路由传递原则,但是不能像正常的EBGP对等体一样修改路由的路径属性;而从传递的内容角度看,依然需要遵循AS-BY-AS原则,因为在宏观上,他们依然处于同一个AS中。—联邦AS内部的成员AS对于联邦外部并不可见
[r1]bgp 100
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 10.1.13.3 as-number 3456 ----使用联邦AS号建立BGP对等体,原因在于对于R1而
言,并不需要知晓对端AS中的成员AS内容
[r3]bgp 64512 ---联邦成员设备启动BGP进行需要使用成员AS号启动
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 3456 ----定义联邦AS号
[r3-bgp]peer 10.1.13.1 as-number 100
[r3-bgp]peer 4.4.4.4 as-number 64512 ----联邦成员之间建立IBGP对等体关系需要使用成员AS号
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 next-hop-local
[r4]bgp 64512
[r4-bgp]router-id 4.4.4.4
[r4-bgp]confederation id 3456
[r4-bgp]peer 3.3.3.3 as-number 64512
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r4-bgp]confederation peer-as 64513 -----在需要建立联邦的EBGP对等体关系的设备上指定与自
己建邻的成员AS号,若有多个可以一次指定
[r4-bgp]peer 5.5.5.5 as-number 64513
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r4-bgp]peer 5.5.5.5 ebgp-max-hop ----修改TTL值,建议修改为最大值
[r5]bgp 64513
[r5-bgp]router-id 5.5.5.5
[r5-bgp]confederation id 3456
[r5-bgp]confederation peer-as 64512
[r5-bgp]peer 4.4.4.4 as-number 64512
[r5-bgp]peer 4.4.4.4 con l 0
[r5-bgp]peer 4.4.4.4 ebgp-max-hop
[r5-bgp]peer 6.6.6.6 as-number 64513
[r5-bgp]peer 6.6.6.6 con l 0
[r5-bgp]peer 10.1.25.2 as-number 200
[r5-bgp]peer 6.6.6.6 next-hop-local
[r5-bgp]peer 4.4.4.4 next-hop-local ----联邦内部传递不修改属性,故需要手工修改下一跳为本地
[r6]bgp 64513
[r6-bgp]router-id 6.6.6.6
[r6-bgp]confederation id 3456
[r6-bgp]peer 5.5.5.5 as-number 64513
[r6-bgp]peer 5.5.5.5 connect-interface LoopBack 0
使用EBGP水平分割原则。当BGP路由在联邦内传递时,联邦成员AS号才会出现在AS_Path属性中,当
路由传出联邦AS时,成员AS号才被移除。联邦的成员AS号会用()括起来。
路由反射器 | 联邦 |
---|---|
不需要修改现有的网络拓扑,兼容性较好 | 需要改变逻辑拓扑结构 |
配置简单,只需要对反射器设备进行操作,且客户 端不知道自己是客户端 | 所有设备均需要进行配置,并且要求路由 器具备联邦的功能 |
集群与集群之间仍然需要全连接 | 联邦的子AS之间是特殊的EBGP连接,不 需要全连接 |
适用于中大型网络 | 仅适用于大型网络 |
一般在大型BGP网络中,路由反射器和联邦是可以同时使用的。原因在于: 联邦中的成员AS若为单线连接,只能存在两台设备,若单线存在多台设备,又会发生联邦AS内部的IBGP水平分割现象,故需要使用路由反射器弥补缺陷。
对于BGP而言,BGP路径属性描述了该条路由的各项特征,同时,路由所携带的路径属性也将在某些场景下影响BGP路由优选的决策。
属性名 | 类型 |
---|---|
AS_Path(AS路径属性) | 公认强制 |
Origin(起源属性) | 公认强制 |
Atomic_Aggregate | 公认自由决定 |
Aggregator | 可选传递 |
originator-ID(起源ID) | 可选非传递 |
Cluster-List(集群列表) | 可选非传递 |
Next-Hop(下一跳属性) | 公认强制 |
Local_Preference(本地优先级) | 公认自由决定 |
MED(多出口区分属性) | 可选非传递 |
Preferred-value(优选值) | 华为的私有属性 |
Community(团体属性) | 可选传递 |
当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:
丢弃下一跳不可达的路由
选路的前提条件: 任何一条BGP路由在参与优选之前都必须先经过检查。设备会检查BGP路由的next-hop是否可达(在本地路由表中检查),如果不可达,则BGP路由被视为不可用,该路由将无论如何不会被优选,也不会被设备使用或通告给其他对等体。在优选规则之前,还需要保证所有路由的优先级相同。也就是255。
PV属性,是华为的私有属性,可以看做为权重,数值越大,对应的路由优先级越高。默认值为0。
因为PV值是所有选路原则中的第一条原则,所以,该属性是本设备上选路最方便的一个属性。------该
属性只有在本地生效,无法传递给任何BGP对等体。
方式一:全局修改
[r4-bgp]peer 10.1.34.3 preferred-value 60000 ----该命令用于将对等体10.1.34.3传递过来的路
由的PV值在本地修改为60000
该命令是全局修改方式,可能会导致R3压力过大,最终设备宕机。而我们更希望实现的效果是负载分
担。----让不同的流量走不同的线路,分担单一线路的数据压力。
方式二:精细化修改
1、抓取流量
[r4]ip ip-prefix PV permit 10.10.0.0 16
2、配置策略
[r4]route-policy PV permit node 10
[r4-route-policy]if-match ip-prefix PV
[r4-route-policy]apply preferred-value 100
[r4]route-policy PV permit node 20
3、调用策略
属性名称 传播范围 默认值 评判标准
preferred-value 不传播 0(0-65535) 越大越优先
[r4-bgp]peer 10.1.34.3 route-policy PV import ----因为该属性为私有不传递属性,故调用时,
只能在本地的入方向调用,来影响本地的BGP路由表。
属性名称 | 传播范围 | 默认值 | 评判标准 |
---|---|---|---|
preferred-value | 不传播 | 0(0-65535) | 越大越优先 |
该属性的默认值为100,并且LP属性只能在IBGP对等体之间传递,而不能在EBGP对等体之间传递。
如果路由在传递到本地时并不携带LP属性,则BGP在决策时,使用缺省值来计算。该属性越大越优。该
属性的传递范围为本AS内部。该属性是AS内部优选路由的最佳选择。
方法一:全局修改
[r3]bgp 234
[r3-bgp]default local-preference 200 ---修改全局默认LP值,R3之后发给IBGP对等体的路由的
LP属性都将被修改为200
方法二:精细化修改
1、抓取流量
[r4]ip ip-prefix LP permit 10.11.0.0 16
2、做策略
[r4]route-policy LP permit node 10
[r4-route-policy]if-match ip-prefix LP
[r4-route-policy]apply local-preference 200
[r4]route-policy LP permit node 20
3、调用
[r4-bgp]peer 3.3.3.3 route-policy LP import
AS_Path属性
一台路由器将BGP路由通告给自己的EBGP对等体时,会将本地的AS号插入到该路由原有的AS_Path之前.
作用:
AS_Path属性最开始是空的列表,当该路由被通告给一个EBGP对等体邻居时,才会被加上一个AS号,在每次经过一个AS时,都会在AS Path属性的最前端增加最新的AS号。而该属性在IBGP对等体之间传播时,这条属性是不会发生改变的。
1.抓流量
[r1]ip ip-prefix AS permit 10.13.0.0 16
2.做策略
[r1]route-policy AS permit node 10
[r1-route-policy]if-match ip-prefix AS-----覆盖操作
[r1-route-policy]apply as-path 11 22 33 overwrite
[r1]route-policy AS permit node 20
3.调用
[r1-bgp]peer 10.1.13.3 route-policy AS export
方法二
1.抓取流量
[r3]ip ip-prefix AS permit 10.13.0.0 16
2.做策略
[r3]route-policy AS permit node 10
[r3-route-policy]if-match ip-prefix AS
[r3-route-policy]apply as-path 11 22 33 additive
[r3]route-policy AS permit node 20
3.调用
[r3-bgp]peer 10.1.13.1 route-policy As import
additive参数
[r3-route-policy]apply as-path none overwrite 将AS_Path属性列表更改为空表
overwrite重写参数 | additive添加参数 | |
---|---|---|
出方向 | 先重写,在添加上发出者的AS号 | 先添加,再增加发出者的AS号 |
入方向 | 直接覆盖原有的所有内容 | 直接在原本的AS之前添加内容 |
强调一下,AS_Path属性是BGP非常重要的属性,EBGP路由的防环依赖于AS_Path属性的正常工作,
因此,如果出于影响路由优选的目的修改AS_Path属性,操作需要非常慎重,一般情况下,不建议修改
AS_Path属性值。若不得不修改该参数,建议添加或覆盖的AS号为曾经出现过的AS号,这样即加长了
AS_Path长度,又对网络的影响降低到最小。
[r3-bgp]bestroute as-path-ignore ----让路由器在选路时,忽略对AS_Path属性的检查。
该命令经常会被使用在实现BGP负载分担时。
属性名称 | 传播范围 | 默认值 | 评判标准 |
---|---|---|---|
AS-Path | BGP所有对等体之间 | 该属性为列表,初始为空 | 记录的数据越少越好 |
ONG**----起源码属性----标识一条路由信息的起源类型
1、抓流量
[r2]ip ip-prefix aa permit 10.14.0.0 16
2、做策略
[r2]route-policy aa permit node 10
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply origin egp 23
[r2]route-policy aa permit node 20
3、调用
[r2-bgp]peer 10.1.24.4 route-policy aa export
MED值是继承了IGP协议的度量值
MED属性值可以传递给自己的EBGP对等体,并且该EBGP对等体可以将该路由传递给自己的IBGP对等体,并且因为AS-BY-AS规则,该属性在IBGP对等体之间传递时不变
MED属性可以干扰访问本地的流量的走向,也就是说本AS的策略调整可以影响到别的AS对路径的判断,这是在BGP选路中唯一一个可以影响到其他AS的属性。
BGP规定,非本地始发的BGP路由信息,在传递给自己的EBGP对等体时,将MED值修改为0。
边界设备均发布路由信息,避免次优路径
总结:
MED值默认初始值并不为0,而是继承了路由表中该路由条目的开销值,所以,MED参数可以反映到达目的网段在本AS内部的开销大小,通过这个参数,别的AS的流量在进入本AS时可以选择开销较小的入口进入。通过修改该属性,可以影响其他AS的流量流入本AS路径。
若本地通过IBGP对等体学习到一条BGP路由,其中存在MED值,之后需要将这条路由在传递给本地的EBGP对等体时,则将MED值修改为0。这种设置将有可能造成选路不佳的情况,所以,建议,如果存在多组边界设备需要将路由发送给EBGP对等体关系时,需要将所有的路由信息均发布。
MED的传播范围只能是在发布该路由的AS以及他直连的AS内部。
注意:MED值影响的是别的AS的流量通过多个出口进入到本AS内部,如果流入的不是同一个AS,也就是说收到的路由条目中的AS_Path属性最左边的AS号不同,则将不比较第六条,直接比较第七条。
[r4-bgp]default med 10 ----全局修改MED值
该命令只对本地聚合路由或者引入的路由有意义,并且是在传递给EBGP对等体时才会携带
出方向---R2
1、抓流量
[r2]ip ip-prefix MED permit 10.14.0.0 16
2、做策略
[r2]route-policy MED permit node 10
[r2-route-policy]if-match ip-prefix MED
[r2-route-policy]apply cost 20
[r2]route-policy MED permit node 20
3、调用
[r2-bgp]peer 10.1.24.4 route-policy MED export
属性名称 | 传播范围 | 默认值 | 评判标准 |
---|---|---|---|
MED | 本AS及直连AS内部 | 继承全局路由表中的开销值 | 越小越优 |
形成BGP等价负载分担的条件是BGP选择路由的策略的1至8条规则中需要比较的属性完全相同
[r4-bgp]maximum load-balancing ?
INTEGER<1-8> Specify maximum equal cost routes
ebgpEBGP routes as equal cost route
ibgpIBGP routes as equal cost route
[r4-bgp]maximum load-balancing 2
配置BGP最大负载均衡条目数量为2,默认情况为1,所以BGP默认情况下不存在负载均衡,而如果携带了ebgp或者ibgp参数,则代表对某种方式学习到的路由进行负载均衡,不携带该参数则代表全局负载均衡。
R4实现了负载均衡后,无论是否配置了peer next-hop-local命令,本地设备都会向自己的IBGP对等体发布路由时,将下一跳修改为本地。
实现负载均衡需要满足的条件
[r4-bgp]load-balancing as-path-ignore ----配置路由在形成负载分担时,不需要比较AS_Path属性
一般情况下不建议使用
[r2]ip ip-prefix aa permit 172.16.1.0 24
[r2]route-policy aa deny node 10
[r2-route-policy]if-match ip-prefix aa
[r2]route-policy aa permit node 20[r2]bgp 200
[r2-bgp]peer 10.1.23.3 route-policy aa export //出接口
前缀列表进行过滤
[r3]ip ip-prefix aa deny 172.16.2.0 24[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
[r3]bgp 300[r3-bgp]peer 10.1.23.2 ip-prefix aa import
使用filter-policy来过滤
[r2]acl 2000
[r2-acl-basic-2000]rule deny source 172.16.3.0 0
[r2-acl-basic-2000]rule permit
[r2-bgp]peer 10.1.12.1 filter-policy 2000 import
一条路由条目中,可以标识多个社团属性
尝试在R1身上打上社团属性标记
1.抓流量
[r1]ip ip-prefix aa permit 1.1.1.1 32
2.做策略
[r1]route-policy com permit node 10
[r1-route-policy]if-match ip-prefix aa
[r1-route-policy]apply community no-advertise
3.调用
[r1-bgp]peer 12.0.0.2 route-policy com export
[r1-route-policylapply community no-advertise----开启社团属性的传递性,该命令需要在所有设备上开启
社团属性的应用场景
1.设定策略,定义社团属性
[r1]route-policy com-1 permit node 10
[r1-route-policy]apply community 100:111
[r1]route-policy com-2 permit node 10
[r1-route-policy]apply community-100:222
2.在发布路由时调用策略
[r1-bgp]network 172.16.1.0 24 route-policy com-1
[r1-bgp]network 172.16.2.0 24 route-policy com-1
[r1-bgp]network 172.16.3.0 24 route-policy com-2
[r1-bgp]network 172.16.4.0 24 route-policy com-2
3.开启社团属性传播功能
[r1-bgp]peer 10.1.12.2 advertise-community
[r2-bgp]peer 10.1.23.3 advertise-community
4.抓取流量(使用社团过滤器Community-Filter)
[r2]ip community-filter 1 permit 100:111
[r2]ip community-filter 2 permit 100:222
5.做策略
[r2]route-policy com deny node 10
[r2-route-policy]if-math community-filter 1
[r2]route-policy com permit node 15
[r2-route-policy]if-match community-filter 2
[r2-route-policy]apply community no-export additive .----additive参数是表示在之前的社团属性后直接添加,否则会直接覆盖
[r2]route-policy com permit node 20
6.调用策略
r2-bgp]peer 10.1.12.1 route-policy com import
过滤掉从AS 100始发的所有BGP路由
该过滤器与正则表达式共同搭配使用,可以完成从AS-Path属性中匹配BGP路由
目标:
禁止R3始发与AS 100的路由传递给R5
R4将始发于AS 200的路由在传递给R5时,修改开销值
1、抓取流量
[r3]ip as-path-filter 1 deny _100$ //_代表逗号空格
[r3]ip as-path-filter 1 permit .* //*代表匹配所有,该过滤器末尾隐含拒绝所有,不管写多少次的deny,最后都要设置一次permit
2.调用
[r3-bgp]peer 10.1.35.5 as-path-filter 1 export
1.抓取流量
[r4]ip as-path-filter 1 permit ^200$ //^代表行首
2.做策略
[r4]route-policy aa permit node 10
[r4-route-policy]if-match as-path-filter 1
[r4-route-policy]apply cost 10000
[r4]route-policy aa permit node 20
3.调用
[r4-bgp]peer 10.1.45.5 route-policy aa export
[r4]display ip as-path-filter ----查看过滤器详细配置
dis ip community
注意:as-path-filter 过滤器抓取流量时,需要看的是本地的路由条目属性
对于边界AS设备,无需学习明细路由,因此可以配置下发缺省
[r1-bgp]peer 12.0.0.2 default-route-advertise ---BGP下方缺省路由,无论本地的路由表中是否存在缺省路由,都会向对等体下发一条下一跳为本地的缺省路由,从而减少网络中路由数量,节省对等体的设备资源
缺省情况下,BGP协议的优先级为255,优先级越小,则路由优先级越高
优先级分为三种
[r2-bgp]preference 140 130 100 ---分别修改EBGP、IBGP和本地聚合路由的优先级
[r2-bgp]timer connect-retry 10 全局修改
[r2-bgp]peer 23.0.0.3 timer connect-retry 20 --- 对等体修改
虽然不影响对等体关系建立,建议双向修改
当BGP应用于复杂的网络环境时,路由震荡频繁,为了防止频繁的路由震荡带来的不利因素,BGP使用路由衰减来抑制不稳定的路由。
路由震荡会导致消耗大量的带宽资源和CPU资源,严重会影响到网络的正常工作,甚至设备宕机。
路由震荡:路由添加又撤销的过程
惩罚值:越高,路由越不稳定,到达抑制阈值后不学该路由 默认16000
半衰期:每过一个半衰期,惩罚值衰减一半 默认15min
当惩罚值回到再使用阈值时重新学习该路由 默认750
抑制阈值:默认2000
[r1-bgp]dampening 1 10000 15000 20000 分别为半衰期、再使用闯值、抑制闽值、惩罚值上限
[r1]display bgp routing-table dampening parameter ---查看BGP衰减参数[r1]display bgp routing-table dampened ---查看惩罚路由
[r1-bgp]timer keepalive 1 hold 3 ---建议两端均修改,若不一样断开重连后会自动协商一致
[r1]display bgp peer verbose //查看邻居详细信息
[r1-bgp]peer 12.0.0.2 route-update-interval 1 ---修改路由更新时间
该定时器只对同一地址族的相同前缀的路由起作用。
华为体系中,缺省情况下,IBGP对等体更新报文定时器为15S,EBGP为30S.
peer 12.0.0.2 password simple 123456
[r2-bgp]peer 12.0.0.1 password cipher 123456
simple和cipher关键字表示密码在本地配置文件的保存方式为明文或密文,而不是指密码在传输是使用明文还是密文,密码在传输时统一使用MD5形式存放在TCP的选项字段中。
方式 | 优点 | 缺点 |
---|---|---|
每个ISO只发布缺省路由 | 实现简单,对路由器占用资源少,管理容易 | 不能对不同目的网段实施灵活的策略,实现负载分担困难 |
每个ISP发布一条缺省路由和部分明细路由 | 即可以实施丰富的路由策略,还可以节省路由器系统资源 | 但是对于大量未知的路由,不能实现最佳路径的选路,而且该方法配置相对复杂 |
每个ISP发布全部明细路由 | 较常用的部署方式,可以实时最丰富的的路由策略,容易实现负载分担,对于每一个目的地都可以找到最佳路径 | 占用大量资源,对设备性能要求高,维护困难。 |