Qemu 가상 라즈베리 파이 클라이언트에 핑을 보내는 방법

Qemu 가상 라즈베리 파이 클라이언트에 핑을 보내는 방법

다음과 같은 브리지를 얻기 위해 랩탑의 네트워크를 루트로 구성했습니다.

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 및/또는 월드 와이드 웹의 주소로 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에 연결할 수 있었습니다 . 이해하시면 쉽습니다

관련 정보