知识点回顾


BGP的终极使命就是为了传递路由






一句话说透本质:
IBGP用环回口 :因为环回口永不down,且可通过多条物理链路提供冗余,配合更新源检测能极大提高AS内部BGP会话的可靠性。
EBGP用直连物理口 :因为EBGP默认TTL=1(直连检测),强制邻居必须直连,这天然防止了多跳攻击和路由环路,保证了AS边界的清晰和稳定。
更新源检测机制
实验拓扑

BGP虽然是应用层协议,但它依赖TCP(四层)提供可靠传输和连接管理 ,依赖IP(三层)提供路由和寻址,因此BGP邻居之间必须三层(IP)可达、四层(TCP)能建立连接,这是BGP能够交换路由信息的基础。BGP(端口179)
配置
第一步:配置接口IP地址,配置OSPF,实现互联互通
R1上配置


R2上配置


R3上配置

R4上配置


在R2上查看OSPF邻居关系

在R3上查看OSPF邻居关系


BGP配置

验证BGP邻居

现在是用物理接口建立的IBGP邻居,弊端:如果物理线路坏了,那么邻居关系过期之后也会Down。

换成用loopback接口建立BGP邻居
loopback接口不会Down,不会因为网线故障而故障
用loopback接口建立BGP邻居,只要有任何一条链路能够转发数据,这个邻居就永远UP,即便有一条链路Down了,BGP邻居关系还是正常的。就算链路都Down,邻居关系还是UP的,只是数据没法转发。
删掉BGP配置,重新配置

在建立邻居之前,一定要先确保网络是通的。

状态是Active(TCP连接没有建立成功)


等价路由

抓包分析(因为会轮询,所以两个口都抓一下包)

RST是重置,没法建立TCP连接。
为什么10.10.1.1跟10.10.4.4会互相拒绝TCP连接?--因为源地址并不是BGP建立邻居的地址

BGP配置里面明确了邻居的IP

这个机制叫做:更新源检测机制(必须检测源地址)--- 现在建立不了邻居的原因:更新源检测失败。
解决措施 


现在查看BGP邻居

抓包


现在断了一条链路,BGP邻居还是在的--用LoopBack口建立IBGP邻居能够提高稳定性和可靠性。

直连检测机制
建立EBGP邻居用物理接口

尝试用LoopBack地址建立EBGP邻居(写静态路由让LoopBack接口互联互通)


测试连通性

通常情况下建立EBGP邻居的时候是用物理直连接口来建立的


现在用物理接口建立邻居是直接能建立成功的--建立外部EBGP邻居用直连的物理接口特别好。
直连检测机制
要求建立EBGP邻居关系,使用直连的物理接口
- 报文到 R2 直连接口后,目的 IP 不是 R2 直连接口,而是环回口 → R2 需要内部转发到环回口
- 转发动作触发:TTL-1=0 → 路由器直接丢弃报文
- 报文根本到不了 R2 的环回口,BGP 邻居无法建立
现在删掉EBGP邻居


用LoopBack接口建立EBGP邻居


在R1上查看BGP邻居状态

在R2上查看BGP邻居状态

邻居没建立成功
建立EBGP邻居时,报文中TTL值是1,要求直连网段建立邻居。
如果还想建立邻居的话,就得修改跳数

改成5,中间就可以穿越4台路由器了。
R2也得对应修改

现在EBGP邻居关系就能成功建立

抓包分析

但是不建议这样操作