dede网站模板免费下载,网站建设需要注意些什么,去国外做网站,临沂网站建设设计公司文章目录 一、路由器BGP路由的处理过程控制平面和转发平面选路工具 二、BGP的选路顺序选路的前提选路顺序 三、Wight属性选路原则规则9与规则11的潜移默化使用Weight值进行选路直接更改Weight值进行选路配合使用route-map进行选路 四、BGP邻居建立配置 一、路由器BGP路由的处理… 文章目录 一、路由器BGP路由的处理过程控制平面和转发平面选路工具 二、BGP的选路顺序选路的前提选路顺序 三、Wight属性选路原则规则9与规则11的潜移默化使用Weight值进行选路直接更改Weight值进行选路配合使用route-map进行选路 四、BGP邻居建立配置 一、路由器BGP路由的处理过程
路由器对BGP路由的处理过程简单来说就是BGP中的选路过程
控制平面和转发平面
一、控制平面 是从起点到目的地所使用的IGPBGP等路由协议从而控制产生路由表VPNV4路由表标签转发表等
二、转发平面 也叫做数据平面根据刚刚产生的路由表VPNV4路由表标签转发表去进行数据的从起点到目的地的转发 图1-1 选路工具
在 BGP 选路中有两个重要的概念
一、策略机 相当于route-map能够对属性值进行修改影响路由表的生成在控制平面上是一个过程从而影响用户的数据转发
①输入策略机路由进入本地时的route-map我们可以理解为 in 方向会影响自身和下游的路由器
②输出策略机路由离开本地时的route-map我们可以理解为 out 方向只会影响下游的路由器不会影响自身
二、路由决策 根据刚刚的策略机route-map选择出最佳的路径并且将最佳的路径添加到路由表中简单来说就是去哪里哪条路比较方便或近
如图1-2就是BGP路由的处理过程 图1-2 二、BGP的选路顺序
选路的场景主要面对同一个目的网络存在多种去的方式
如图2-1对于R3来说去往192.168.10.0/24有去往R1或R2两条路可以选 图2-1 选路的前提
我们选路的前提是路由的下一跳可达如果说路由的下一跳不可达的话那么选路将不具有任何意义
选路顺序 我们之前学过的那么多个BGP属性都是能够应用到BGP路由的选路当中的但是也是存在依照属性进行选路的顺序的并且如果较为前的属性已经选出最佳路径那么后面的属性将不会影响到属性 例如路由器已经依照Local Preference选出了最佳的路径而MED值无论在怎么进行修改都是无济于事的
选路顺序如下
优选Weight值较高的优选Local Preference值较高的优选AS-Path长度较短的按照Origin属性为IGP、EGP、Incomplete类型的路由进行选路IGP EGP Incomplete优选MED值较小的路由按照EBGP路由接着是联盟EBGP路由最后是IBGP路由的顺序优越最近的IGP邻居通告的路由执行等价负载均衡默认是没有开启等价负载均衡的优选BGP Router-ID 小的 Peer 通告的路由优选Cluster-list长度较短的路由优选较小的 Peer 地址路由器通告的路由
这么多一串顺序我们将会逐一进行讲解本文章所分享的是排位第一个的属性Weight属性
三、Wight属性选路原则
1、Wight权重值Cisco独有的属性但是在锐捷和华为等一系列厂商设备里都有其原因是Weight属性仅在本地有效是传不出去给其它的BGP Peer的。
2、锐捷的Weight在本地默认值是32768并且不可修改Weight选路原则是Weight值越大越优先BGP Peer学到的路由属性应该为0
规则9与规则11的潜移默化
如图3-1当我们的将IPbgp邻居等配置都完成后其实我们的选路顺序已经生效了
文末提供配置过程 图3-1 在我们没有进行配置属性的选路之前BGP 路由已经自动产生了选路
如图3-2从图中BGP 的路由表上可以看出来R4去往1.1.1.1和1.1.2.1的下一跳都是走2.2.2.2的
这是因为我们在什么属性都相同的情况下BGP 选路顺序的第9条和第11条就会自动生效
规则9优选BGP Router-ID长度较短的路由
规则11优选较小的Peer地址路由器通告的路由
对于R4而言很明显BGP Router-ID 较小的是R2这条路径所以才自动进行了选路 图3-2 使用Weight值进行选路
直接更改Weight值进行选路
如果说我们想让R4走R3这条路呢即去往1.1.1.1和1.1.2.1的下一跳是3.3.3.3
我们可以在R4通过直接针对R3对他传来的路由进行修改。下述命令就是在R4上配置使得R3传来的路由R4认为其Weight值为10
如图3-3很明显与各个没有修改Weight值先比现在的下一跳变成了3.3.3.3说明了我们的目的达成了
R4(config)#router bgp 200 //进入BGP进程
R4(config-router)#nei 3.3.3.3 weight 10 //将BGP Peer 3.3.3.3发过来的路由的Weight值都改为10
R4(config-router)#ex图3-3 缺陷但是这样使用命令直接修改有一个弊端那就是只走R4-R3这条路的话R4-R2那条路就已经完全的空闲了下来只有R3出现了灾难的情况在启用R4-R2的路径
如图3-4也就是说我们这样做只起到了主备的作用没有起到链路负载均衡的作用非常地浪费带宽
这样的情况可以通过我们之前提到过的策略机也就是route-map解决起到链路负载均衡的作用 图3-4 配合使用route-map进行选路
如图3-5进行负载的分别结果是1.1.1.1–R3–R11.1.2.1–R2–R1
根据Weight值越大越优先的原则我们可以将对于R2而言在R4上修改1.1.2.1的Weight值为10
可以将对于R3而言在R4上修改1.1.1.1的Weight值为10 图3-5 在R4上增加配置命令如下
R4(config)#access-li 10 per 1.1.1.1 0.0.0.0 //匹配出1.1.1.1的感兴趣流
R4(config)#access-li 20 per 1.1.2.1 0.0.0.0 //匹配出1.1.2.1的感兴趣流
R4(config)#route-map to_R2 per 10 //创建route-map名为to_R2
R4(config-route-map)#mat ip add 20 //设置一个条件匹配出ACL 20的流量,类似于编程里面的if语句
R4(config-route-map)#set weight 10 //当match的条件成立的时候将weight值设为10if成立后就执行什么的语句
R4(config-route-map)#ex
R4(config)#route-map to_R2 per 20
R4(config-route-map)#ex //由于route-map末尾有一跳deny any所以我们这里要写一个空route-map用来匹配那几个感兴趣流之外的路由
R4(config)#route-map to_R3 per 10
R4(config-route-map)#mat ip add 10
R4(config-route-map)#set weight 10
R4(config-route-map)#ex
R4(config)#route-map to_R3 per 20
R4(config-route-map)#ex
R4(config)#router bgp 200
R4(config-router)#nei 2.2.2.2 route-map to_R2 in //将route-map应用到BGP进程中
R4(config-router)#nei 3.3.3.3 route-map to_R3 in
R4(config-router)#exQuestion我们可以试想如果没有那条空的route-map会这么样的
Answer那么将会出现R4上只收到1.1.1.1和1.1.2.1这两条路由却把中间进行传输路由的路由条目给拒绝的所以说我们在配置route-map的时候习惯性的还是需要加一条空路由
如图3-6通过查看R4的BGP路由表可以知道1.1.1.1和1.1.2.1的下一跳都发生了改变
并且也符合我们的预想实现了链路上的负载均衡 图3-6 四、BGP邻居建立配置
附上配置过程
R1
Router(config)#hos R1
R1(config)#int g0/0
R1(config-if-GigabitEthernet 0/0)#ip add 12.1.1.1 24
R1(config-if-GigabitEthernet 0/0)#ex
R1(config)#int g0/1
R1(config-if-GigabitEthernet 0/1)#ip add 12.1.2.1 24
R1(config-if-GigabitEthernet 0/1)#ex
R1(config)#int lo0
R1(config-if-Loopback 0)#ip add 1.1.1.1 32
R1(config-if-Loopback 0)#ex
R1(config)#int lo1
R1(config-if-Loopback 1)#ip add 1.1.2.1 32
R1(config-if-Loopback 1)#ip add 1.1.2.1 32
R1(config-if-Loopback 1)#ex
R1(config)#router bgp 100
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#nei 12.1.1.2 remote-as 200
R1(config-router)#nei 12.1.2.3 remote-as 200
R1(config-router)#netw 1.1.1.1 mask 255.255.255.255
R1(config-router)#netw 1.1.2.1 mask 255.255.255.255
R1(config-router)#exR2
R2en
R2#conf
R2(config)#hos R2
R2(config)#int g0/0
R2(config-if-GigabitEthernet 0/0)#ip add 12.1.1.2 24
R2(config-if-GigabitEthernet 0/0)#ex
R2(config)#int g0/1
R2(config-if-GigabitEthernet 0/1)#ip add 12.1.3.2 24
R2(config-if-GigabitEthernet 0/1)#ex
R2(config)#int lo0
R2(config-if-Loopback 0)#ip add 2.2.2.2 32
R2(config-if-Loopback 0)#ex
R2(config)#router ospf 10
R2(config-router)#rou 2.2.2.2
Change router-id and update OSPF process! [yes/no]:yes
R2(config-router)#netw 2.2.2.2 0.0.0.0 area 0
R2(config-router)#netw 12.1.3.0 0.0.0.255 area 0
R2(config-router)#ex
R2(config)#router bgp 200
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#nei 12.1.1.1 remote-as 100
R2(config-router)#nei 4.4.4.4 remote-as 200
R2(config-router)#nei 4.4.4.4 update-sou lo0
R2(config-router)#nei 4.4.4.4 next-hop-self
R2(config-router)#exR3
Routeren
Router#conf
Router(config)#hos R3
R3(config)#int g0/0
R3(config-if-GigabitEthernet 0/0)#ip add 12.1.2.3 24
R3(config-if-GigabitEthernet 0/0)#ex
R3(config)#int g0/1
R3(config-if-GigabitEthernet 0/1)#ip add 12.1.4.3 24
R3(config-if-GigabitEthernet 0/1)#ex
R3(config)#int lo0
R3(config-if-Loopback 0)#ip add 3.3.3.3 32
R3(config-if-Loopback 0)#ex
R3(config)#router ospf 10
R3(config-router)#rou 3.3.3.3
Change router-id and update OSPF process! [yes/no]:yes
R3(config-router)#netw 3.3.3.3 0.0.0.0 area 0
R3(config-router)#netw 12.1.4.0 0.0.0.255 area 0
R3(config-router)#ex
R3(config)#router bgp 200
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#nei 12.1.2.1 remote-as 100
R3(config-router)#nei 4.4.4.4 remote-as 200
R3(config-router)#nei 4.4.4.4 update-sou lo0
R3(config-router)#nei 4.4.4.4 next-hop-self
R3(config-router)#exR4
R4en
R4#conf
R4(config)#hos R4
R4(config)#int g0/0
R4(config-if-GigabitEthernet 0/0)#ip add 12.1.3.4 24
R4(config-if-GigabitEthernet 0/0)#ex
R4(config)#int g0/1
R4(config-if-GigabitEthernet 0/1)#ip add 12.1.4.4 24
R4(config-if-GigabitEthernet 0/1)#ex
R4(config)#int lo0
R4(config-if-Loopback 0)#ip add 4.4.4.4 32
R4(config-if-Loopback 0)#ex
R4(config)#int lo1
R4(config-if-Loopback 1)#ip add 4.4.3.4 32
R4(config-if-Loopback 1)#ex
R4(config)#router ospf 10
R4(config-router)#rou 4.4.4.4
Change router-id and update OSPF process! [yes/no]:yes
R4(config-router)#netw 4.4.4.4 0.0.0.0 area 0
R4(config-router)#netw 12.1.3.0 0.0.0.255 area 0
R4(config-router)#netw 12.1.4.0 0.0.0.255 area 0
R4(config-router)#ex
R4(config)#router bgp 200
R4(config-router)#nei 2.2.2.2 remote-as 200
R4(config-router)#nei 2.2.2.2 update-sou lo0
R4(config-router)#nei 3.3.3.3 remote-as 200
R4(config-router)#nei 3.3.3.3 update-sou lo0
R4(config-router)#netw 4.4.4.4 mask 255.255.255.255
R4(config-router)#net 4.4.3.4 mask 255.255.255.255
R4(config-router)#ex