知识大全 Linux 平台上之 Multipath Routing 应用

Posted

篇首语:举世皆浊我独清,众人皆醉我独醒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Linux 平台上之 Multipath Routing 应用相关的知识,希望对你有一定的参考价值。

Linux 平台上之 Multipath Routing 应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  $Date: / / : : $     警告:   *****************************************************************************     您因使用或不能使用本文之教学而产生之任何软件 硬件损害(包括但不限   于直接或间接个人损害 营业利润之丧失 业务中断 营业信息之遗失 或   任何其它金钱损失) 概不负任何损害赔偿责任     The author has taken care in the preparation of this paper but   make no expressed or implied warranty of any kind and assume no   responsibility for errors or omissions No liability is assumed for   incidental or consequential damages in connection with or arising   out of the use of the information or programs contained herein     Linux is a registered trademark of Linus Torvalds Other product   and pany names mentioned herein may be the trademarks of their   respective owners   *****************************************************************************     撰稿/整理: Rex Tsai   此文件应有许多技术上得问题 请熟悉的朋友来信指教     [Introduction]     许多中小企业或是 Soho 甚至家庭 会在家中装有一条以上宽频/宽带线路   这篇 Tips 将介绍如何在 Linux 上 好好的应用这些资源     在你使用两家不同的 ISP 的时候 destination address based load   balancing 将会是最好的解决方案 你的封包可以实时透过不同的 ISP 线路   走出去 当然这里所提的是从内部到外部 如果你的专线提供不同的网络服   务提供给网络上得人存取 那么接下来所说明的方式不适合您   此篇文章只能提供内部网络对外的 load sharing     以下文章以 GNU/Debian Linux kernel iproute 为   环境 所有动作请在主机前面执行     假设你有两条以上的网际网络数据线路 (xDSL ISDN Cable whatever )   想充分使用这些线路 概观来看有三种方式      Multiplexing    Packet wise load balancing    Destination address based load balancing   或称 Equal Cost MultiPath Routing (ECMP)     稍微解释一下三种方式的不同      Multiplexing     Multiplexing 这个方式提供某些路由器提供 offer load balancing 或叫   做 load sharing 这个方式可以让路由器将流量分给不同的外流 ports   但是会造成每个 port 的传送上约有 % 的 overhead 此外 每家厂商的   实作都是独一的 因次你会被锁在特定的解决方案上     类似的技术是 bonding 或是 multi link 这里所提得 Bonding 是一   个标准 是由 Bandwidth on Demand Interoperability Group (一个大   概有四十个制造商的协会)所提 已经提交给 American National Standards   Institute TR group 这个通常的在于两条数据线路都是接在同一个   点(ISP)上的时候 因此如果是两条不同 ISP 所提供的线路 那么就没办法   达到这个目的 当然 如果你的 ISP 不提供此项技术服务 那么也是没辙   举个例子 像是 stick multiple ISDN channels 将几个慢速的线路合成为   快速的一条 像是 ISDN H 规格即用到 inverse multiplexing 但通常   用于视讯传输而不是电子资料      Packet wise load balancing:     这个在你可以得到所有的 ISP 协助的时候是可行的 如果两家 ISP 都愿意   协助将其不同的路由器皆设定到同一个 IP 地址 那么便可以这么作     在这个方式中 你会用到像是 sch_teql (the TEQL scheduler) 来创造一个   virtual device 将你的封包分散在不同的网络接口上     一般来讲 如果你是使用两家不同 ISP 那么你不可以使用这个解决方案   但 你 可以 将所有的网络封包透过 IPIP or CIPE (Crypto IP Encapsu   lation) 的方式来解决这个问题 看看 Linux Kernel 中的 IP: tunneling      Equal Cost MultiPath:     在 Linux 核心中叫做 equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH)   比较正确的说法应该是 destination address based load balancing 一   般 Linux 想要为某个 IP 地址找到路由 会因为效能的问题去查验暂存(cache)   中的资料 如果目标 IP 并没有在暂存空间中 那么他便会去查 routing table   来决定该 IP 地址的路由 并将该路由放进 cache 中       一般来讲核心中的路由功能只能为某个封包决定唯一的方向 如果使用 ECMP 并   有机会让某个 package pattern 具有好几种不同的方向 可以让某个符合路由条   件的封包透过 equal cost 或是自订的权重来选择该走的路由     [Howto]     如果你有数台计算机想使用外部网络 一条 ADSL 不够你使用(例如某人抓档太凶)   那么这是你正在找的解决方案 你所能做的作好的方式就是每个 connection 可以   以 non deterministic fashion 的方式选择路由 将 connection 分散到不同的   Router 上 注意: 这里所说的不是 packets 这样 TCP/IP session 将无法连续     但是这整个路由程序有两个部份四个问题要解决      a How to get your packets to the outside world      b How the outside world replies to you      a How the outside world sends packets to you      b How you reply to the outside world     Multipath 可以解决 a 出去的问题 一般的路由设定可以解决 b 与 a 而 b   则必须使用 policy routing (multiple tables)才能解决 Multiple Tables 可以   让你加入以封包来源地址为依据来决定路由     以下的范例 在核心中 务必加入编译以下选项     必备:     CONFIG_NETLINK=y   这个选项是 Kernel/User netlink socket     CONFIG_RTNETLINK=y   Routing messages     CONFIG_INET=y   TCP/IP neorking     CONFIG_IP_ADVANCED_ROUTER=y   IP: advanced router     CONFIG_IP_MULTIPLE_TABLES=y   IP: policy routing     CONFIG_IP_ROUTE_MULTIPATH=y   IP: equal cost multipath     选用:     CONFIG_IP_ROUTE_LARGE_TABLES=y   一般来讲 IP: large routing tables 也会勾选 一方面 routing   zones 可以大于 笔 这些数据存在 hash 数据结构中 也可以   加速 the routing process     而 iproute 套件也是必须的软件 这个软件的安装方式与位置请洽询提供   您所使用套件之厂商/组织 (Red Hat Debian Mandrake SuSE etc )     重头戏来了 这里假设你有三块网络卡 分别给内部网络与两家 ISP eth   是内部网络 eth 与 eth 是其它两家 ISP 线路     eth 是内部网络 范围是 /     eth 其中一家 ISP IP 是 网关器(gateway)是     eth 另外一家 ISP IP 是 网关器(gateway)是       # 列出所有的 rule   ip rule list     # table 后的 是 table identifer 为数字   # 注: 可用英文代称取代请看 /etc/iproute /rt_tables   #   # table 是给在 gateway 后面的内部网络使用 x 是 LAN 使用的 IP   #   # pref 后面指定的 是 priority 为 policy routing database 搜寻的次序     ip rule add pref to / table   ip route add / table dev eth     # table 给 ISP # IP gateway   # pref 后面指定的 是 priority 为 policy routing database 搜寻的次序   ip rule add pref from table   ip route add default table via     # table is for ISP # IP gateway   ip rule add pref from table   ip route add default table via     # 列出所有的 rule   ip rule list   # 列出 table 的 rule   ip route list table   # 列出 table 的 rule   ip route list table     # If your ISP s have servers that authenticate by originating IP address   # (e g SMTP or NNTP servers) you will want to explicitly list them here     # 这里是静态的 routing table 设定 如果你的 ISP 有提供某些网络服务 必须该   # ISP 的 IP 才能使用 那么你会想将它设定在这里   # (e g Proxy SMTP or NNTP Server)   ip route add / dev eth   ip route add / dev eth     # 如果上面所有的 rout cha138/Article/program/Oracle/201311/16666

相关参考

知识大全 Linux平台数据库大比拼(3)

Linux平台数据库大比拼(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  评估大量因素  

知识大全 Linux平台数据库大比拼(1)

Linux平台数据库大比拼(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当第一次有人建议

知识大全 用NuSphere MySQL快速构建Linux网络平台

用NuSphereMySQL快速构建Linux网络平台  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 如何在Linux平台下使用JNI提高Java效率

如何在Linux平台下使用JNI提高Java效率  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 系统启动脚本分析(6)--其它一些脚本简介

  摘要  这段时间在搞一个微型的Linux将它作为一个项目的平台这个过程中看了研究了一下Linux的启动过程同时把启动配置文件看了一下作了一下注释同时和大家共享一下:)我使用的Linux平台是Red

知识大全 sqlplus中隐患组合键

  关于sqlplus中隐患组合键今天就来详细解说一下吧!  SQLPlus  在UNIX/Linux平台中的SQL*Plus命令行提示符下如果误按了组合键  Ctrl+S那么这个会话将被锁定输入任何

知识大全 开源之旅——数据库篇(图)

  第一站 走进开源数据库    %的投入 实现%的理想    在Linux这种开放源代码的操作系统已经逐渐被越来越多的企业应用时在基础软件平台的另一端开源数据库开始显山露水    近年来美国一些大企

什么是复发性口疮?

复发性口疮又称复发性阿弗他溃疡(RAU)、复发性阿弗他口炎(RAS)、复发性口腔溃疡(ROU),习惯上称为口疮,是口腔粘膜病中最常见的一种病。在普通感冒、消化不良、精神紧张、郁闷不乐等情况下都能偶然发

知识大全 Linux 网管 123 --- 概观 Linux

Linux网管123---概观Linux  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  bySt

知识大全 使用eclipse调用.net web service

  以前我用的开发框架都是net现在换成javaEE框架和linux平台还需要一段时间的学习有时在测试工作中需要实现一些功能但是又不会用java实现怎么办呢?这里有一个方法使用net的框架开发webs