RHLinux下ipv4多播路由的配置和测试

一 测试环境
1 网络拓扑
交换机
internet route
eth1 eth0

(不好意思网络拓扑帖不上)
  ip地址分配:(linux图形下进行配置)
  eth1:202.198.a.b   //外网入口
  eth0:192.168.0.1   //内网出口
  host1:192.168.0.2 //子网内主机
  host2:192.168.0.3 //子网内主机
2 对外访问
这里我们采用的是简单的NAT(可参考局域网建设相关内容),使得内网可以访问外网
  在/etc/rc.local中加入以下内容
  
echo "1">;/proc/sys/net/ipv4/ip_forward  //开启转发功能
/sbin/modprobe ip_tables              //加载相应的内核过滤模块  
/sbin/modprobe iptable_filter           
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth1 -j SNAT --to-source 202.198.a.b
保存文件
chmod +x /etc/rc.local
执行文件/etc/rc.local
测试局域网:
host1上:ping 192.168.0.2  
          ping 192.168.0.1
          ping 202.198..a.254  //route的网关地址 这一步通了说明我们已经配置成功了

我们的网络可以很好的工作了,但是还不知组播,接下来我们让它来为我们的组播工作。


二 配置多播路由  
1. 软件需求:
mrouted3.9beta3
  ftp://ftp.rge.com//pub/communica ... ed-3.9-beta3.tar.gz
mrouted Linux patch:
ftp://ftp.debian.org/debian/dist ... 3.9-beta3-1.diff.gz  
2 内核要求:
  linux内核(我的rh9 2.4.20) 改内核不需要重新编译已经满足一下条件
  以下几项需要选中
Networking options  --->;   
      IP: multicasting                                                   
IP: advanced router
IP: multicast routing                                      
   IP: PIM-SM version 1 support                           
       IP: PIM-SM version 2 support   
3 安装mrouted:
假设你的文件下载到/tmp目录
cd /usr/src  
tar xvzf /tmp/mrouted-3.9-beta3.tar.gz  
gunzip /tmp/mrouted_3.9-beta3-1.diff.gz | patch -p0
得到的输出结果
patching file `mrouted-3.9-beta3.orig/Makefile'  
patching file `mrouted-3.9-beta3.orig/defs.h'  
patching file `mrouted-3.9-beta3.orig/pathnames.h'  
patching file `mrouted-3.9-beta3.orig/debian/init.d'  
patching file `mrouted-3.9-beta3.orig/debian/changelog'  
patching file `mrouted-3.9-beta3.orig/debian/copyright'  
patching file `mrouted-3.9-beta3.orig/debian/dirs'  
patching file `mrouted-3.9-beta3.orig/debian/control'  
patching file `mrouted-3.9-beta3.orig/debian/rules'  
patching file `mrouted-3.9-beta3.orig/debian/README.debian'  
patching file `mrouted-3.9-beta3.orig/igmp.i'  
patching file `mrouted-3.9-beta3.orig/netinet/ip_mroute.h'  
patching file `mrouted-3.9-beta3.orig/vers.c'
cd mrouted*
该软件是应用在FreeBSD下,要再我们这里使用需要做一下修改
998: fprintf(stderr, "%02d:%02d:%02d.%03ld %s", thyme->;tm_hour,
999:               thyme->;tm_min, thyme->;tm_sec, now.tv_usec / 1000, msg);      
修改成:
998: fprintf(stderr, "now: %s",
999:                    msg);
make  
到这里mrouted安装完毕。
4 mroute配置文件
安装完之后,我们创建文件/etc/mrouted.conf,加入以下内容,我们也可以使用默认配置。

phyint eth0 rate_limit 0 igmpv1  
phyint eth1 rate_limit 0 igmpv1
在这里你可以加更多的配置信息,上面两句是说明mrouted使用igmpv1在eth0和eth1接口,并且rate limit为0, 现在的linux都支持igmpv1和igmpv2但是我们测试v2是否在这里也能工作。
   
5 配置静态路由:
route add –net 224.0.0.0 netmask 240.0.0.0 dev eth0
这里的eth0是组播数据的出口,你可以根据自己的情况修改。
启动mrouted
mrouted –c /etc/mrouted.conf –d

可以把它的启动加在/etc/rc.local中。