论坛升级后通告

论坛注册须知

NetEmu社区 FAQ

NetEmu招募新版主

企业IT架构选型选购与应用

中小企业轻松建网实操攻略

论坛强烈声明

广告招租QQ:1164258114

返回列表 回复 发帖

[原创] 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 编辑 ]
附件: 您所在的用户组无法下载或查看附件
oh 强悍
楼主真强,佩服佩服,
顶你!!!!!1
困扰大家多年问题 终于有新的解决方法了
Netemu@gmail.com
QQ:247656
Netemu提问技巧
http://netemu.cn/bbs/thread-8031-1-1.html
楼主帮忙啊,出现下面的问题,原本没有在boot下面看到有modules文件夹,就mkdir modules了一个,并且chmod 777, 但是会出现下面的状况,请帮忙看看是这么了,谢谢!!!!!!!!!!!!!1


附件: 您所在的用户组无法下载或查看附件
哦,还有就是,您的那个syscall文件该用什么打开啊,
我用记事本和写字板打开都是乱码,
楼上的方法是对的了。

但是JunOS的版本不对,我用的是JunOS 8.5

syscall.ko是一个内核补丁,不能用文本编辑器打开
啊啊啊啊啊
FreeBSD可以找得到,但是怎么就没有看到JUNOSR8.5啊,

现在不都是用的JUNOS8.3R2.8吗,

那就惨了,不知,楼主能否分享一份JUNOS8.5,
或者写一个适合于 JUNOS 8.3R2.8的,

希望该要求不是很过分哦,


哈哈哈哈哈哈!
http://www.junipers.cn/Soft/index.html
这里下载 咱还没有上传 junos 8.5个头比较大 150M
如有谁继续可以直接找我
Netemu@gmail.com
QQ:247656
Netemu提问技巧
http://netemu.cn/bbs/thread-8031-1-1.html
这样和cisco模拟器通讯将变得更加简单 更有利于大家搭建不通厂商的试验环境
Netemu@gmail.com
QQ:247656
Netemu提问技巧
http://netemu.cn/bbs/thread-8031-1-1.html
哈哈。。其实最重要的还是LR。。。还是vlan-tagging的功能。。不过,能支持组播也已经很不错了。。。感谢楼主的工作。
嘿嘿,希望小漏能尽快把 junos 8.5 发布出来,
先玩一把新鲜,
也希望能给以后的兄弟提供点自己的使用经验,
感谢了,
楼上的 要要的先加我QQ 247656 我先传给你
Netemu@gmail.com
QQ:247656
Netemu提问技巧
http://netemu.cn/bbs/thread-8031-1-1.html
我狂顶,这是学习网络人的福音,感谢!
VLAN-TAG的问题应该还是驱动的问题吧,据说在服务器版本下可以支持的,期待楼主能把驱动的问题彻底的解决呀。谢谢!!!
y004 这是一个值得庆祝的日子!
楼主的专注精神真的让人敬佩!
谢谢了,,,,,,,DDDDDDDDDDD
Netemu@gmail.com
QQ:247656
Netemu提问技巧
http://netemu.cn/bbs/thread-8031-1-1.html
bu cuo ..................
我晕倒,不知道我下的FREEBSD还是别的原因,始终VM的网卡与真实PC的连不上,那位兄弟提供一个FREEBSD 6。1的下载连接?
good job.
楼主,请帮忙看看。
按照你的方法安装之后,OSPF还是无法建立,
想知道的一个问题就是,如何才能验证  
syscall.ko内核补丁,安装成功
也就是说有没有什么方法可以查看它的状态,或者什么的,
还有遇到的问题是,进入多用户系统下,
出现下面的错误,  不知道这个是否是正常的,如果不是对的,该怎么办啊


附件: 您所在的用户组无法下载或查看附件
输入
kldstat 命令把结果贴上来。

看看能否看到syscall.ko



感觉你模块还没有加载上

# kldload syscall
syscall loaded at 210
max em unit is 4
Error At unit 2 Get Em softc
Error At unit 3 Get Em softc
# ^D


[email=root@%]root@%[/email] sysctl dev.em.0.fix_em_multicast=1
dev.em.0.fix_em_multicast: -1the input para is :
adapter->hw address is 0xc1adc310
mta is 0xc1d472e0
mcnt is 3
em unit updated mc address
-> -1
[email=root@%]root@%[/email] sysctl dev.em.1.fix_em_multicast=1
dev.em.1.fix_em_multicast: -1the input para is :
adapter->hw address is 0xc1ae8310
mta is 0xc1d472e0
mcnt is 3
em unit updated mc address
-> -1

[ 本帖最后由 rwayan 于 2008-1-17 13:16 编辑 ]
首先,感谢。

具体,如图:

看起来syscall是OK的哦
附件: 您所在的用户组无法下载或查看附件
附件: 您所在的用户组无法下载或查看附件
楼主,
請問以下兩個問題
1. kldload需要每次設備reboot後都需要輸入一次嗎?有沒有什麼方法可以解決
2. RIP似乎無法運作

Thanks.
ospf
isis都测试通过了


RIP也是好的,用的是multicast方式

[ 本帖最后由 rwayan 于 2008-1-18 08:33 编辑 ]
原帖由 maxavator 于 2008-1-17 13:47 发表
6331
是fix_em_multicast
不是_fix_em_multicast
你输错了

[ 本帖最后由 rwayan 于 2008-1-17 17:25 编辑 ]
juniper的代码运行是需要验证的,我没有他们的数字签名,所以只能通过单用户模式还没有认证之前,偷偷加载。

当然,这个问题也正在解决之中。。不过有难度。
原帖由 kungan.lin 于 2008-1-17 14:49 发表
楼主,
請問以下兩個問題
1. kldload需要每次設備reboot後都需要輸入一次嗎?有沒有什麼方法可以解決
2. RIP似乎無法運作

Thanks.
返回列表