在Ubuntu 10.04中配置qemu虚拟网络

在Ubuntu 10.04中配置qemu虚拟网络

内核支持需要对TUN/TAP设备和虚拟网桥提供支持:

(1)Device Drivers
            --> Network device support
                        --> Universal TUN/TAP device driver support
(2)Networking support
            --> Networking options
                        --> 802.1d Ethernet Bridging

安装两个配置网络所需软件包:

apt-get install bridge-utils        # 虚拟网桥工具
apt-get install uml-utilities       # UML(User-mode linux)工具

配置虚拟网桥的操作(假设系统启动后eth0已经启动,并且从DHCP获得IP地址)。

ifconfig eth0 down                  # 先关闭eth0接口
brctl addbr br0                     # 增加一个虚拟网桥br0
brctl addif br0 eth0                # 在br0中添加一个接口eth0
brctl stp br0 off                   # 只有一个网桥,所以关闭生成树协议
brctl setfd br0 1                   # 设置br0的转发延迟
brctl sethello br0 1                # 设置br0的hello时间
ifconfig br0 0.0.0.0 promisc up     # 打开br0接口
ifconfig eth0 0.0.0.0 promisc up    # 打开eth0接口
dhclient br0                        # 从dhcp服务器获得br0的IP地址
brctl show br0                      # 查看虚拟网桥列表
brctl showstp br0                   # 查看br0的各接口信息

在没有dhcp服务器的网络中也可以用ifconfig命令为br0接口配置一个静态IP地址:

ifconfig br0 192.168.0.22 netmask 255.255.255.0
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.254

配置TAP设备的操作:

tunctl -t tap0 -u root              # 创建一个tap0接口,只允许root用户访问
brctl addif br0 tap0                # 在虚拟网桥中增加一个tap0接口
ifconfig tap0 0.0.0.0 promisc up    # 打开tap0接口
brctl showstp br0                   # 显示br0的各个接口

假设内核的顶层目录在/usr/src/linux,且内核已经编译完毕。启动qemu的操作:

cd /usr/src/linux
qemu -kernel arch/x86/boot/bzImage -net nic -net tap,ifname=tap0,script=no,downscript=no 
如果省略script和downscript参数,qemu在启动时会以第一个不存在的tap接口名(通常是tap0)为参数去调用/etc/qemu-ifup脚本,而在退出时调用/etc/qemu-ifdown脚本。这两个脚本需要用户自行编写,其主要作用通常是:在启动时创建和打开指定的TAP接口,并将该接口添加到虚拟网桥中;退出时将该接口从虚拟网桥中移除,然后关闭该接口。由于配置TAP设备的操作前面已经做过了,所以启动qemu时显式地告诉qemu不要执行这两个脚本。这里需要严重注意:-net tap的各参数之间不要有空格!为了这个问题花了半个小时 :-(。

为了在系统启动时能够自动配置虚拟网桥和TAP设备,编写/etc/network/interfaces文件的内容如下:

auto lo
iface lo inet loopback

# The eth0 network interface(s)
# auto eth0
# iface eth0 inet dhcp

# The bridge network interface(s)
auto br0
iface br0 inet dhcp
# iface br0 inet static
# address 192.168.0.1
# netmask 255.255.255.0
# gateway 192.168.0.254
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

# The tap0 network interface(s)
auto tap0
iface tap0 inet manual
# iface tap0 inet static
# address 192.168.0.2
# netmask 255.255.255.0
# gateway 192.168.0.254
pre-up tunctl -t tap0 -u root
pre-up ifconfig tap0 0.0.0.0 promisc up
post-up brctl addif br0 tap0
注意:此时应该将配置文件中的eth0关闭(相应的文本行注释掉)。

制作arm64虚拟机

下载QEMU_EFI.fd

http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/

生成虚拟机镜像

qemu-img create ubuntu18.04-arm64.img 20G

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios QEMU_EFI.fd -nographic -drive if=none,file=ubuntu-18.04.3-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntu18.04-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0

启动虚拟机

sudo qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 4 -M virt -bios QEMU_EFI.fd -nographic -drive if=none,file=ubuntu18.04-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0 -net nic -net tap,ifname=tap1,mac=52:54:00:12:34:57,script=no,downscript=no

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值