边界网关路由协议(BGP)

AS

  • 属于同一个组织管理下的网络集合称为自制系统
  • 一个自制系统往往具有相同的路由管理规范和策略
  • AS通过不同的AS号进行区分,AS号范围原本范围是0-65535,后来进行扩展0-232
  • 中国电信163 AS号:4134
  • 中国电信CN2 AS号:4809
  • 中国网通AS 号:9929

IGP

  • 内部网关协议
  • 执行拓扑发现
    • 当网络发生变化的时候,可以快速的更新路由
  • 尽力完成快速收敛
    • 网络发生变化,到全部设备的路由表都稳定的时间,称为收敛时间
    • IGP协议的收敛速度是路由协议优化的一个衡量标准
  • 需要周期性的更新来确保路由选择信息的精确性
  • 受同一个管理机构的控制
  • 采取了共同的路由选择策略
  • 提供了优先的策略控制能力
    • 控制路由的唯一手段就是度量值

EGP

  • 外部网关协议 主要是为了在AS之间传递路由
  • 早期的时候有协议就叫EGP,后来被淘汰,被BGP替代
  • EGP的路由设备可能各自属于不同的自制系统

一、BGP

  • Border Gateway Protocol 边界网关路由协议(距离矢量)

  • 主要作用是在AS之间传递路由信息

  • 目前BGP有4个版本:V1、V2、V4、V4+(即MBGP)

  • 为什么使用BGP

    • 大量路由需要承载,IGP只能容纳千条,而BGP可以容纳上万
    • 支撑MPLS/VPN的应用,传递客户VPN路由。
    • 策略能力强,可以很好的实现路由决策与数据控制。
  • BGP使用TCP为传输层协议,TCP端口号为179

  • BGP路由器之间建立TCP连接,这些路由器称为BGP对等体,也叫BGP邻居:EBGP,IBGP

  • 对等体之间交换整个BGP路由表

  • BGP路由器只发送增量更新或者触发更新(不会周期更新)

  • 具有丰富的路径属性

  • BGP通告成千上万的路由,可采用TCP滑动窗口的机制,停止并等待确认前,可以发送65576个字节

  • 比如各个运营商将自己内部的服务地址通过BGP传递到全球,这样不同的运营商都可以访问。

  • 一般来说各个AS不会将所有的地址都上报给BGP
    在这里插入图片描述

拓扑

在这里插入图片描述

IP地址配置

R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#int e0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#no sh
==============================
R2(config)#int lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#int e0/0
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int e0/1
R2(config-if)#ip add 192.168.23.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int e0/2
R2(config-if)#ip add 192.168.24.2 255.255.255.0
R2(config-if)#no sh
==========================
R3(config)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#int e0/0
R3(config-if)#ip add 192.168.23.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int e0/1
R3(config-if)#ip add 192.168.35.3 255.255.255.0
R3(config-if)#no sh
==============================
R4(config)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.0
R4(config-if)#int e0/0
R4(config-if)#ip add 192.168.24.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#int e0/1
R4(config-if)#ip add 192.168.45.4 255.255.255.0
R4(config-if)#no sh
=============================
R5(config)#int lo0
R5(config-if)#ip add 5.5.5.5 255.255.255.0
R5(config-if)#int e0/0
R5(config-if)#ip add 192.168.35.5 255.255.255.0
R5(config-if)#no sh
R5(config-if)#int e0/1
R5(config-if)#ip add 192.168.45.5 255.255.255.0
R5(config-if)#no sh
R5(config-if)#int e0/2
R5(config-if)#ip add 192.168.56.5 255.255.255.0
R5(config-if)#no sh
===========================
R6(config)#int lo0
R6(config-if)#ip add 6.6.6.6 255.255.255.0
R6(config-if)#int e0/0
R6(config-if)#ip add 192.168.56.6 255.255.255.0
R6(config-if)#no sh

AS200中的IGP(OSPF)

这边要注意,在R2和R5的对其他AS的接口,不应启用路由协议,不然就会导致泄漏路由。

R2(config)#int range e0/1-2,lo0
R2(config-if-range)#ip ospf 1 area 0
===============================
R3(config-if)#int range e0/0-1,lo0
R3(config-if-range)#ip ospf 1 area 0
================================
R4(config-if)#int range e0/0-1,lo0
R4(config-if-range)#ip ospf 1 area 0
==================================
R5(config)#int range e0/0-1,lo0
R5(config-if-range)#ip ospf 1 area 0

配置AS之间的BGP协议

首先建立R1和R2的BGP邻居

R1(config)#router bgp 100
R1(config-router)#neighbor 192.168.12.2 remote-as 200
# BGP无法自己发现邻居,要自己去指定邻居关系,因为BGP就不是拿来做拓扑发现作用的,是用来传递现有的路由
================================
R2(config)#router bgp 200
R2(config-router)#neighbor 192.168.12.1 remote-as 100

查看邻居关系

R1#sh ip bgp summary
BGP router identifier 1.1.1.1, local AS number 100
BGP table version is 1, main routing table version 1

Neighbor 	V 	AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.12.2 4 200 	4 		4 		1 		0 	0 	00:00:09 0
# 一定要确认Up/Down下面有时间,因为BGP summary中会显示所有被指定的邻居,即使从来没建立过
# 所以邻居条目即使有,后面写的never也是无效

建立R5和R6的邻居

R5(config)#router bgp 200
R5(config-router)#neighbor 192.168.56.6 remote 300
=======================
R6(config)#router bgp 300
R6(config-router)#neighbor 192.168.56.5 remote 300
# 这边如果AS号写错了,比如我写成了300
*Apr 5 02:32:30.617: %BGP-3-NOTIFICATION: sent to neighbor 192.168.56.5 passive 2/2 (peer in wrong AS) 2 bytes 00C8
# 如果出现了peer in wrong AS,就说明你配置错误的AS号

查看邻居关系

R6#show ip bgp summary
BGP router identifier 6.6.6.6, local AS number 300
BGP table version is 1, main routing table version 1

Neighbor 	V  AS  MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.56.5 4 200  5 		5 		1 		0  0   00:01:28 0

然而在AS之间建立连接,肯定是需要链路的冗余,所以直接指定对方的物理接口地址作为邻居也是不稳定的。

建议BGP所有的邻居关系都最好使用环回接口

AS之间不能启动IGP协议,但是可以配置静态路由,可以使用静态路由保障双方环回接口可达性。

R1(config)#ip route 2.2.2.0 255.255.255.0 192.168.12.2
=======================
R2(config)#ip route 1.1.1.0 255.255.255.0 192.168.12.1

检查连通性

R1#ping 2.2.2.2 so 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

两边都设置邻居,并且设置更新源

R1(config)#router bgp 100
R1(config-router)#nei 2.2.2.2 remote 200
R1(config-router)#neighbor 2.2.2.2 update-source Loopback0
=====================
R2(config)#router bgp 200
R2(config-router)#nei 1.1.1.1 remote 100
R2(config-router)#neighbor 1.1.1.1 update-source Loopback0

发现无法建立邻居

R1#sh ip bgp sum
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2.2.2.2 4 200 0 0 1 0 0 never Idle

我们尝试抓取EBGP邻居之间数据包
在这里插入图片描述
我们发现EBGP邻居默认发出的数据包TTL是1,也就是如果R1发送EBGP邻居消息给R2,根本无法被R2的lo0收到。

如果是EBGP邻居使用环回接口,或者跨网段建立邻居关系,需要设置EBGP多跳。

R1(config)#router bgp 100
R1(config-router)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值