
调用cmroute.dll,快速添加路由表。
注:本法对于一般的pppoe拨号仍有效(win7下电信宽带pppoe拨号测试通过,只不过稍慢因其中一个系统svchost.exe进程占用一会cpu,机制不明)
新建一个文件夹,准备如下文件:
1、cmroute.dll
这个动态连接库,系统中没有的话,可以从网上自行搜索下载,猛击这里也提供下载(整个文件夹)。
2、addroutes.bat
建立批处理文件内容如下(引号中),用于调用cmroute.dll从而快速添加路由表:
“
echo 正在添加路由表......
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME addchnroutes.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
”
3、addchnroutes.txt
建立txt文件,内含路由表信息,上面的批处理调用这个txt文件,格式如下(引号中):
“add 1.0.1.0 mask 255.255.255.0 default METRIC default IF default”
4、delroutes.bat
上面添加的都是活动路由,重启之后即消失。若要立即删除上述路由则建立:
delroutes.bat,内容如下(引号中)
“
echo 正在删除路由表......
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME delchnroutes.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
”
跟上面添加路由的批处理格式完全一样,不同之处在于读取的txt文件不同。
5、delchnroutes.txt
删除路由表批处理读取的txt文件,ip地址、子网掩码跟添加的一样,add换成delete而已,如下(引号中)
“delete 1.0.1.0 mask 255.255.255.0 default METRIC default IF default”
你这个需求,需要使用iproute2包中的 ip命令完成。首先 /etc/iproute2/rt_tables 里面添加2个table, 对应2个不同的网段(net3 net5)
配置思路是 用ip route 命令为net3 table增加default gw 118.126.3.1,net5 table 增加default gw 118.126.5.1
然后用 ip rule 命令 使用源地址匹配规则 源地址为118.126.3.16的数据包选择 net3 table, 源地址为118.126.5.251的数据包选择net5 table.
当然你也需要设置本机的默认default gw(直接用route命令),那么由本机生成的数据包,默认会选用与default gw连接的那块网卡的ip地址对外通讯(程序指定的除外)。
以上配置对于正常开发的 tcp通讯软件完全可以正确工作,ping也没有问题。 不过某些开发不正确的udp软件可能运行会不正常(这种udp软件,在有两个以上ip地址的主机上工作都会有问题)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)