BGP一个实验敲了我接近三个小时!绝了!

一、自治系统AS

定义:同一个技术管理机构内管理的统一选路和策略的路由器集合
不同的AS的区分:AS取值的范围1-65535,其中的64512-65535是私有的AS号

1.1什么是BGP

BGP:边界网关协议,是为了让AS区域内的路由器能够相互通信,而且选择最佳路由的矢量协议
BGP的特点有很多,这里主要给打大家总结6个点

1、它使用是的TCP传输协议,用的端口号手机179,提高可靠性,来保证BGP的稳定性
2、对等体概念,使用TCP建立连接的两端,这个连接不需要一定是直连的
3、BGP只是做管理方面,具体的数据转发都是通过静态路由和IGP路由来完成的
4、BGP只会发送更新的路由,来减少传播占用的带宽
5、AS之间:BGP携带AS号经过as的话,带有本地号的as路由器被丢弃
6、AS内部:BGP在AS学到的路由不会再通告给AS内的BGP邻居

所以就有,EBGP和IBGP他们都是防止AS间的环路的产生,不同的是EBGP运行在不同的AS间;IBGP运行在同一个AS内部

注意,每一个对等体在进行BGP会话时,每一个BGP设备都必须有唯一的router-id,而且这个id在BGP网络里面必须要是唯一的,且是用来标识BGP设备的32位值。

二、BGP的工作原理

他的工作原理分为很多种,其中有5种报文;6种状态和9项原则

2.1首先来介绍一下5种报文

open报文、update报文、notification报文、keepalive报文、route-refresh报文

1、open报文:当建立TCP连接后发送的第一个报文
2、update报文:工作在对等体之间,用来交换路由信息
3、notification报文:是用来中断BGP连接的
4、keepalive报文:用来保持连接,响应收到正确的open报文,是一个周期性的报文
5、route=refresh报文:进行软复位GBP路由表请求对等体重新发送路由信息

2.2六种状态

空闲Idle、连接Connecte、活跃Active、open报文已发送Opensent、open报文已确认Opencomfim、连接已建立Establisand

1、空闲:这个状态是BGP初始状态,收到star时间后,才会尝试建立连接,然后转至连接状态
2、连接状态:启动连接重传定时器,连接成功,发送open报文,转至open报文已发送;不成功,转到active,反复尝试连接;连接重传定时器超时了,就对其他的对等体连接,然后在保留连接状态
3、活跃状态:试图建立连接,成功转至opensent状态;没有成功,停留在活跃状态
4、opensent状态:收到报文正确转至keepalive,报文错误,发送notification,转至初始状态
5、openconfirm状态:等待keepalive或者notification,收到前者转至连接已建立,后者回到初始状态
6、establisnd状态:收到正确报文,可认为正常运行;收到错误或者中断连接的报文的话,转为初始状态

2.3九条原则

  • 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体
  • 从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体
  • 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
  • 路由更新时,BGP设备只发送更新的BGP路由
  • 所有对等体发送的路由,BGP设备都会接收
  • 所有EBGP对等体在传递过程中下一- 跳改变.
  • 所有IBGP对等体在传递过程中下一.跳不变
  • 默认EBGP传递时TTL值为1
  • 默认IBGP传递时TTL值为255

三、相关实验及过程

在这里插入图片描述首先,依次把每个端口的IP地址配好,还有每个路由器的回访网址也要配好,回访网口的格式为1.1.1.1 以路由器的序号为列子进行配置
配置端口IP地址和回访网址,如图所示在这里插入图片描述
所有的路由器IP地址都这样配置完以后,我么需要配置OSPF在R3,R4,R5上配置,宣告直连网段,子网掩码用反掩码表示

R4配置如图所示,宣告网段自己的回访网址也要宣告在这里插入图片描述
R5配置如图所示,和R4是一样的在这里插入图片描述
OSPF我们配置完了,接下来就要配置rip,同样的需要宣告网段,注意宣告回访网址的时候格式需要跟改为 X.0.0.0配置如图所示在这里插入图片描述
在R2上配置rip,同样在R1 也需要配置,R7和R6配置和R1/R2是一样的,R7配置rip如图所示在这里插入图片描述
到这里,我们就开始配置BGP,首先我们从R1开始在这里插入图片描述
配置R2的话比R1多一个配置就是下一跳,要告诉R1要出去必须要经过R2,下一跳配置命令:peer 1.1.1.1 next-hop-local配置过程如图,而且,R3也是R2的对等体所以也要配置在这里插入图片描述
R3/4/5都是这样配置的在这里插入图片描述
右边的R6/7配置和左边R1/2是一样的,所以我就不截图给大家了,下面我们在在R2和R3之间配置一条静态路由在这里插入图片描述

在这里插入图片描述
下面我们就需要宣告网段在这里插入图片描述
在这里插入图片描述最后R1可以ping到R7!!!!!!!在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当然可以!以下是使用Scapy构造BGP数据包的示例代码: ```python from scapy.all import * # 构造BGP OPEN消息 def construct_bgp_open_message(): bgp_open = Ether()/IP(dst="192.168.0.1")/TCP(dport=179)/\ BGPMarker()/BGPHeader(type=1, length=29)/\ BGPOpen(version=4, my_asn=65001, hold_time=180, bgp_id="192.168.0.2") return bgp_open # 构造BGP UPDATE消息 def construct_bgp_update_message(): withdrawn_routes = IPNetwork("10.0.0.0/24") bgp_update = Ether()/IP(dst="192.168.0.1")/TCP(dport=179)/\ BGPMarker()/BGPHeader(type=2, length=45)/\ BGPUpdate(withdrawn_routes_len=len(withdrawn_routes), withdrawn_routes=withdrawn_routes, \ total_path_attr_len=17)/\ BGPPathAttribute(type_code=2, length=4, value="\x00\x01\x02\x03")/\ BGPNLRI(length=len(withdrawn_routes), nlri=withdrawn_routes) return bgp_update # 构造BGP NOTIFICATION消息 def construct_bgp_notification_message(): bgp_notification = Ether()/IP(dst="192.168.0.1")/TCP(dport=179)/\ BGPMarker()/BGPHeader(type=3, length=21)/\ BGPNotification(error_code=1, error_subcode=2, data="Error message") return bgp_notification # 发送BGP消息 def send_bgp_message(message): sendp(message) # 构造并发送BGP OPEN消息 bgp_open_message = construct_bgp_open_message() send_bgp_message(bgp_open_message) # 构造并发送BGP UPDATE消息 bgp_update_message = construct_bgp_update_message() send_bgp_message(bgp_update_message) # 构造并发送BGP NOTIFICATION消息 bgp_notification_message = construct_bgp_notification_message() send_bgp_message(bgp_notification_message) ``` 这段代码演示了如何使用Scapy构造和发送BGP的OPEN、UPDATE和NOTIFICATION消息。你可以根据需要修改消息的各个字段。请确保你在运行代码之前已经安装了Scapy库,并根据实际情况修改目标IP地址和端口号。 希望对你有所帮助!如果你有任何其他问题,请随时告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值