Patch for MultiCast in Olive with VMware(版本重要变更,支持逻辑路由器!)
作者:阿言
忘了说了,这个是基于JunOS 8.5R1.14做的。JunOS8.5是基于FreeBSD6.1的 ,老的版本是基于FreeBSD4.10的,可能不行。
请大家自行安装JunOS8.5。
使用方法
1、将补丁下载到Olive中的/boot/modules目录中
2、进入单用户模式
在开机出现BTX loader的时候,拼命按空格,出现提示界面后输入boot -s回车
回车
进入shell
3、加载补丁
输入kldload syscall,或者kldload ./syscall.ko(在补丁存在的目录)
4、回到多用户模式
在shell中按Ctrl+D
5、应用补丁
登陆Olive
输入
sysctl dev.em.0.fix_em_multicast=1
如果有多个网卡请增加
sysctl dev.em.1.fix_em_multicast=1
sysctl dev.em.2.fix_em_multicast=1
等
个人建议,用自动执行脚本来完成上述输入,避免每次开机的重复劳动。
我用的是SecureCRT的脚本。
VMWARE的Olive就可以支持ospf,RIP,ISIS、ldp、mpls vpn已经测试通过!
原理篇
em在vmware olive 不好用的主要原因就是 olive对em的驱动不好。
驱动没有让网卡接收组播的报文。。。
这个补丁,修订了网卡的mac地址接收寄存器。增加其他协议的组播mac地址就可以支持其他协议了。
所以我写了需求请大家汇总一下需要处理的组播mac,例如
已知
ospf的是01-00-5e-00-00-01
rip 的是01-00-5e-00-00-09
ISIS的是01-80-C2-00-00-14 和 01-80-C2-00-00-15
ldp的是01-00-5e-00-00-02
VRRP的是01-00-5e-00-00-18
已经支持逻辑路由器,欢迎使用。
做这个补丁的主要动力就是个人不是很喜欢windows 下的qemu,速度很慢。
欢迎大家反馈问题和讨论。。。
root> show route
inet.0: 14 destinations, 17 routes (14 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1.1.1.1/32 *[OSPF/10] 00:14:29, metric 2
> to 10.248.195.249 via em0.0
[IS-IS/15] 00:55:39, metric 11
> to 10.248.195.249 via em0.0
1.1.1.3/32 *[IS-IS/15] 00:12:37, metric 21
> to 10.248.195.249 via em0.0
1.1.1.4/32 *[OSPF/10] 00:04:01, metric 52
> to 10.248.195.249 via em0.0
2.2.2.0/24 *[Direct/0] 18:01:30
> via em1.0
2.2.2.2/32 *[Local/0] 18:01:30
Local via em1.0
3.3.3.3/32 *[Direct/0] 21:47:20
> via lo0.11
10.0.12.0/24 *[RIP/100] 00:12:36, metric 2, tag 0
> to 10.248.195.249 via em0.0
10.0.13.0/24 *[IS-IS/15] 00:12:37, metric 11
> to 10.248.195.249 via em0.0
[RIP/100] 00:12:36, metric 2, tag 0
> to 10.248.195.249 via em0.0
10.0.14.0/24 *[OSPF/10] 00:04:20, metric 51
> to 10.248.195.249 via em0.0
[RIP/100] 00:12:47, metric 2, tag 0
> to 10.248.195.249 via em0.0
10.248.0.0/16 *[RIP/100] 17:29:17, metric 2, tag 0
> to 10.248.195.249 via em0.0
10.248.195.0/24 *[Direct/0] 21:47:20
> via em0.0
10.248.195.222/32 *[Local/0] 21:47:20
Local via em0.0
224.0.0.5/32 *[OSPF/10] 00:15:14, metric 1
MultiRecv
224.0.0.9/32 *[RIP/100] 00:15:14, metric 1
MultiRecv
__juniper_private2__.inet.0: 1 destinations, 1 routes (0 active, 0 holddown, 1 hidden)
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
49.0000.0000.0000.0002/72
*[Direct/0] 20:42:05
> via lo0.11
[ 本帖最后由 rwayan 于 2008-5-1 10:23 编辑 ]
附件
-
syscall11.rar
(2.55 KB)
-
2008-5-1 10:22, 下载次数: 628
支持逻辑路由器了,大家试试