| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 《华为路由器之BGP路由技术总结及配置命令(下)》 -> 正文阅读 |
|
[网络协议]《华为路由器之BGP路由技术总结及配置命令(下)》 |
? 三、BGP的配置实例 上面的BGP理论啰嗦了那么多,其实真正的配置倒很简单(这也符合网络的特色),来个实验图配置一下吧!网络拓扑如下: ? 01需求如下 1、AS 200内部使用OSPF协议使AS 200内部互通,并在AS 200内部各个路由器上都运行BGP协议(R1和R2、R3建立邻居关系,R4和R2、R3及R5建立邻居关系,),各个AS之间运行BGP协议。 2、分别在R1和R5使用BGP协议宣告21.0.0.0/24和20.0.0.0/24,使所有路由器学到这两条路由信息。 3、通过BGP的属性控制选路,实现PC 1→R1→R2→R4→R5→PC 2→R5→R4→R3→R2→R1→PC 1的路由通信。顺便将多个控制选路的方法测试一下。 4、在R2、R3和R4路由器上分别向BGP协议中注入本地的OSPF路由信息,使全网互通(虽然在第三个要求实现了控制路由选路,但是并不意味着PC1可以ping通任何一个路由器,比如R2)。 5、为了引出EBGP多跳的配置,尝试一下R1和R4直接建立对等体关系。 02开始配置 1、自行配置各个PC、路由器物理接口及loopback接口的IP地址(我是懒癌晚期患者,请多多担待),路由器IP配置参考: <R1>sys [R1]in g0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [R1-GigabitEthernet0/0/0]int loop 0 [R1-LoopBack0]ip add 1.1.1.1 32 2、配置AS 200内部的OSPF路由协议: R2路由器配置如下: [R2]ospf 1 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0 [R2-ospf-1-area-0.0.0.0]net 12.1.1.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]net 24.1.1.0 0.0.0.255 R3路由器配置如下(相应注释请参考R2): [R3]ospf 1 [R3-ospf-1]area 0 [R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0 [R3-ospf-1-area-0.0.0.0]net 13.1.1.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0]net 34.1.1.0 0.0.0.255 R4路由器配置如下(相应注释请参考R2): [R4]ospf 1 [R4-ospf-1]area 0 [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 [R4-ospf-1-area-0.0.0.0]net 24.1.1.0 0.0.0.255 [R4-ospf-1-area-0.0.0.0]net 34.1.1.0 0.0.0.255 3、开始配置BGP,使相应路由器为邻居关系: R1配置如下: [R1]bgp 100 [R1-bgp]router-id 1.1.1.1 [R1-bgp]peer 12.1.1.2 as 200 [R1-bgp]peer 13.1.1.3 as 200 [R1-bgp]network 21.0.0.0 24 由于配置BGP时,很多重复性的命令,所以,没有特别不一样的配置时,就不写注释了 R2配置如下: [R2]bgp 200 [R2-bgp]router-id 2.2.2.2 [R2-bgp]peer 12.1.1.1 as 100 [R2-bgp]peer 4.4.4.4 as 200 [R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0 [R2-bgp]peer 4.4.4.4 next-hop-local R3配置如下: [R3]bgp 200 [R3-bgp]router-id 3.3.3.3 [R3-bgp]peer 13.1.1.1 as 100 [R3-bgp]peer 4.4.4.4 as 200 [R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0 [R3-bgp]peer 4.4.4.4 next-hop-local R4配置如下: [R4]bgp 200 [R4-bgp]router-id 4.4.4.4 [R4-bgp]peer 2.2.2.2 as 200 [R4-bgp]peer 3.3.3.3 as 200 [R4-bgp]peer 2.2.2.2 next-hop-local [R4-bgp]peer 3.3.3.3 next-hop-local [R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0 [R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0 [R4-bgp]peer 45.1.1.5 as 300 R5配置如下: [R5]bgp 300 [R5-bgp]router-id 5.5.5.5 [R5-bgp]peer 45.1.1.4 as 200 [R5-bgp]network 20.0.0.0 24 现在BGP的邻居关系已经建立完成,可以通过以下命令查看: [R1]dis bgp peerBGP local router ID : 1.1.1.1 Local AS number : 100 Total number of peers : 2 Peers in established state : 2 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 12.1.1.2 4 200 5 8 0 00:02:11 Established 1 13.1.1.3 4 200 7 10 0 00:04:34 Established 1 至此,PC 1已经可以和PC 2进行通信了,当然是BGP协议做的咯,但是现在除了非直连网段及AS 200内部路由器以外,也只有PC1和PC2可以通信,如PC1并不能ping通R2路由器。 4、开始做第三个需求,通过BGP的属性控制选路,实现PC 1→R1→R2→R4→R5→PC 2→R5→R4→R3→R2→R1→PC 1的路由通信。 先使用tracert命令查看PC1和PC2通信时的路由,看看都是经过哪个路由器。 PC1到达PC5所经过的路由器如下: PC>tracert 20.0.0.1 #使用tracert命令进行查看 traceroute to 20.0.0.1, 8 hops max (ICMP), press Ctrl+C to stop1 21.0.0.254 <1 ms 16 ms 15 ms 2 12.1.1.2 16 ms 15 ms 16 ms 3 24.1.1.4 31 ms 32 ms 31 ms 4 45.1.1.5 31 ms 47 ms 31 ms 5 *20.0.0.1 31 ms 32 ms PC5到达PC1所经过的路由器如下: PC>tracert 21.0.0.1 traceroute to 21.0.0.1, 8 hops max (ICMP), press Ctrl+C to stop1 20.0.0.254 15 ms <1 ms 16 ms 2 45.1.1.4 16 ms 31 ms 16 ms 3 24.1.1.2 31 ms 31 ms 31 ms 4 12.1.1.1 47 ms 16 ms 47 ms 5 21.0.0.1 31 ms 31 ms 31 ms 来吧,开始配置选路问题(共三个方法可实现): 实现方法1:修改Local-Perf属性来改变R3路由器的优先级 在R3路由器上配置如下: [R3]route-policy lop permit node 10 Info: New Sequence of this List. [R3-route-policy]apply local-preference 222 [R3-route-policy]quit [R3]bgp 200 [R3-bgp]peer 4.4.4.4 route-policy lop export [R3-bgp]quit [R3]quit<R3>reset bgp all 此时再查看PC5到达PC1所经过的路由器,就发现中间不经过R2路由器,而经过了R3路由器到达的PC1,如下: PC>tracert 21.0.0.1 traceroute to 21.0.0.1, 8 hops max (ICMP), press Ctrl+C to stop 1 20.0.0.254 <1 ms 16 ms 16 ms 2 45.1.1.4 15 ms 16 ms 31 ms 3 34.1.1.3 31 ms 32 ms 31 ms 4 13.1.1.1 47 ms 31 ms 47 ms 5 *21.0.0.1 47 ms 31 ms 实现方法2:使用AS-PATH属性控制选路 为了还原最初走R2的效果,需要清除上一步R3路由器配置的Local-Perf属性,在R3路由器执行以下命令进行删除: [R3]bgp 200 [R3-bgp]undo peer 4.4.4.4 route-policy lop export 删除后,稍等会可以自行查看,PC2和PC1时是否又恢复了走R2路由器而不走R3。 然后在R2路由器修改AS-PATH属性(就是让R2路由器在向R4路由器通告21.0.0.0网段时,告诉R4经过了好多区域,当然,这些区域是虚造出来的,这个区域数肯定比R3所经过的区域数多,所以R4就会选择走R3而不走R2,因为要走最优路径嘛): R2配置如下: [R2]route-policy as permit node 10 Info: New Sequence of this List. [R2-route-policy]apply as-path 123 123 123 add [R2-route-policy]quit [R2]bgp 200 [R2-bgp]peer 4.4.4.4 route-policy as export [R2-bgp]quit [R2]quit<R2>reset bgp all 现在在PC2再测试一下,会发现又开始走R3路由器了: PC>tracert 21.0.0.1 traceroute to 21.0.0.1, 8 hops max (ICMP), press Ctrl+C to stop 1 20.0.0.254 16 ms <1 ms 15 ms 2 45.1.1.4 32 ms 15 ms 31 ms 3 34.1.1.3 16 ms 31 ms 32 ms 4 13.1.1.1 31 ms 31 ms 31 ms 5 *21.0.0.1 47 ms 31 ms 实现方法3:使用MED属性控制选路 在一开始测试过,PC1去往PC5是经过R2路由器,而不是R3路由器,那么现在就增加R2路由器的MED属性并通告给R1路由器,使它经过R3路由器而不是R2路由器。 [R2]route-policy med permit node 10 Info: New Sequence of this List. [R2-route-policy]apply cost + 500 [R2-route-policy]quit [R2]bgp 200 [R2-bgp]peer 12.1.1.1 route-policy med export [R2-bgp]quit [R2]quit<R2>reset bgp all 在PC1测试一下: PC>tracert 20.0.0.1 traceroute to 20.0.0.1, 8 hops max (ICMP), press Ctrl+C to stop 1 21.0.0.254 16 ms <1 ms 16 ms 2 13.1.1.3 15 ms 16 ms 15 ms 3 34.1.1.4 47 ms 16 ms 16 ms 4 45.1.1.5 31 ms 31 ms 31 ms 5 *20.0.0.1 32 ms 31 ms 已经改走R3路由器了,说明配置生效,通过这三个选路的实现方法不难发现,BGP控制选路主要都是通过BGP属性值来调整完成的。BGP包含大量的属性,而这些属性直接影响着选路,所有BGP比IGP具有更强大的控制能力。 5、第四个需求:在R2、R3和R4路由器上分别向BGP协议中注入本地的OSPF路由信息,使全网互通。 R2路由器: [R2]bgp 200[R2-bgp]import-route ospf 1 其余路由器配置基本一致: R3: [R3]bgp 200[R3-bgp]import-route ospf 1 R4: [R4]bgp 200[R4-bgp]import-route ospf 1 自行查看各路由器的路由条目验证吧!文章末尾有相关查看命令。 6、第五个需求:尝试一下R1和R4直接建立对等体关系。 R1配置如下: [R1-bgp]bgp 100[R1-bgp]peer 34.1.1.4 as 200[R1-bgp]peer 34.1.1.4 ebgp-max-hop 2 R4配置如下 [R4]bgp 200 [R4-bgp]peer 13.1.1.1 as 100 [R4-bgp]peer 13.1.1.1 eb [R4-bgp]peer 13.1.1.1 ebgp-max-hop 2 查看验证(可能需要等一会才可建立邻居成功,等待时间不会超过两分钟) [R1-bgp]dis bgp peer BGP local router ID : 1.1.1.1 Local AS number : 100 Total number of peers : 3 Peers in established state : 3 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 12.1.1.2 4 200 27 38 0 00:17:49 Established 8 13.1.1.3 4 200 55 70 0 00:45:35 Established 8 34.1.1.4 4 200 12 13 0 00:00:02 Established 8 相关查看命令: [R4]dis ip routing-table [R4]dis ospf routing [R4]dis bgp peer [R1-bgp]dis bgp peer 四、配置总结 在配置过程中需要注意以下几点,以免出现错误:1、在建立邻居关系,指定对端路由器地址前,务必保证可以ping通对端路由器。2、AS内部建立BGP邻居关系时,最好指定对方的Loopback地址,但不要忘记更新源,参考命令:“ [R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0 ” 。3、若在AS内部有一个以上的的路由器运行着BGP协议,对于AS内部来说,这也是IBGP协议,不要忘记更改下一跳的属性,也就是前面提到的“保证IBGP下一跳可达”,命令参考:“[R4-bgp]peer 2.2.2.2 next-hop-local”4、前面说到,若在两个不同AS区域的路由器上建立邻居关系,哪怕这两个路由器是直连的,也要改变它的TTL值,目的是让路由器之间用来建立邻居关系的数据包,可以多经过几个路由器,再被丢弃。因为虽然不同AS的路由器是直连的,只有一跳即可,但是由于指定的是对端路由器的loopback地址,loopback地址的网段肯定与路由器直连的网段不是同一个网段,路由器收到该数据包后就把它当成另一个路由器上的地址了。所以在两个AS间建立邻居关系时,一定要改变它的跳数,IBGP之间建立邻居关系就不用改变TTL值了,因为在IBGP中,数据包的TTL值默认为255。改变TTL值的参考命令:“ [R1-bgp]peer 34.1.1.4 ebgp-max-hop 2 ”这条命令,需要跳几下就把数值设置为几就行,可以比实际跳数大,但是不能比实际跳数小。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:53:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |