动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.利用Oracle执行计划机制提高查询.
.Oracle817 版本 不同字符集之间的.
.关于dbms_stats取代analyze.
.unix上的手工建库脚本.
.用Oracle的解析函数发现序列间隙.
.Red Hat Linux 7.1使用手册(下).
.oracle 实现 split 函数 (返回数.
.W2k Server下Oracle 9iAS安装报告.
.Eclipse是如何连接Oracle数据库的.
.自动加载机抢占低端备份市场.
.Oracle 10g分区表维护中的两个注.
.在RHEL上安装Oracle 10g AS 3 St.
.sga中的名词解释.
.在Oracle8i的SQL*Plus中如何利用.
.深入讲解如何使用rollup配合grou.
.讲解Oracle数据库的全文索引设置.
.为何我的导出文件只有500K,导入时.
.ORACLE在HP-UX下的系列问题处理(.
.Oracle中索引树的结构与块的尺寸.
.谈谈Oracle interMedia的用法.

Linux ADSL Multipath Routing Solution

发表日期:2008-2-9 |



  由于前些日子, 我所服务的单位, 决定将原本使用的专线退租, 改用 ADSL 来提供
   上网的服务, 为了降低 ADSL 断线无法联机的情形, 所以由 SeedNet, Hinet 各申
   请了一条单机型的 T1/384 ADSL 来使用.
  
   但是一般 ISP 业者似乎没有提供两条线路频宽合用的服务, 更何况是使用两家不同
   ISP 的线路, 所以决定自己利用 Linux 的 Equal-Cost MultiPath Routing (ECMP)
   功能来解决这个问题.
  
   关于 ECMP 的设定说明, 可以参考
   http://www.study-area.org/tips/m_routing.htm
  
   初期, 我利用上述的功能来处理, 但是发现效率不怎么好, 由于路由的决定, 并不
   是依据 packet 来传送, 所以出去的时候, 同一个 session 只会使用一条线路,
   仍然会经常造成, 明明另一条线路没有什么流量, 但是大家都挤在同一条线路的情
   形发生.
  
   在 iproute2 的说明中有提到 equalize 参数, 会将 packet 分散到不同的线路上
   面, 但是 kernel 需要另外的 patch 才能运作, 上网查了一下, 有找到下面这个
   patch:
  
   http://www.van-dijk.net/linuxkernel/200212/att-0980/01-equalize_2.4.18.patch
  
   测试后发现的确可以同时使用不同的线路传送 packet. 现在说明一下, 如何做到这
   个功能:
  
   1. 你必须要有 iproute2 套件. 另外由于要对 kernel 加上另外的 patch, 所以相关
   的工具也是必要的.
  
   2. 由 www.kernel.org 抓下 linux-2.4.18.tar.bz2 与上述的 patch.
   上述的 patch, 我在 2.4.18 之后的版本都装过, 都可以正常使用, 之前的 kernel
   没有试过, 并不清楚... 不过假如 2.4.18 应该算是 2.4 版本中最稳定的一个版
   本, 假如你还在用旧的 kernel, 建议升级到这个版本.
  
  tommywu@fw:/usr/src$ tar jxvf linux-2.4.18.tar.bz2
  ...
  ...
  tommywu@fw:/usr/src$ cd linux
  tommywu@fw:/usr/src/linux$ patch -p1 < ../01-equalize_2.4.18.patch
  patching file Documentation/networking/load-balancing.txt
  patching file include/linux/in_route.h
  patching file net/ipv4/fib_semantics.c
  patching file net/ipv4/ip_output.c
  patching file net/ipv4/route.c
  patching file net/ipv4/udp.c
  
   这个 patch 并不会新增任何的设定, 所以你可以参考上述 ECMP 文件中的设定选
   项来设定你的 kernel. 然后重新 make 一个新的 kernel 来使用. 我通常会选取
   下面这几个功能:
  
  CONFIG_IP_MULTICAST=y
  CONFIG_IP_ADVANCED_ROUTER=y
  CONFIG_IP_MULTIPLE_TABLES=y
  CONFIG_IP_ROUTE_FWMARK=y
  CONFIG_IP_ROUTE_NAT=y
  CONFIG_IP_ROUTE_MULTIPATH=y
  CONFIG_IP_ROUTE_TOS=y
  CONFIG_IP_ROUTE_VERBOSE=y
  CONFIG_IP_ROUTE_LARGE_TABLES=y
  
   3. 利用上面的 kernel 重新开机之后, 就应该可以使用 equalize 参数了. 多数的设
   定都与上述的 ECMP 文件相同, 只是多了一个 equalize 参数. 举例来说:
  
  # 对外网卡
  EXT_IF="eth0"
  
  # HiNet IP
  EXT_IP1="111.111.111.111"
  EXT_MASK1="24"
  GW1="111.111.111.1"
  
  # SeedNet IP
  EXT_IP2="222.222.222.222"
  EXT_MASK2="24"
  GW2="222.222.222.1"
  
  # 设定 ip
  ip addr add $EXT_IP1/$EXT_MASK1 dev $EXT_IF
  ip addr add $EXT_IP2/$EXT_MASK2 dev $EXT_IF
  
  # 设定 HiNet routing
  ip rule add from $EXT_IP1 lookup 201
  ip route add default via $GW1 dev $EXT_IF table 201
  
  # 设定 SeedNet routing
  ip rule add from $EXT_IP2 lookup 202
  ip route add default via $GW2 dev $EXT_IF table 202
  
  # 设定 Default route
  ip route replace default equalize nexthop via $GW1 dev $EXT_IF nexthop via $GW2 dev $EXT_IF
  
  # 清除 route cache
  ip route flush cache
  
   利用上面的设定, 我们就可以将两条线路合并使用. 以 T1/384 的 ADSL 来说, 一般
   上传的频宽约可到 40KB 上下, 现在利用这个 patch, 我们上传一个档案试看看:
  
  tommywu@hisstby:/usr/src$ FTP ftp.teatime.com.tw
  Connected to www.teatime.com.tw.
  220 ProFTPD 1.2.5rc1 Server (Debian) [211.23.144.122]
  Name (ftp.teatime.com.tw:tommywu): tommy
  331 PassWord required for tommy.
  Password:
  230 User tommy logged in.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> bin
  200 Type set to I.
  ftp> put patch-2.4.19-pre6.bz2
  local: patch-2.4.19-pre6.bz2 remote: patch-2.4.19-pre6.bz2
  200 PORT command sUCcessful.
  150 Opening BINARY mode data connection for patch-2.4.19-pre6.bz2.
  226 Transfer complete.
  3858685 bytes sent in 49.92 secs (75.5 kB/s)
  ftp> quit
  221 Goodbye.
  tommywu@hisstby:/usr/src$
  
   可以超过 40KB, 也就是的确会同时使用到两条线路来传送.
   假如有爱好, 可以到下列的网址查看流量:
  
   http://fw1.tahsda.org.tw/stats/mrtg/
   http://fw2.tahsda.org.tw/stats/mrtg/
  
   要注重这只有出去的 packet 是我们这端所能控制的, 回来的 packet 就不是我们
   可以控制了, 所以出去的流量在不同的线路上看起来是类似的, 但是回来的流量就
   不一定了. 假如要控制进来的流量, 可能要利用 DNS 的方式来控制了.
  
   接下来, 要考虑一条线路断线时, 要改变 routing table 的设定. 由于 ADSL router
   应该都有支持 SNMP 的功能, 所以我们可以利用 SNMP 来判定是否断线. 你要先确定你
   的 linux 中有 snmpd, snmp 套件.
  
   我们有两种方式来处理, 第一种是利用 snmp traps.
  
   以 arcatel 340 来说, 内定的 password 应该是 12345.
  
   telnet 192.168.1.1 之后, 打入密码, 在 > 符号打入 snmp, 就会进入 snmp> 设定
   目录, 打入 snmp trap help 有说明如下:
  
  snmp trap add []
  - add a trap destination
  snmp trap delete []
  - delete a trap destination
  snmp trap flush - delete all trap destinations
  snmp trap list - list trap destinations
  
   假定你要收 trap 的 ip 是 192.168.1.254, 就打入
  
   snmp trap add public 192.168.1.254
  
   就可以了. 这样就应该在该机器可以收到相对的 snmp traps.
   以上面 Hinet/SeedNet 两个线路来说, 假如要在同一网段上, 要先改变其中一个 ATU-R
   的 ip 才可以, 内定都是 192.168.1.1, 我们把其中一个改成 192.168.1.2
  
   然后在 192.168.1.254 机器上安装 snmptrapd, 修改 /etc/snmp/snmptrapd.conf
   加上下面两行:
  
  traphandle .1.3.6.1.6.3.1.1.5.2 /usr/local/bin/adsl_up
  traphandle .1.3.6.1.6.3.1.1.5.3 /usr/local/bin/adsl_down
  
  然后写 adsl_up, adsl_down 两个 script 来更改 route table.
  内容大约是:
  
  #!
/bin/bash
  
  read DUMMY_HOST
  read ROUTE_IP
  
  case "$ROUTE_IP" in
  192.168.1.1)
  ip route replace default ....
  ;;
  *)
  echo "snmp traps from unknown ip?"
  esac
  
   这样子就会在每次断线或恢复联机时收到 ATU-R 的通知了.
  
   另外, 假如不想使用 snmp trap, 要使用 polling 的方式, 主动去查询线路情形,
   可以使用 snmpwalk 来处理, 用上面的例子, 可以先执行
  
  snmpwalk 192.168.1.1 public interfaces.ifTable.ifEntry
  
   会出现一堆资料, 看一下 adsl 在的 index 是 20.
  
  interfaces.ifTable.ifEntry.ifDescr.20 = ADSL physical interface
  interfaces.ifTable.ifEntry.ifType.20 = adsl(94)
  
   线路状态在
  
  interfaces.ifTable.ifEntry.ifOperStatus.20 = up(1)
  
   up(1) 表示联机中, 所以执行
  
  snmpwalk 192.168.1.1 public interfaces.ifTable.ifEntry.ifOperStatus.20
  
   会得到
  
  interfaces.ifTable.ifEntry.ifOperStatus.20 = up(1)
  
   当断线时, 上面就不会在 up(1) 的状态.
   所以可以写个 adsl_test 的 script
  
  snmpwalk 192.168.1.1 public interfaces.ifTable.ifEntry.ifOperStatus.20
   grep "up(1)" wc -l
  
   假如得到 0 就是断线.
  
   上面就是使用 snmpwalk 来查询线路的方法. 这个我在 arcatel 340 上面使用,
   可以正确得知线路
上一篇:中软linux券商管理办公系统解决方案 人气:463
下一篇:Oracle9i 数据库管理实务讲座(七)-Oracle9i 数据库控制文件 人气:519
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号