记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

QEMU模拟RISCV环境运行Fedora虚拟机并配置NAT与Bridge网络


在Hyper-v中安装了Centos8,然后编译安装qemu,运行riscv_64位环境,

安装fedora-mininal_riscv虚拟机,然后添加网卡,并建立桥接bridge网络,使用NAT将虚拟机网络打通。


Centos8系统使用eth0网卡,IP: 192.168.137.30/24, GATEWAY: 192.168.137.1

Centos8系统br0网卡 IP: 192.168.1.1/24  

qemu中的fedora_riscv镜像系统使用IP: 192.168.1.200/24, GATEWAY:192.168.1.1


1,在centos8,安装qemu并下载相关riscv环境镜像,具体看之前的文章。

2),添加 名称与设备名为br1 的网桥。
[root@k8s-30 ~]# nmcli conn add type bridge con-name br0 ifname br0
连接 "br1" (c6f8f0fd-f631-42fa-911d-0e27a34a0da1) 已成功添加。
[root@k8s-30 ~]#
[root@k8s-30 ~]# nmcli connection show
NAME  UUID                                  TYPE      DEVICE
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
br0   c6f8f0fd-f631-42fa-911d-0e27a34a0da1  bridge    br0


3),给br1网桥添加IP与网关 DNS等。
[root@k8s-30 ~]# nmcli connection modify br0 ipv4.addresses '192.168.1.1/24'  ipv4.method manual
[root@k8s-30 ~]#
[root@k8s-30 ~]# nmcli connection show
NAME  UUID                                  TYPE      DEVICE
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
br0   c6f8f0fd-f631-42fa-911d-0e27a34a0da1  bridge    br0




2,使用以下命令运行镜像,网卡类型使用bridge,连接到br0上面。

/usr/qemu5.1/bin/qemu-system-riscv64 -nographic -machine virt -smp 2 -m 512m -kernel /opt/Fedora-Minimal-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf -bios none -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0 -device virtio-blk-device,drive=hd0 -drive file=/opt/Fedora-Minimal-Rawhide-20200108.n.0-sda.raw,format=raw,id=hd0 -device virtio-net-device,netdev=q1 -netdev bridge,br=br0,id=q1


模拟系统在运行时会自动添加一个tap0的网卡,如果没有自动添加到网桥中,手动将其添加到网桥中。


[root@k8s-30 ~]#  
modprobe tun tap

[root@k8s-30 ~]#  ip link set dev tap0 master br0

[root@k8s-30 ~]#  ip link set dev br0 up


[root@k8s-30 ~]# bridge link show

5: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100


3,然后进入fedora系统中,配置相关IP与账号密码。

nmcli connection modify eth0 ipv4.addresses '192.168.1.200/24' ipv4.gateway '192.168.1.1' ipv4.dns '114.114.114.114' ipv4.method manual


4,添加firewalld防火墙NAT与端口映射。

将eth0端口添加到external区域中,然后启用NAT。

firewall-cmd --permanent --add-interface=eth0 --zone=external

firewall-cmd --zone=external --add-masquerade --permanent


添加SSH端口映射到外网的 7022端口。

firewall-cmd --zone=external --add-forward-port=port=7022:proto=tcp:toport=22:toaddr=192.168.1.200 --permanent

最后重启firewalld,使配置生效。​

firewall-cmd --reload


5,测试虚拟机网络与映射是否可以通过eth0的IP上网与访问。



转载请标明出处【QEMU模拟RISCV环境运行Fedora虚拟机并配置NAT与Bridge网络】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论