作者:阿言
忘了说了,这个是基于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
已知问题 不支持虚拟路由器,驱动没有能够让em支持VLAN。正在研究中。。。
做这个补丁的主要动力就是个人不是很喜欢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-1-19 20:43 编辑 ]
附件
- syscallv7.zip (2.54 KB)
-
2008-1-19 20:39, 下载次数: 180
再次更新,请重新下载,增加ldp支持 |