计算机网络-BGP基础概念(非常详细)零基础入门到精通,收藏这一篇就够了
BGP建立对等体的对等体都会发起TCP三次握手,所以会建立两个TCP连接,但是实际BGP只会保留其中一个TCP连接,从Open报文中获取对端BGP Identifier之后BGP对等体会比较本端的Router ID和对端的Router ID大小,如果本端Router ID小于对端Router ID,则会关闭本地建立的TCP连接,使用由对端主动发起创建的TCP连接进行后续的BGP报文交互。攻击和防守
一、BGP的基本概念
BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6等)使用的版本是MP-BGP(RFC4760)。
BGP的特点:
-
BGP使用TCP作为其传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新。
-
BGP能够承载大批量的路由信息,能够支撑大规模网络。
-
BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导对等体按策略发布路由。
-
BGP能够支撑MPLS/VPN的应用,传递客户VPN路由。
-
BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性。
BGP特征:
-
BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。
-
运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器。
-
两个建立BGP会话的路由器互为对等体(Peer),BGP对等体之间交换BGP路由表。
-
BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)。
-
BGP能够承载大批量的路由前缀,可在大规模网络中应用。
BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。
每条BGP路由都携带多种路径属性(Path attribute),BGP可以通过这些路径属性控制路径选择,而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,可以在不同场景下选择最合适的路径控制方式。
BGP能够支撑更多的路由表项
BGP支持丰富的选路规则
概况地说就是IGP(OSPF、ISIS)只能与直连链路设备建立邻居关系,因为hello包中TTL值为1,不能跨越设备。BGP只需要能够tcp三次握手成功就能建立邻居,简单说就是ping通就行。BGP支持大量路由表项、拥有丰富的选路规则,是当前用于不同AS之间的主要路由协议。
二、BGP邻居建立
2.1 BGP对等体
与OSPF、IS-IS等协议不同,BGP的会话是基于TCP建立的。建立BGP对等体关系的两台路由器并不要求必须直连。
BGP对等体
BGP存在两种对等体关系类型:EBGP及IBGP:
EBGP(External BGP):位于不同自治系统的BGP路由器之间的BGP对等体关系。两台路由器之间要建立EBGP对等体关系,必须满足两个条件:
-
两个路由器所属AS不同(即AS号不同)。
-
在配置EBGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。
IBGP(Internal BGP):位于相同自治系统的BGP路由器之间的BGP邻接关系。
BGP不单单能用于AS之间也能用于AS内,后面我们学习MPLS、VPN等都会用到。
2.2 BGP邻居建立过程
对等体关系建立
1、先启动BGP的一端先发起TCP连接,如左图所示,R1先启动BGP,R1使用随机端口号向R2的179端口发起TCP连接,完成TCP连接的建立。
2、三次握手建立完成之后,R1、R2之间相互发送Open报文,携带参数用于对等体建立,参数协商正常之后双方相互发送Keepalive报文,收到对端发送的Keepalive报文之后对等体建立成功,同时双方定期发送Keepalive报文用于保持连接。每60秒发送keepalive报文。
其中Open报文中携带:
-
My Autonomous System:自身AS号
-
Hold Time:用于协商后续Keepalive报文发送时间
-
BGP Identifier:自身Router ID,Router ID大的为主动端。
3、BGP对等体关系建立之后,BGP路由器发送BGP Update(更新)报文通告路由到对等体。
BGP Update(更新报文)
BGP建立对等体的对等体都会发起TCP三次握手,所以会建立两个TCP连接,但是实际BGP只会保留其中一个TCP连接,从Open报文中获取对端BGP Identifier之后BGP对等体会比较本端的Router ID和对端的Router ID大小,如果本端Router ID小于对端Router ID,则会关闭本地建立的TCP连接,使用由对端主动发起创建的TCP连接进行后续的BGP报文交互。
2.3 指定TCP连接源地址:
缺省情况下,BGP使用报文出接口作为TCP连接的本地接口。如果使用lookbak接口作为更新源,需要手动配置更新源接口。
在部署IBGP对等体关系时,建议使用Loopback地址作为更新源地址。Loopback接口非常稳定,而且可以借助AS内的IGP和冗余拓扑来保证可靠性。peer x.x.x.x connect lookback 1
在部署EBGP对等体关系时,通常使用直连接口的IP地址作为源地址,如若使用Loopback接口建立EBGP对等体关系,则应注意EBGP多跳问题,默认TTL为1,需要手动设置,安全机制认为直连设备较为安全。peer x.x.x.x ebgp-max-hop 3
一般而言在AS内部,网络具备一定的冗余性。在R1与R3之间,如果采用直连接口建IBGP邻居关系,那么一旦接口或者直连链路发生故障,BGP会话也就断了,但是事实上,由于冗余链路的存在,R1与R3之间的IP连通性其实并没有DOWN(仍然可以通过R4到达彼此)。
TCP源地址
建议IBGP邻居手动指定使用lookback接口保持邻居关系稳定,ebgp邻居使用直连接口进行建立,否则需要手动指定源接口和最大条数TTL。
总结:BGP目前版本为BGP-4。与其它路由协议一致需要经历建立邻居关系、更新报文、保持连接关系等阶段。BGP对等体有IBGP邻居和EBGP邻居。建议IBGP使用lookback接口建立邻居,EBGP直连接口,非直连需要指定跳数。BGP基于TCP三次握手建立邻居关系,使用TCP 179端口。
`黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
更多推荐
所有评论(0)