请画一个小人游戏:利用虚拟下一跳实现IBGP的负载均衡
来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 11:41:38
在一个较复杂的大型网络中,一般采用IBGP(内部边界网关协议)协议承载用户路由,一方面IBGP协议属性较多,利于实现各种复杂的路由控制策略,另一方面IBGP协议较为稳定,不会因为用户路由和其他AS(自治系统)路由的波动引发内部网络的不稳定性。但大型网络中流量很大,冗余性和冗灾性要求很高,因此从一个节点到另一个节点之间通常有多条路径实现冗余备份,如何在不同路径之间实现负载均衡也显得十分重要。
IBGP负载均衡存在的问题和局限性
在一个复杂的大型网络中打开IBGP负载均衡可能会带来很难预料的结果。众所周知,在存在多条冗余路径时,IBGP按Weight(权重)、 Local Preference(本地优先)、AS-path(自治系统路径)、Origin Code(起源)、MED(公制值)、ROUTER_ID(路由器标识)等条件进行比较选路。假设每条路由的Weight、Local Preference、AS-path、Origin Code完全一样,全网打开IBGP负载均衡,则从源到目的的所有路径上只要MED路径相同,均可实现负载分担,如此带来的弊端是一方面从源到目的的流量在大量路由器之间穿透,各路径之间的流量难以控制,另一方面目前INTERNET全网路由约20万条,各路由器路由转发表将十分庞大,对设备资源消耗过多,影响路由器的性能。
如果不打开IBGP的负载均衡,将会引发另外一个问题——如果目的网络有两台负载均衡路由器,假设源到目的路由的Weight、Local Preference、AS-path、 Origin Code、MED均相同,则根据IBGP选路顺序,在Weight、Local Preference、 AS-path、Origin Code、MED均相同的情况下,根据ROUTER_ID大小进行选路,因此从源到目的流量只选择ROUTER_ID小的路由器,不能做到负载均衡。
利用虚拟下一跳实现IBGP的负载均衡具体实现
针对以上问题,可以采取利用虚拟下一跳实现IBGP的负载均衡办法。假设网络中用IBGP承载用户路由,IGP(内部网关协议)为IS-IS(中间系统至中间系统),在两台目的路由器中分别设置一个虚拟相同的地址,在与其他IBGP邻居路由器宣告路由时,将该地址作为到达下一跳地址,在两台目的路由器上再分别配置一条静态路由,将该虚拟地址的下一跳指向真实的网络地址。采用该方式后,再看从源到目的的流量将如何选路。由于Weight、Local Preference、AS-path、Origin Code、MED均相同的情况下,强行将到达目的的路由下一跳指向相同的虚拟地址。该地址对于源路由器在选路时完全相同,将以负载均衡的方式分别发送到两台目的路由器。
采用此方法,还可以在目的路由器建立IBGP邻居中设置Route-map(路由图) 控制虚拟路由下一跳指向具体路由数量,而其他路由下一跳不变,提高路由的可控性。
通过采用虚拟下一跳的技术实现IBGP的负载均衡,对设备性能几乎无影响,实现简单,对于复杂网络有利于控制策略的部署。
IBGP负载均衡存在的问题和局限性
在一个复杂的大型网络中打开IBGP负载均衡可能会带来很难预料的结果。众所周知,在存在多条冗余路径时,IBGP按Weight(权重)、 Local Preference(本地优先)、AS-path(自治系统路径)、Origin Code(起源)、MED(公制值)、ROUTER_ID(路由器标识)等条件进行比较选路。假设每条路由的Weight、Local Preference、AS-path、Origin Code完全一样,全网打开IBGP负载均衡,则从源到目的的所有路径上只要MED路径相同,均可实现负载分担,如此带来的弊端是一方面从源到目的的流量在大量路由器之间穿透,各路径之间的流量难以控制,另一方面目前INTERNET全网路由约20万条,各路由器路由转发表将十分庞大,对设备资源消耗过多,影响路由器的性能。
如果不打开IBGP的负载均衡,将会引发另外一个问题——如果目的网络有两台负载均衡路由器,假设源到目的路由的Weight、Local Preference、AS-path、 Origin Code、MED均相同,则根据IBGP选路顺序,在Weight、Local Preference、 AS-path、Origin Code、MED均相同的情况下,根据ROUTER_ID大小进行选路,因此从源到目的流量只选择ROUTER_ID小的路由器,不能做到负载均衡。
利用虚拟下一跳实现IBGP的负载均衡具体实现
针对以上问题,可以采取利用虚拟下一跳实现IBGP的负载均衡办法。假设网络中用IBGP承载用户路由,IGP(内部网关协议)为IS-IS(中间系统至中间系统),在两台目的路由器中分别设置一个虚拟相同的地址,在与其他IBGP邻居路由器宣告路由时,将该地址作为到达下一跳地址,在两台目的路由器上再分别配置一条静态路由,将该虚拟地址的下一跳指向真实的网络地址。采用该方式后,再看从源到目的的流量将如何选路。由于Weight、Local Preference、AS-path、Origin Code、MED均相同的情况下,强行将到达目的的路由下一跳指向相同的虚拟地址。该地址对于源路由器在选路时完全相同,将以负载均衡的方式分别发送到两台目的路由器。
采用此方法,还可以在目的路由器建立IBGP邻居中设置Route-map(路由图) 控制虚拟路由下一跳指向具体路由数量,而其他路由下一跳不变,提高路由的可控性。
通过采用虚拟下一跳的技术实现IBGP的负载均衡,对设备性能几乎无影响,实现简单,对于复杂网络有利于控制策略的部署。
利用虚拟下一跳实现IBGP的负载均衡
Linux下双网卡绑定技术实现负载均衡和失效保护 - 东写西读终见大海无量 - ITeye...
Nginx负载均衡和LVS负载均衡的比较分析
Linux 下 nginx 负载均衡配置
windows 下 Nginx + tomcat 负载均衡配置
Nginx 简单的负载均衡配置示例
服务器负载均衡的部署方式
利用静态同步转换器实现负载平衡和谐波抑制
lvs负载均衡
nginx 负载均衡配置
memcached集群负载均衡
Nginx负载均衡基础知识
什么是负载均衡?
基于apache的tomcat负载均衡和集群配置
Apache+Tomcat关于Session Sticky的负载均衡
Radware:如何实现CDN内容发布网全局负载均衡与内容请求路由
在Linux Cluster 实现负载平衡的软件
“软”负载均衡学习点滴(一) - 文初的分享空间 - CSDN博客
添加服务器做负载均衡方法
路由器基础知识:全面解读负载均衡技术
服务器群动态负载均衡综合方案
IIS主机下 利用httpd.ini实现wordpress页面的伪静态化
LINUX下查看CPU负载
虚拟世界的意义(下) 徐兆寿