在Linux上基于源地址路由实现电信网通双线
想要通过普通的静态策略路由来实现电信网通双线基本上是不可能的,因为那将需要维护相当大的一个IP段的数据库,而且还需要随时更新才能保证效果。
后来听前辈们说,可以采用基于源地址路由的方式来处理,让进来的数据,从哪个IP进来就从哪个IP返回。
下面就是一个在生产中得到了实际应用的脚本:
==============================================================
#!/bin/bash
##
## CNC_RULE AND CTC_RULE from /etc/iproute2/rt_tables
## echo 200 cnc >> /etc/iproute2/rt_tables
## echo 201 ctc >> /etc/iproute2/rt_tables
##
CTC_DEVICE="eth0"
CTC_RULE="ctc"
CTC_NETWORK="10.10.10.0"
CTC_GATEWAY="10.10.10.1"
CTC_IPADDR="10.10.10.2"
CNC_DEVICE="eth1"
CNC_RULE="cnc"
CNC_NETWORK="20.20.20.0"
CNC_GATEWAY="20.20.20.1"
CNC_IPADDR="20.20.20.2"
ACTION="add"
if [ $# -ne 0 ]; then
if [ "$1" != "add" -a "$1" != "del" ]; then
echo "error"
else
ACTION="$1"
fi
fi
ip route ${ACTION} ${CNC_NETWORK} dev ${CNC_DEVICE} src ${CNC_IPADDR} table ${CNC_RULE}
ip route ${ACTION} default via ${CNC_GATEWAY} table ${CNC_RULE}
ip route ${ACTION} ${CTC_NETWORK} dev ${CTC_DEVICE} src ${CTC_IPADDR} table ${CTC_RULE}
ip route ${ACTION} default via ${CTC_GATEWAY} table ${CTC_RULE}
ip rule ${ACTION} from ${CNC_IPADDR} table ${CNC_RULE}
ip rule ${ACTION} from ${CTC_IPADDR} table ${CTC_RULE}
ip route add default via ${CTC_GATEWAY}
ip rule add to 200.200.0.0/16 table cnc
==============================================================
在执行脚本之前,先执行以下命令:
echo 200 cnc >> /etc/iproute2/rt_tables
echo 201 ctc >> /etc/iproute2/rt_tables
最后的 ip rule add to 200.200.0.0/16 table cnc 相当于是添加了一个例外,让200.200.0.0/16这个段的直接从cnc出去。
相关文档:
本文档测试环境:
1)Linux操作系统版本:
Red Hat Enterprise Linux Server release 5
2.6.18-8.el5
2)jdk版本
1.5.0_16
Linux下连Java连sap步骤
1)下载sapjco.jar
  ......
1. vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=example.com
GATEWAY=192.168.0.1
NDS1=219.150.32.132 // dns 服务器地址
2. vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:15:E9:B1:32:AF
BOOTPROTO=static
IPADDR=192.168.0.188
NETMASK=255. ......
Linux内核中用于同步的几种机制集中起来分析,强调了它们之间在实现和使用上的不同。
同步通常是为了达到多线程协同的目的而设计的一种机制,通常包含异步信号机制和互斥机制作为其实现的底层。在Linux 2.4内核中也有相应的技术实现,包括信号量、自旋锁、原子操作和等待队列,其中原子操作和等待队列又是实现信号量的 ......
linux中的SHELL函数是可以带参数的.
====代码===
#!/bin/bash
function show()
{
echo $0 #返回脚本本身名字而不是函数名
echo $1 #返回调用时的第一个参数
.
.
.
echo $9   ......
Linux
多线程编程:【
http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html
】
Linux
多线程支持
POSIX
线程接口,称为
pthread,
pthread_create
用来创建线程,
pthread_join
等待线程结束,函数的原型分别如下:
&nbs ......