Qemu仮想ラズベリーパイクライアントにpingを送信する方法

Qemu仮想ラズベリーパイクライアントにpingを送信する方法

次のブリッジを取得するために、ラップトップのネットワークをルートとして設定しました。

ip tuntap add dev tap0 mode tap group $USER
ip link set dev tap0 up promisc on
ip addr add 0.0.0.0 dev tap0
ip link add br0 type bridge
ip link set br0 up
ip link set tap0 master br0
echo "0" |  tee --append /sys/class/net/br0/bridge/stp_state
ip addr add 192.168.2.1/24 dev br0
sysctl net.ipv4.conf.tap0.proxy_arp=1
sysctl net.ipv4.conf.enp2s0.proxy_arp=1
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
iptables -A FORWARD -i br0 -o enp2s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i enp2s0 -o br0 -j ACCEPT

QEMU ARM CPUを次のように起動しました。

qemu-system-arm -cpu arm1176 -m 256 \
-M versatilepb -no-reboot -serial stdio \
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \
-kernel kernel-qemu-4.4.12-jessie \
-hda 2016-05-27-raspbian-jessie-lite.img \
-net nic -net tap,ifname=tap0,script=no,downscript=no

192.168.2.2ラズベリーエミュレーションに固定IPアドレスを入れました。エミュレーションは、enp2s0、br0、および/またはWorld Wide Webのアドレスにpingを送信できます。しかし、ラップトップではpingできません。

私が逃したものは何ですか?

答え1

さて、ついに問題が見つかりました:

iptables -A FORWARD -i tap0 -o br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i br0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT

根本原因はenp2s0との間の長さが開かれていますが、との間br0br0長さはまだ開いていないからですtap0。このBoothコマンドを実行した後、sshQEMUに接続できました。理解すれば簡単です

関連情報