免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 754 | 回复: 0
打印 上一主题 下一主题

Linux下多播路由的实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-22 00:20 |只看该作者 |倒序浏览
多播路由是一个很好的技术,在Internet上实现了对数据的“广播”,不
  
  同于广播的是,由于广播风暴的问题,路由器是禁止广播数据跨路由传送的。
  
  而多播则很好的解决了这个问题。现在M$软件如:Netmeeting,WMS就广泛运
  
  用了多播这种技术。这里讨论的是怎么样把你的Linux架设成一个多播路由器
  
  (一般的网关、路由器是不支持多播数据包通?模?2⒉皇翘致郾嘈凑夥矫?
  
  的应用程序。
  
  本来想把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  
  
  
  • 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。容易安装,也很好用。


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/37244/showart_306659.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP