赞
踩
1、使用nmcli con add type bridge-slave命令并不能将tap0接到br0上。
如下,可以看到执行“nmcli con add type bridge-slave ifname tap0 master br0”后,虽然生成了bridge-slave-tap0这个网络连接,但是使用brctl show可以看到interfaces下面并没有出现tap0.
- [root@rhel9 cat]# nmcli connection add type tun ifname tap0 con-name tap0 mode tap owner 0 ip4 192.168.1.1/24
- 连接 "tap0" (dddfc629-1792-4549-a386-4388af9a88e8) 已成功添加。
- [root@rhel9 cat]# nmcli con add type bridge-slave ifname tap0 master br0
- 连接 "bridge-slave-tap0" (6eda7a90-204d-4393-b867-7aead5e58983) 已成功添加。
- [root@rhel9 cat]# nmcli c
- NAME UUID TYPE DEVICE
- ens160 d33b89a2-a119-34ba-adfd-9a4ddc13af27 ethernet ens160
- tap0 dddfc629-1792-4549-a386-4388af9a88e8 tun tap0
- br0 f4392fcc-80da-47e5-bb9b-b365ba3e15b4 bridge br0
- bridge-slave-tap0 6eda7a90-204d-4393-b867-7aead5e58983 ethernet --
- [root@rhel9 cat]# brctl show
- bridge name bridge id STP enabled interfaces
- br0 8000.000000000000 yes
同样使用nmcli con add type bridge-slave命令却能成功将物理网卡ens224接到br0上,interfaces下面出现了ens224。
- [root@rhel9 cat]# nmcli con add type bridge-slave ifname ens224 master br0
- 连接 "bridge-slave-ens224" (a80bf967-79d6-4506-985f-6531a0c55f7a) 已成功添加。
- [root@rhel9 cat]# nmcli c
- NAME UUID TYPE DEVICE
- ens160 d33b89a2-a119-34ba-adfd-9a4ddc13af27 ethernet ens160
- tap0 dddfc629-1792-4549-a386-4388af9a88e8 tun tap0
- br0 f4392fcc-80da-47e5-bb9b-b365ba3e15b4 bridge br0
- bridge-slave-ens224 a80bf967-79d6-4506-985f-6531a0c55f7a ethernet ens224
- bridge-slave-tap0 6eda7a90-204d-4393-b867-7aead5e58983 ethernet --
- [root@rhel9 cat]# brctl show
- bridge name bridge id STP enabled interfaces
- br0 8000.000c2962f72f yes ens224
2、因为nmcli con add type bridge-slave并不能将tap成功接到网桥上,为了使qemu正确与主机进行通信,因此使用qemu-ifup/qemu-down脚本来解决这个问题。
qemu-ifup内容如下:
- #!/bin/sh
- sudo nmcli con add type tun ifname $1 con-name $1 mode tap ip4 0.0.0.0/24
- #sudo nmcli con up $1
- ifconfig $1 up
- sudo brctl addif br0 $1
其中$1为qemu启动时传入的网络设备,可以是tap0,tap1...,因为实测nmcli con up $1命令无法使能$1,换用ifconfig $1 up 。
使用brctl addif br0 $1,可以成功将$1接到br0上,所以这里使用brctl addif br0 $1。
qemu-down内容如下
- #!/bin/sh
- brctl delif br0 $1
- ifconfig $1 down
- nmcli con del $1
3、因为要使用qemu-ifup/qemu-down脚本,所以qemu启动命令也需要改变,需要指定qemu-ifup/qemu-down脚本的路径。本例中qemu-ifup/qemu-down脚本都存放在/etc目录下,请根据实际存放路径进行对应修改。
qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot -nographic -net nic -net tap,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown
4、可以通过tftp从主机加载内容,实现qemu通过tap+网桥与主机网络正通信。
- => tftp 0x60003000 uImage
- smc911x: detected LAN9118 controller
- smc911x: phy initialized
- smc911x: MAC 52:54:00:12:34:56
- Using ethernet@3,02000000 device
- TFTP from server 192.168.1.100; our IP address is 192.168.1.200
- Filename 'uImage'.
- Load address: 0x60003000
- Loading: #################################################################
- #################################################################
- #################################################################
- #################################################################
- #################################################################
- ####################
- 3.3 MiB/s
- done
- Bytes transferred = 5058336 (4d2f20 hex)
- smc911x: MAC 52:54:00:12:34:56

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。