IGP:内部网络协议(OSPF ISIS),园区内部,运营商内部
EGP:外部网络协议(BGP),不同协议之间使用对接
为什么IGP协议不能用在企业中间?
IGP协议是有一种算路机制的,基于SPF算法防环,如果在多个公司之间部署那么他们传递的路由,统一的全部都要计算,如果把所有的路由算出来设备的压力会非常大,处理性能会降低,
广域互联:把所有路由都学习到然后再传递给某个公司,比如说公司A比如说公司B,再由公司A来决定你需要什么路由
如果用了OSPF或者ISIS中间的设备就拥有不了这些所有信息,达不到要实现的目的
- 早期,EGP(Exterior Gateway Protocol,外部网关协议)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。
- BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。
AS的概念
为方便管理规模不断扩大的网络,网络被分成了不同的AS(Autonomous System,自治系统)。
A是AS1 B是AS2 中间互联的是AS3
OSPF、IS-IS等IGP路由协议在组织机构网络内部广泛应用,随着网络规模扩大,网络中路由数量不断增长,IGP已无法管理大规模网络,AS的概念由此诞生。
AS指的是在同一个组织管理下,使用统一选路策略的设备集合。
不同AS通过AS号区分,AS号存在16bit、32bit两种表示方式。IANA负责AS号的分发。
当不同AS之间需要进行通信时,在AS之间应使用何种路由协议进行路由的传递?
- IANA(Internet Assigned Numbers Authority,因特网地址分配组织):IAB(Internet Architecture Board,因特网体系委员会)的下设组织。IANA授权NIC( Network Information Center,网络信息中心)和其他组织负责IP地址和域名分配,同时,IANA负责维护TCP/IP协议族所采用的协议标识符数据库,包括自治系统号。
- 在长度为16bit的AS号表示方式中:64512-65534为私有AS号,在长度为32bit的AS号表示方式中:4200000000-4294967294为私有AS号。
一个公司,一个企业,或者说一个家庭网络都可以认为是一个AS
BGP协议(边界网关协议)
背景:
1.网络的不断发展,导致需要存在跨地址位置较远的网络互联
2.如果使用IGP协议做为互联的连接协议,不能满足远距离路由传输和大量路由学习的能力
3.设计了EGP协议来完成路由信息的学习与传递
4.EGP协议设计比较简单,没有防环、控制等相关的机制
5.BGP协议就是为了替代EGP协议的
EGP和IGP是一个大的概念 EGP里面包含EGP 和BGP
AS基本概念:
1.AS:自治系统 (表明的是一个范围网络)
1.具有统一的管理机构,相同的路由管理策略 说人话:同一个公司管理的学习的外部路由都是一样的就可以称之为AS 类似于OSPF的区域
2.每一台设备只能属于一个AS
3.AS的编号默认16 bit长度,可以增加为32 bit长度 2的n次方
4.AS的编写:
1.书写的编写 (0-42.9亿+)
[AR1]Bgp 100
2.AA.NN的编写(1-65535.0-65535)
5.在长度为16bit的AS号表示方式中:64512-65534为私有AS号 0-65535
6.在长度为32bit的AS号表示方式中:4200000000-4294967294为私有AS号
在正常的网络搭建中运营商会直接给出AS的对接号,在企业内部就使用私网的AS号选出一个值
配置的AS号一致那么就是一个AS,一个BGP路由器只能属于一个AS
As的范围,根据自己的需求范围,要多大就定义多大的范围,例如:你的公司要多大的网络就定义多大的AS范围,如果规模较大可定制多个AS范围
BGP:把这个公司的路由(AS1)搬到另一个公司(AS2),只是传递路由,不会生成拓扑信息,这条路由从哪来有谁产生,你BGP不需要知道
BGP基于TCP,只要能够建立TCP连接即可建立BGP。只传递路由信息,不会暴露AS内的拓扑信息。
说人话:只要能通信就能建立BGP,也就是说不管我们相距多远,只要A能访问到B我们之间就能建立BGP,不管中间经历多少台设备只要AS A和AS B之间能通就能建立BGP,就能传递路由
触发式更新,而不是进行周期性更新。说人话:只要我激发了某个信息,达到了某个条件,会导致它做更新而不是和OSPF一样周期性的传递, 更新了一条路由发送一条路由,不会把全部的重新发出
BGP的基本功能:
1.基于TCP,使用单播报文进行通信,且TCP连接正常建立,默认BGP也会正常建立
2.只传递路由信息,不会发送拓扑信息,即BGP不会计算拓扑,只学习完整的路由信息 说人话:你底层是什么样我根本不知道,我只传递路由,BGP就是跨链路通信,也需要底层通信
3.触发式路由更新,不会周期更新,即第一次全量发布路由,后续只做撤销或者更新路由的发布,没有时间值的概念,报文中携带的字段来决定,
携带的某一个字段是visthent就是更新是upelate就是撤销
- BGP的特点:
- BGP使用TCP作为其传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新。
- BGP能够承载大批量的路由信息,能够支撑大规模网络。
- BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导对等体按策略发布路由。
- BGP能够支撑MPLS/VPN的应用,传递客户VPN路由。
- BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性。
路由衰减:一种惩罚机制,路由震荡一次,给这条路由添加一个惩罚值,如果震荡的次数越多惩罚值就越高 说人话:震荡积累到一定次数就不计算 例如5 当惩罚值降下来才会重新计算
路由震荡:路由出现了又消失了,一会有一会没有
路由聚合:路由汇总
路由属性:开销,下一跳,出接口,等等都可以称作路由属性
BGP的基本特征:
1.BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。
2.运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器。
运行OSPF的称为OSPF路由器一样
3.两个建立BGP会话的路由器互为对等体(Peer),BGP对等体之间交换BGP路由表。
Peer就是邻居
4.BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)。
5.BGP能够承载大批量的路由前缀,可在大规模网络中应用。
就是可以承载的路由条非常多非常多
6.BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。
矢量:方向 | 路径:AS | 每经过一个AS就把一个AS描述成一个路径,下图AS200---AS300会携带AS200的信息,AS200到AS400会携带AS200和AS300的信息,称为路径 |
路径矢量:按照自己的方向出发,把所有的路由全部传递,叠加上自己中间经过的AS编号
7.每条BGP路由都携带多种路径属性(Path attribute),BGP可以通过这些路径属性控制路径选择,
而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,
可以在不同场景下选择最合适的路径控制方式
例如:OSPF携带的路径属性:cost interface dextbop,但BGP存在的路径属性更多,可以选择的路由属性信息更多
BGP就是跨链路通信,也需要IGP在底层通信
BGP的对等体(邻居)关系:
1.IBGP对等体:同一个AS内建立的BGP邻居关系
1.因为一个AS内通过部署IGP协议,相互可达,且BGP是基于TCP的,只要地址可达,就可以建立邻居关系,即IBGP邻居可以跨跳建立 跨跳:就是中间可以跨设备
2.IBGP邻居建立建议使用环回口地址,因为环回口相比于物理口更加的稳定, 如果设备之间存在多条路径可达,环回口建立邻居更加可靠,因为存在备份路径
2.EBGP对等体:不同的AS之间建立的BGP邻居关系
1.一般是AS之间做邻居的建立,且设备是直连的
2.EBGP邻居在发送报文时,默认会将TTL值设置为1 说人话:你这个报文只能传递一跳,只能传递到对端 IBGP中没有这个限制,防止攻击的
[AR4-bgp]peer 10.1.34.3 ebgp-max-hop <1-255> 该命令修改TTL值
下图中,只要TCP可达,AR1就可以跨过AR2和AR3建立BGP关系
*[AR1]bgp 100 设置设备所属的AS编号
*[AR1-bgp]router-id 10.1.1.1 设置BGP协议的RID,如果不设置则使用全局的RID
*[AR1-bgp]peer 3.3.3.3 as-number 100 指定建立邻居的地址所属AS(该命令只是配置了一个会话) -------通过这个设置的AS号就可以判断出设置的是IBGP还是EBGP
需要建立哪种类型的邻居关系,需要在特定地址族下指定使能,华为设备默认配置会话后,在IPv4单播地址族下自动使能邻居的建立
说人话:我想要peer‘3.3.3.3这个会话来建立什么样的邻居比如建立IPV4单播的就在IPv4单播下进行使能,如果想建立ipv4 vpn-instance的邻居就要在 vpn-instance下使能
*[AR1-bgp]peer 3.3.3.3 connect-interface loopback0 向邻居发起建立的接口指定为环回口 指定的自身的接口 指定的对方的接口
存在多个接口的情况下你需要指明用哪一个接口去向对方发起邻居的建立,可以环回对环回口可以环回对物理口,只要能指明接口信息即可
[AR1]dis bgp peer 查看bgp邻居的建立状态
在设备上通过display bgp peer命令查看BGP对等体表,其中主要参数含义:
Peer:对等体地址
V:version,版本号
AS:对等体AS号
Up/Down:该对等体已经存在up或者down的时间
State:对等体状态,这里显示的为BGP状态机的状态
PrefRcv:prefix received,从该对等体收到的路由前缀数目
BGP Local router ID | BGP本地Router ID |
local AS number | 本地AS编号 |
Peer | 对等体的IP地址 |
V | 对等体使用的BGP版本 |
AS | 自治系统号 |
MsgRcvd | 收到的消息数目 |
MsgSent | 发送的消息数目 |
OutQ | 等待发往指定对等体的消息 |
Up/Down | BGP会话处于当前状态的时长 |
清除IP V4单播地址图下的使能功能,保留会话
为什么不是用router ID建立通信?
因为BGP是要地址通信,routerID只是描述我本台设备不是地址
BGP默认内容
EBGP的邻居建立
1、不需要存在 OSPF ISIS等协议的互联,因为是相当于直连设备中间的接口存在互联的地址即可
*单个物理接口做BGP互联是不需要指定自己的接口信息的(从直连判断出来只有一个物理接口就只能从这个物理接口建立*前提是设备是直连的),如果两个AS之间有多条物理链路就需要指定建立邻居连接的接口
EBGP设备一般 一端是企业的出口设备一端是运营商的对接设备,两个AS之间通过运营商进行对接 北京 和武汉站之间做对接,北京和运营商BGP对接 武汉也和运营商BGP做对接,AS1能访问AS2即可 | 中间运营商如何跑我不管 |
如果中间出现一台设备,要么属于AS 200 要么独属任意一个AS
AR3和AR4使用环回口建立EBGP邻居 AR5和AR3使用EBGP建立EBGP
静态路由互指实现通信
BGP邻居建立需要经过32S
EBGP两边指定接口只做一边也可以
多年的发展历程,关于BGP的多个RFC发布, BGP-4(RFC 1771)开始BGP成为无类路由协议,BGP4+支持多种地址族。
支持IPV6支持组播支持IPV4不再是只做路由