我也来说一下QEMU[成功运行两个QEMU进程,并且两个JUNOS的LR可以互相通信]
先来说说安装部分,这部分可以参考ronson那位的PDF手册(不过这个安装非常简单,就是freebsd和junos的安装,注意一下qemu的启动命令就可以了)。不过在此说一下:
1/我使用jqemu.exe那个文件,并且修改为juniper.exe直接copy到qemu 0.9.0的安装目录中
2/我是直接安装的JUNOS 7.2版本,没有安装JUNOS 7.4 & 8.x 版本。个人觉得7.2完全够你用了,没有必要追求过高的版本!
3/另外需要安装kqemu加速模块
4/启动命令中没有加载tap,另外-L 指定的是pc-bios目录,因为我的bios.bin在pc-bios目录下
juniper.exe -L pc-bios -m 128 -hda d:\softs\network\juniper\qemu\olive\olive1.vmdk -cdrom d:\tools\4.8-RELEASE-i386-mini.iso -boot d -localtime -net nic,vlan=3,macaddr=00:d0:f8:33:33:33,model=i82559er -net nic,vlan=2,macaddr=00:d0:f8:22:22:22,model=i82559er -net nic,vlan=1,macaddr=00:d0:f8:11:11:11,model=i82559er
--以上命令是安装freebsd
juniper.exe -L pc-bios -m 256 -hda d:\softs\network\juniper\qemu\olive\olive1.vmdk -hdb d:\softs\network\juniper\qemu\olive\junos.vmdk -cdrom d:\softs\network\juniper\qemu\olive\junos.iso -boot c -localtime -net nic,vlan=3,macaddr=00:d0:f8:33:33:33 -net nic,vlan=2,macaddr=00:d0:f8:22:22:22 -net nic,vlan=1,macaddr=00:d0:f8:11:11:11
--以上命令是copy JUNOS到单独的一个vmdk磁盘中(如果你重新安装JUNOS则不必加载cdrom了,因为junos.vmdk已经存在了junos的软体了)并且开始安装junos,装完提示你reboot时请halt系
统,然后利用下面的脚本启动olive否则你就没有串口了
juniper.exe -L pc-bios -m 256 -hda d:\softs\network\juniper\qemu\olive\olive1.vmdk -boot c -localtime -net nic,vlan=3,macaddr=00:aa:00:00:01:00,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:01:01,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:01:02,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:01:03,model=i82559er -net socket,vlan=3,listen=:2008 -kernel-kqemu -serial telnet::1977,server,nowait
--以上命令是启动第一台olive1的命令。其注意我没有加载任何tap,但是利用socket方式实现两个qemu进程间通信
到此安装部分就基本结束了,本来我是想直接复制olive1.vmdk 到olive2.vmdk,然后用qemu启动,但是不知道为何就是can't open olive2.vmdk,无奈我就重新做了个olive2.vmdk
安装完毕后,利用上面的最后一个qemu启动olive1,然后等cpu和内存下来后,利用下面的qemu命令启动olive2
juniper.exe -L pc-bios -m 256 -hda d:\softs\network\juniper\qemu\olive\olive2.vmdk -boot c -localtime -net nic,vlan=3,macaddr=00:aa:00:00:02:00,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:02:01,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:02:02,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:02:03,model=i82559er -net socket,vlan=3,connect=127.0.0.1:2008 -kernel-kqemu -serial telnet::1978,server,nowait
--请注意-net socket,此刻是采用socket connecting,以便保证olive1发送的包可以被vlan 3的olive2收到
当两个olive都启动好后,我加载了我以前做过的试验脚本,里面包含了30台logical路由器的配置,全部测试通过:vlan-tagging (两台olive之间,一台olive以内均正常),rip,isis,bgp,ldp,mpls,rsvp,radius,icmp...但是UDP的traceroute还是有looping的小问题,但是你可以用extension ping来实现类似traceroute的路径检测功能。
由于考虑到系统的稳定性上,上述的qemu我全部没有加载tap,也就是说你无法和你的主机进行通信。如果需要通信的话,我是用如下脚本的
juniper.exe -L pc-bios -m 256 -hda d:\softs\network\juniper\qemu\olive\olive2.vmdk -boot c -localtime -net nic,vlan=3,macaddr=00:aa:00:00:02:00,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:02:01,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:02:02,model=i82559er -net nic,vlan=3,macaddr=00:aa:00:00:02:03,model=i82559er -net tap,vlan=3,ifname=tap10 -kernel-kqemu -serial telnet::1978,server,nowait
也就是说其实对于vlan3你只需要一个tap就可以了,如果你是多个vlan,那么就需要多个tap对应,因为我使用了logical router的vlan-tagging,所以一定是将所有的fxp放置到一个vlan中,所以就只用了一个vlan=3.请看附件图内容。
目前来看qemu稳定性还算可以,不过估计和真实的olive还是有一定距离,但唯一的好处就是可以随时练习juniper。哈哈
[ 本帖最后由 scott_china 于 2008-2-14 16:29 编辑 ]
附件
-
a.jpg
(13.23 KB)
-
2008-2-14 13:50
communication of qemu
-
b.jpg
(13.56 KB)
-
2008-2-14 13:50
communication of qemu
-
c.jpg
(9.92 KB)
-
2008-2-14 13:50
communication of qemu