庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统管理>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Linux下多播路由的实现

 作者:本站收集   日期:2005-4-11
字号选择〖 〗/ 双击滚屏 单击停止   
前言(只是一些废话,不想看的可以略过)
=====================================
多播路由是一个很好的技术,在Internet上实现了对数据的“广播”,不
同于广播的是,由于广播风暴的问题,路由器是禁止广播数据跨路由传送的。
而多播则很好的解决了这个问题。现在M$软件如:Netmeeting,WMS就广泛运
用了多播这种技术。这里讨论的是怎么样把你的Linux架设成一个多播路由器
(一般的网关、路由器是不支持多播数据包通过的)。并不是讨论编写这方面
的应用程序。
本来想把Multicast-Howto译出来的,但看看了,里面全是专业性的废话,
对真正想做这个的人来说,帮助不大,所以还是省点力气吧。再说,可能是因
为mrouted的版本跟不上Linux的内核的发展,在2.2-X上成功编译的人可能不
多,因此也就没有人写这东西了。

1 安装透明网关
===============

1.1 在你的机器上安装多块网卡
安装的方法很多,用你最熟悉的方法装就可以了,象linuxconf之类的。
我这里用的是直接修改配置文件的方法:(看来这家伙是个受虐狂)
修改/etc/conf.modules文件,加入网卡:
alias eth0 ne2k-pci
options ne io=0x300 irq=0x3
alias eth1 ne2k-pci

1.2 设定网卡的IP等一系列数据
第一块卡:
修改/etc/sysconfig/network-scripts/ifcfg-eth0,如果没有这个文件,
手工创建一个,内容如下:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.0.1 <-------你第一块的IP地址
NETMASK=255.255.255.0 <-------子网掩码
BROADCAST=10.0.0.255 <-------广播地址
GATEWAY=10.0.0.1 <-------网关

并把文件设为可执行:
#chmod 755 /etc/sysconfig/network-scripts/ifcfg-eth0

第二块卡:
修改/etc/sysconfig/network-scripts/ifcfg-eth1,如果没有这个文件,
手工创建一个,内容如下:
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.1.1
NETMASK=255.255.255.0
BROADCAST=10.0.1.255
GATEWAY=10.0.1.1

并把文件设为可执行:
#chmod 755 /etc/sysconfig/network-scripts/ifcfg-eth1

设定静态路由:
修改/etc/sysconfig/static-routes,如果没有这个文件,手工创建一个,
内容如下:
eth0 net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1
eth1 net 10.0.1.0 netmask 255.255.255.0 gw 10.0.1.1

允许IP转发:
修改/etc/sysconfig/network,如果没有这个文件,手工创建一个,内容
如下:
NETWORKING="yes"
FORWARD_IPV4="yes" <----允许IP转发
HOSTNAME="test"
GATEWAY="10.0.0.1"
GATEWAYDEV="eth0"

2 给内核加上多播路由支持
========================

2.1 内核默认是不支持的,你得重新编译内核,加入多播路由的支持。
#cd /usr/src/linux
#make menuconfig
确认选中以下的选项:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers

Networking options --->
[*] IP: multicasting
<*> IP: tunneling
[*] IP: multicast routing
存盘退出

2.2 重编译内核
#make dep
#make clean
#make install
经过长时间的等待后,新的内核将会装上去。

3 安装mrouted-3.8
=================

3.1 mrouted是一个多播路由服务,通过它,可以把Linux作为一个多播路由器
来使用。下载:
ftp.parcftp.xerox.com/pub/net-research/ipmulti/

3.2 编译
#tar -zxpvf mrouted-3.81-linux.tgz
#cd mrouted-3.81/mrouted
#make
运气好的话,你一次就能成功编译。哈~ 不过多数情况是象我一样编译
过去的,这是因为内核版本不同,这时你就得手工改写Makefile和里面相
关的.c文件。(不会写Makefile和C语言是玩不转的,呵呵呵)
改动比较多,这里就不写出来的。有需要的同志可以与我联系。
#./Install
这时会问你几个安装上的问题,一路回车就可以了。

3.3 修改/etc/mrouted.conf
找到
tunnel 128.4.0.77 128.4.0.8 metric 1 threshold 64 rate_limit 500
把它用#注释掉。

3.4 把mrouted的相关文件拷到相应的目录:
#cp map-mbone /sbin/
#cp mrinfo /sbin/
#cp mrouted /sbin/
#cp mstat /sbin/
#cp mtrace /sbin/
#cp map-mbone.8 /usr/man/man8/
#cp mrinfo.8 /usr/man/man8/
#cp mrouted.8 /usr/man/man8/
#cp mstat.8 /usr/man/man8/
#cp mtrace.8 /usr/man/man8/

4 编写mrouted的启动文件
=======================

4.1 建立/etc/rc.d/mrouted,内容如下:
#!/bin/sh
# A Script to start mrouted and add a ipchains forward

#把eth0加入多播路由表中
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
#把eth1加入多播路由表中
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth1

/sbin/mrouted

#把两个网段内的IP加入IP转发列表
/sbin/ipchains -A forward -s 10.0.1.2/24 -j MASQ
/sbin/ipchains -A forward -s 10.0.1.3/24 -j MASQ
……中间省略
/sbin/ipchains -A forward -s 10.0.1.253/24 -j MASQ
/sbin/ipchains -A forward -s 10.0.1.254/24 -j MASQ

/sbin/ipchains -A forward -s 10.0.0.2/24 -j MASQ
/sbin/ipchains -A forward -s 10.0.0.3/24 -j MASQ
……中间省略
/sbin/ipchains -A forward -s 10.0.0.253/24 -j MASQ
/sbin/ipchains -A forward -s 10.0.0.254/24 -j MASQ

并把文件设为可执行:
#chmod 755 /etc/rc.d/mrouted

4.2 修改/etc/rc.d/rc.local,让它开机时自动mrouted,在文件的最后加上:
/etc/rc.d/mrouted

这时,多播路由的设置全部完成,这可是双向路由O~

5 windows客户机的设置
=====================
只要在 控制面板->网络->TCP/IP的属性->网关 中,把多播服务器的IP加
上即可。如:
WIN98客户机,IP为10.0.1.2,网关则为10.0.1.1
WIN98客户机,IP为10.0.0.2,网关则为10.0.0.1
设置完成后,就可在客户机启动多播应用程序。实现多播数据的跨路由传
送。

6 存在的问题
============
多播在一些100M网卡上不能被实现,原因未明。如:
DLink的DTF-530TX Rev A 这一版的网卡就不能实现多播。而同是DLink的
DTF-530TX Rev B 这一版的网卡却可以实现多播。因此,安装时要注意这
方面的问题。
对于10M的PCI网卡,兼容性最好的是Realtek 8029。容易安装,也很好用。
上一篇:Apusic负载均衡器    下一篇:守护进程的概念和建立方法  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-11
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿