AS:autonomous system 自治系统
自治也就是能自行决定一些东西,那这些“东西”是什么呢?
在网络中,我们熟悉的就是路由协议一些网络的只是。在一个大的网络中,特别像大型运营商
如:电信、广电、网通,他们承载的是整个中国的整个使用他们网络服务的网络。
所以一个运行商可以决定在他的网络中实行统一的网络技术,比如路由协议。在这里的AS就是
能自行决定使用什么样的路由协议的网络系统。
简单一个AS理解为一个大的由专门人管理的网络,而且这个网络还不小。
BGP:用来提供AS之间进行路由选择的协议。
那它为什么就能,而别的IGP就不能支持呢?
1、在管理方面,表现出异于IGP协议的特性
2、支持更大网络,而IGP最大几万条路由
3、路由的控制更好
4、扩展应用,支持IPV6,×××V4
BGP的特性:
1、基于TCP端口179的可靠连接
大家要理解,在进行TCP连接的双方之间只有一条TCP连接。
所以不要理解为所有发起的目的端口都是179的
若开始双方都发送建立改TCP的连接,成功后,会随机down掉一条
2、只能增量更新,不然一下十几万条的路由的更新,会让链路带宽不够用
3、周期60秒发送keepalive报文
IGP中的hello的作用:
*建立邻居关系
*keepalive,检查邻居关系是否存活
BGP中建立邻居是通过open报文;
用keepalive报文查看是否是keepalive
BGP默认是不做负载均衡,它会选出一条最优的路由
四种报文:open,keepalive,update,notification
BGP建立邻居不需要直连,只需要路由可达就可以咯!
为什么路由已经传送过去了,还是会有路由黑洞呢?
路由传送的时候,是一段一段网络传送的,其中的源和目的地址都是在一个网段
数据传送的时候,源和目的IP地址是固定不变的。
解决该路由黑洞:
1、物理线路的full mesh,一般不用
2、邻居的full mesh,很常用哦
3、BGP重分布进IGP路由协议,不推荐哦!
4、MPLS,它是最好的解决方案
IBGP的水平分割原则:从IBGP学到的路由不会转发给IBGP邻居
EBGP的水平分割原则:记录所经过的AS,当记录到自己的时候,丢弃它
有条件的打破IBGP的水平分割的方法:联盟和RR
实验拓扑:
先建立R4和R2之间的EBGP邻居关系
R4:
router bgp 4
bgp router-id 4.4.4.4
neighbor 24.1.1.2 remote-as 1
R2:
router bgp 1
bgp router-id 2.2.2.2
neighbor 24.1.1.4 remote-as 4
这样就可以建立EBGP邻居关系了
为什么不用loopback作为彼此的neighbor呢?
因为他们彼此路由不可达,只有直连链路
IGP的network:建立邻居;通告路由
BGP建立邻居:neighbor
BGP通告路由:network
IGP中的network宣告的是接口,而BGP中network宣告的路由表中出现的路由
show ip bgp summary 显示邻居信息简表
show ip bgp neighbor 显示邻居的详细信息
show ip bgp 显示bgp 表
show tcp brief 显示BGP的TCP连接情况
建立R2和R3之间的IBGP邻居关系
前提:必须要有到达彼此的可达路由,我们这里选择OSPF来实现
R2:
router ospf 110
router-id 2.2.2.2
network 12.1.1.0 0.0.0.255 area 0
networrk 2.2.2.2 0.0.0.0 area 0
router bgp 1
bgp router-id 2.2.2.2
neighbor 3.3.3.3 remote-as 1
光以上的命令还是不能建立IBGP邻居关系的
neighbor 3.3.3.3 update-source l0
指定更新源为Loopback0口
R3:
router ospf 110
router-id 3.3.3.3
network 13.1.1.0 0.0.0.255 area 0
network 3.3.3.3 0.0.0.0 area 0
router bgp 1
bgp router-id 3.3.3.3
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 update-source lo0
R1:
router ospf 110
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 12.1.1.0 0.0.0.255 area 0
network 13.1.1.0 0.0.0.255 area 0
知道为什么建立IBGP邻居的时候,选择LOOPBACK口吗?因为环回口稳定,特别是在之间有多链路的时候,我们不好指定直连接口,但是我们可以指定环回口啊!不是吗?
单边指定更新源也是可以通的,但是建议双边全做。
建立R3和R5之间EBGP邻居关系,且用的环回口
首先要解决的是路由可达的问题,我们这里用静态路由先
R3:
ip route 5.5.5.5 255.255.255.255 s0/0
R5:
ip route 3.3.3.3 255.255.255.255 s0/0
还有就是BGP传送的报文的TTL默认都是一跳,所以需要配置EBGP的多条设置
为什么上面的IBPG建立的过程不需要设置多跳呢?在这里的一跳就是一个AS
而他们是在一个AS,不出一跳的哦!明白了吧!
R3:
router bgp 1
neighbor 5.5.5.5 remote-as 5
neighbor 5.5.5.5 update-source l0 需要设置更新源的吧!
neighbor 5.5.5.5 ebgp-multiphop 2,这里是2跳
R5:
router bgp 5
bgp router-id 5.5.5.5
neighbor 3.3.3.3 remote-as 1
neighbor 3.3.3.3 update-source l0
neighbor 3.3.3.3 ebgp-multihop 2
邻居关系已经建立完毕了,现在我们需要将R4上的环回口网络100.1.1.0/24通告出去
R4:
interface l100
ip add 100.1.1.1 255.255.255.0
router bgp 4
network 100.1.1.0 mask 255.255.255.0
R4(config-router)#do show ip bgp
BGP table version is 2, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.1.1.0/24 0.0.0.0 0 32768 i
R2#show ip bgp
BGP table version is 2, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.1.1.0/24 24.1.1.4 0 0 4 i
R3(config-router)#do show ip bgp
BGP table version is 1, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i100.1.1.0/24 24.1.1.4 0 100 0 4 i
到R3接受的路由就不是最优路由了
不是最优的结果就是不放进路由表,不通告给邻居
这样的话,R5应该收不到该条路由了
R5(config-router)#do show ip bgp
为空
上面的原因就是IBGP的水平分割原则造成的
BGP路由优的条件:
1、同步:
指的是IGP路由和IBGP路由同步的时候,才可以通告该条路由
所以方法有两个:
一是关闭同步,no sychronization
二是创建一个静态路由欺骗路由器
2、下一跳因为R3和R2是属于一个AS的,所以100.1.1.0/24的路由的下一跳还是24.1.1.4
所以为了改变下一跳,使用下面命令
R2:
router bgp 1
neighbor 3.3.3.3 next-hop-self告诉下一跳路由器下一跳是自己
完成上面的两步,路由就可以变成最优
为什么需要同步的规则呢?为了防止路由黑洞,且该同步的概念针对的是IBGP来说的
现在的配置完成了100.1.1.0的路由正确的传送到R5,但是路由黑洞还是存在的哦!
回忆上面解决路由黑洞的方法,我们选择BGP邻居关系的FULL MESH
R1、R2、R3之间建立BGP邻居关系
这里需要用到peer-group命令,为了减少配置命令行的配置量
现在写下配置,peer-group 后续写
R1:
router bgp 1
bgp router-id 1.1.1.1
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 update-source l0
neighbor 2.2.2.2 next-hop-self
no sychronization
neighbor 3.3.3.3 remote-as 1
neighbor 3.3.3.3 update-source l0
neighbor 3.3.3.3 next-hop-self
neighbor 5.5.5.5 remote-as 5
neighbor 5.5.5.5 update-source l0
neighbor 5.5.5.5 ebgp-multihop 2
看到了吗?是不是有很多的重复的信息,我们可以将重复的信息做成peer-group
neighbor test peer-group
neighbor test remote-as 1
neighbor test update-source l0
neighbor test next-hop-self
neighbor 2.2.2.2 peer-group test
neighbor 3.3.3.3 peer-group test
配置量是不是减少了啊!
转载于:https://blog.51cto.com/867645/1420234