Linux下多播路由的实现

前言(只是一些废话,不想看的可以略过)

=====================================

多播路由是一个很好的技术,在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

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"

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。容易安装,也很好用。

linux 多播路由查看,实现Linux下多播路由相关推荐

  1. linux bes二进制查看工具,Linux的命令及工具

    1.查看系统运行的进程 # ps auxw 2.netstat命令 查看系统监听的服务 # netstat -ln -a所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连 ...

  2. linux服务器状态查看命令,Linux服务器操作系统查看命令

    Linux服务器操作系统的性能分析我们可以通过命令来查看详细信息.下面由学习啦小编为大家整理了Linux服务器操作系统查看命令,希望对大家有帮助! Linux服务器操作系统查看命令 一 .linux服 ...

  3. centos路由查看命令_CentOS下使用Route命令添加路由

    方法一 添加路由: route add -net 192.168.0.0/24 gw 192.168.0.1 route add -host 192.168.1.1 dev 192.168.0.1 删 ...

  4. linux命令ls查看内存,Linux ls 命令详解

    Linux ls命令详解 Linux中ls命令用于显示指定工作目录下之内容,其内容就是指定的工作目录所含之文件及子目录,该命令的用法为"ls [参数] [目录名]",其常用参数有& ...

  5. linux系统io查看计算,Linux下查看进程IO工具iopp

    Linux下的IO检测工具最常用的是iostat,不过iostat只能查看到总的IO情况.如果要细看具体那一个程序点用的IO较高,可以使用iotop .不过iotop对内核版本和Python版本有要求 ...

  6. linux ps指令查看进程,linux下查看进程指令-ps

    在Linux下查看进程指令可以用ps(process status) 是unix/Linux下通用的进程状态查看工具 ps的常用选项 选项功能介绍 -a显示所有终端中的进程.注意只有与终端关联的进程才 ...

  7. linux usb信息查看工具,Linux下,查看USB设备信息

    首先需要将usbfs挂载一下,然后才能查看. $ mount -t usbfs none /proc/bus/usb $cat  /proc/bus/usb/devices或者在文件(/etc/fst ...

  8. linux飞秋查看共享文件,Ubuntu下的iptux和Windows下的飞秋互传文件

    1.问题 当Linux下的iptux是安装源里的版本时,存在下面的问题: Windows下的飞秋可以向Linux下的iptux发送文件,iptux接受正常 Linux下的iputx给Windows下的 ...

  9. linux依赖关系查看命令,Linux下查看依赖关系

    我们在开发Linux程序时,经常会遇到查看自己的编译结果是否正常调用外部共享库,至少在编译结果能够查看到这层依赖关系.依赖关系有两种,一种是可执行文件依赖共享库,还有一种是共享库依赖共享库,查看方法如 ...

最新文章

  1. 通过js获取元素css3的transform rotate旋转角度方法
  2. 新版本Chrome同源策略、跨域问题处理No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
  3. leetcode- 两数之和
  4. spring MVC使用自定义的参数解析器解析参数
  5. 【Transformer】DETR: End-to-End Object Detection with Transformers
  6. 【MySQL】MySQL数据库SQL优化工具 SQL Tuning Expert for MySQL(收费)
  7. OpenGL ES总结(五)OpenGL ES中pipeLine机制
  8. 【Matlab数学建模】层次分析法
  9. c语言中 cos函数图像,余弦函数图像(cos余弦函数图像)
  10. c语言公历转农历程序,用c如何编写 农历转换成公历
  11. 数据集处理(三)——打乱数据集
  12. 请你谈谈如何破坏双亲委派模型?
  13. AVT Mako/Manta面阵相机开发小结
  14. 在一个老外微信PM的眼中,中国移动App UI那些事儿
  15. Web安全学习笔记二 计算机网络与协议
  16. Easy Mock 的使用
  17. 急,电脑开机自检过不去,(急在线等),
  18. 网络编程二-LINUX网络IO模型
  19. Teamviewer 15.0 中文版 — 远程控制软件
  20. 跳槽次数有点多,简历该这样写!

热门文章

  1. [洛谷P2698] [USACO12MAR]花盆Flowerpot
  2. [ARC101E]Ribbons on Tree
  3. matlab使照片卡通化,怎么样用matlab设计动画直接画出奥运五环
  4. 《般若波罗蜜多心经》白话文翻译版本
  5. 微型计算机的性能主要取决于什么,微型计算机的性能主要取决于什么?
  6. CPU 运行频率监控
  7. Linux libusb USB开发(一)—— USB设备基础概念
  8. WinIo驱动级键盘模拟编程
  9. 存储空间都去哪了?占用空间比文件大太多?可能是文件系统和默认簇大小惹的祸
  10. 计算机桌面太大了,电脑显示器显示太大怎么办