|
实验原理
BGP是基于TCP的,这是众所周知的情况,而TCP是一种host-to-host的连接,也就是基于主机到主机的一种点到点的连接,要完成这一步,那么自然两个TCP点之间要有相互的路由才能建立TCP连接
BGP基于TCP的179端口,注意是端口号,而不是协议号,这里要强调的是协议号是一个三层概念,只有在IP包头中才会有协议号,如OSPF,这也是BGP有时候被称之为是高层应用的理由之一,不过BGP的目的还是为了传递大量的路由而生
BGP不会向IGP那样自动发现和建立邻居,那么需要在配置的时候手动指定邻居,同时TCP连接需要指定一个源去和对端建立连接,这个概念就是BGP中的update-source的概念,这个概念是十分重要的,当一台设备要建立多个BGP邻居的时候十分关键,比如通常的:建立iBGP的时候会用到环回口(理由是环回口更加稳定),而该设备与另一台设备建立eBGP,通常就会用直连来建立,而不用指定更新源,默认就是出接口(与eBGP邻居相连的接口)
关于eBGP的多跳,这里要指出的是iBGP中IPv4包头中TTL默认是255,而eBGP是1,如果建立eBGP邻居关系的时候通过环回口来建立,那么此时TTL为2,需要指定eBGP多跳大于等于2才可以
BGP不会主动通过默认路由来建立BGP邻居关系,这是一种防环机制。这意味着如果两个peer之间通过环回口来作为更新源,而且两台设备上只有默认路由到达对端的环回口,那么将缺少TCP连接,无法建立BGP邻居,而只要有一端有明细路由,比如静态路由指向对端的环回口就可以了
BGP和ospf一样也需要一个RID来起到标识关系,必须要有一个ipv4地址来作为RID(如果没有任何地址的时候BGP将无法开启),RID的选择顺序为:手工指定;最大的环回口(同OSPF一样不一定要宣告该接口,尤其是BGP,通告的是路由,而不是激活接口);最大的物理接口
实验目的
掌握采用直连路由方式建立eBGP邻居关系
掌握采用环回接口方式建立eBGP邻居关系
实验环境
参考4.1拓扑,在预配置中已经配置了直连地址和环回接口地址。如图4-1所示
图4-1 eBGP基础配置
实验步骤
采用直连方式建立eBGP邻居关系
步骤1.首先测试直连的通信情况,以确保可以建立eBGP邻居
[R5]ping 10.1.15.1
PING 10.1.15.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.15.1: bytes=56 Sequence=1 ttl=255 time=60 ms
Reply from 10.1.15.1: bytes=56 Sequence=2 ttl=255 time=30 ms
|
步骤2.建立eBGP邻居
R1
[R1]bgp 100 //启动bgp,AS号码为100
[R1-bgp]router-id 1.1.1.1 //配置R1的bgp的路由器ID为1.1.1.1,ID为一个IPv4地址格式,可以是设备上不存在的地址,但必须是唯一的一个RID
[R1-bgp]peer 10.1.15.5 as-number 200 //和对端10.1.15.5建立eBGP邻居关系,对端AS号码为200
[R1-bgp]network 1.1.1.1 32 //通告R1的业务接口,请注意,BGP通告的是路由,所以掩码必须精准,否则路由不会产生
R5
[R5]bgp 200
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 10.1.15.1 as-number 100
[R5-bgp]network 5.5.5.5 32
|
步骤3.查看BGP邻居关系和得到的路由
查看BGP的邻居关系
[R1-bgp]display bgp peer
BGP local router ID : 1.1.1.1 //BGP的RID
Local AS number : 100 //本设备的AS号码为100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
10.1.15.5 4 200 5 5 0 00:02:18 Established 1 //此处的1代表从对端收到了一条bgp路由,established代表邻居建立成功
|
查看bgp的数据库,即bgp路由
[R1-bgp]dis bgp routing-table
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: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.1/32 0.0.0.0 0 0 I //1.1.1.1/32是本设备产生的路由,这点从0.0.0.0可以看出
*> 5.5.5.5/32 10.1.15.5 0 0 200i //从对端As200得到的路由,可以看到AS-path为200
|
步骤4.查看路由表,并测试数据通信
<R1>dis ip routing-table protocol bgp
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : BGP
Destinations : 1 Routes : 1
BGP routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.5.5.5/32 EBGP 255 0 D 10.1.15.5 GigabitEthernet0/0/0 //通过ebgp方式得到了5.5.5.5的路由,请观察优先级为255
数据通信:
[R1]ping -a 1.1.1.1 5.5.5.5 //携带本端的业务接口和对端的业务接口测试通信,如下所示,数据成功通信
PING 5.5.5.5: 56 data bytes, press CTRL_C to break
Reply from 5.5.5.5: bytes=56 Sequence=1 ttl=255 time=30 ms
Reply from 5.5.5.5: bytes=56 Sequence=2 ttl=255 time=30 ms
|
通过环回接口建立eBGP邻居
步骤1.首先两端环回口通过静态路由作为更新源通信
[R5]ip route-static 11.1.1.1 32 10.1.15.1
[R1]ip route-static 55.1.1.1 32 10.1.15.5 //R1和R5 互相指向对端环回接口,下一跳是它们的物理接口地址。
|
步骤2.测试路由通信
[R5]ping -a 55.1.1.1 11.1.1.1
PING 11.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 11.1.1.1: bytes=56 Sequence=1 ttl=255 time=110 ms
Reply from 11.1.1.1: bytes=56 Sequence=2 ttl=255 time=20 ms
Reply from 11.1.1.1: bytes=56 Sequence=3 ttl=255 time=30 ms
Reply from 11.1.1.1: bytes=56 Sequence=4 ttl=255 time=20 ms
Reply from 11.1.1.1: bytes=56 Sequence=5 ttl=255 time=10 ms
--- 11.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/38/110 ms //两端环回接口通信成功,这样就可以作为BGP更新源建立邻居
|
步骤3.建立EBGP邻居
R1
[R1]bgp 100 //启动bgp,AS号码为100
[R1-bgp]router-id 1.1.1.1 //配置R1的bgp的路由器ID为1.1.1.1,ID为一个IPv4地址格式,可以是设备上不存在的地址,但必须是唯一的一个RID
[R1-bgp]peer 55.1.1.1 as-number 200 //和对端55.1.1.1 lo0 建立eBGP邻居关系,对端AS号码为200
[R1-bgp]peer 55.1.1.1 connect-interface lo0
[R1-bgp]peer 55.1.1.1 ebgp-max-hop 2 //由于TTL值默认为1,如果采用环回口去建立ebgp邻居关系得话,那么对等体之间,数据包就不止传1跳了,TTL值还没有传就-1 如果是0 那么就会丢弃 ,所有要设置多跳,
[R1-bgp]network 1.1.1.1 32 //通告R1的业务接口,请注意,BGP通告的是路由,所以掩码必须精准,否则路由不会产生
R5
[R5]bgp 200 //启动bgp,AS号码为100
[R5-bgp]router-id 5.5.5.5 //route-id指定为5.5.5.5
[R5-bgp]peer 11.1.1.1 as-number 100
[R5-bgp]network 5.5.5.5 32
[R5-bgp]peer 11.1.1.1 ebgp-max-hop 2
|
查看bgp的数据库,即bgp路由
[R1]display bgp routing-table
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: 2 //接收到2条BGP 路由
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.1/32 0.0.0.0 0 0 i
// 从本段生成了一条1.1.1.1的路由,从0.0.0.0 可以看出
5.5.5.5/32 55.1.1.1 0 0 200i
// 5.5.5.5 是从AS200的学到的路由 由AS-path 200i 可以看出 下一跳是 55.1.1.1
|
步骤4.查看路由表,并测试数据通信
[R1]display ip routing-table protocol bgp
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : BGP
Destinations : 1 Routes : 1
BGP routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.5.5.5/32 EBGP 255 0 RD 55.1.1.1 GigabitEthernet
0/0/0
//通过ebgp方式得到了5.5.5.5的路由,请观察优先级为255
BGP routing table status : <Inactive>
Destinations : 0 Routes : 0
|
数据通信:
|
|