[qemu] network bridge not work in the guest (résolu)

Applications, problèmes de configuration réseau
rasta
archer
Messages : 142
Inscription : mar. 21 févr. 2012, 02:16

[qemu] network bridge not work in the guest (résolu)

Message par rasta »

Bonjour,

Je tente d'utiliser un bridge pour relier un guest debian ARM avec qemu directement sur le LAN. Mon système hôte est une Archlinux x86. Cependant mon guest ne semble pas vraiment bien relié à mon bridge. J'ai probablement oublié d'effectuer certain test ou configuration. Voici ma démarche:

Code : Tout sélectionner

# ip link add br0 type bridge
# ip addr flush dev eno1
# ip link set eno1 master br0
# dhcpcd br0
J'ajoute cette ligne dans un fichier de conf qemu fraichement créé.

Code : Tout sélectionner

# cat /etc/qemu/bridge.conf 
allow br0
voici mon script pour démarrer qemu:

Code : Tout sélectionner

#!/bin/bash

kernel="vmlinuz-3.16.0-4-armmp-lpae"
initrd="initrd.img-3.16.0-4-armmp-lpae"

qemu-system-arm -M virt \
                -m 1024 \
                -kernel $kernel \
                -initrd $initrd \
                -append 'root=/dev/vda2' \
                -drive if=none,file=hda.qcow2,format=qcow,id=hd \
                -device virtio-blk-device,drive=hd \
                -netdev bridge,id=hn0 \
                -device virtio-net-device,netdev=hn0,id=nic1 \
                -nographic
Dans le system guest j'ai une interface eth0 qui est bien créé:

Code : Tout sélectionner

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
Dans le système hôte une interface tap est bien créé par qemu:

Code : Tout sélectionner

3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 20:47:47:bb:51:ca brd ff:ff:ff:ff:ff:ff
4: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 94:65:9c:2c:3c:2e brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:5a:af:9b:81 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 20:47:47:bb:51:ca brd ff:ff:ff:ff:ff:ff
    inet 172.16.14.175/21 brd 172.16.15.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::71a5:54c:38e6:375b/64 scope link 
       valid_lft forever preferred_lft forever
12: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 1000
    link/ether fe:2a:4c:62:e9:9a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc2a:4cff:fe62:e99a/64 scope link 
       valid_lft forever preferred_lft forever


Au boot du system guest j'ai les messages d'erreur suuivant:

Code : Tout sélectionner

[* ] A start job is running for LSB: Raise network interf…38s / no limit
…
[FAILED] Failed to start LSB: IPv4 DHCP client with IPv4LL support.
See ‘systemctl status dhcpcd.service’ for details.
Les logs et la config du guest sous debian sont les suivantes:

Code : Tout sélectionner

# systemctl status dhcpcd.service -l

Jul 25 20:29:17 solid dhcpcd[276]: Not running dhcpcd because /etc/network/interfaces … failed!
Jul 25 20:29:17 solid dhcpcd[276]: defines some interfaces that will use a DHCP client … failed!
Jul 25 20:29:17 solid systemd[1]: dhcpcd.service: control process exited, code=exited status=6
Jul 25 20:29:17 solid systemd[1]: Failed to start LSB: IPv4 DHCP client with IPv4LL support.
Jul 25 20:29:17 solid systemd[1]: Unit dhcpcd.service entered failed state.

# cat /etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp
Quand je tente d'obtenir une addresse ip par dhcp, aucune connectivité au lan ne semble être effective. Cependant un un réseau misterieux semble disponible, en 169.254.0.0:

Code : Tout sélectionner

# dhcpcd eth0
dhcpcd[560]: version 6.0.5 starting
dhcpcd[560]: eth0: soliciting an IPv6 router
dhcpcd[560]: eth0: using IPv4LL address 169.254.41.139
dhcpcd[560]: eth0: adding host route to 169.254.41.139 via 127.0.0.1
dhcpcd[560]: eth0: adding route to 169.254.0.0/16
dhcpcd[560]: forked to background, child pid 583

Si quelq'un peut m'aider je suis preneur de tout conseil, car sa fait deux jours que je galère. Merci d'avance de m'accorder un peut de votre attention.

Cordialement .

Rasta


UPDATE

Je viens de tester mon system debian ARM sur un hôte fedora et le bridge fonctionne correctement. Le problème vient donc bien du sytem Archlinux x86 hôte. Mais là je séche !!!! :mrgreen:

UPDATE 2

En configurant une ip static et une route static dans le système debian invité j'arrive a ping le système Archlinux hôte, par contre impossible de pinger la passerelle. Dans Wireshark, en monitorant le bridge br0 je vois bien les échanges de paquet entre l'hôte et le guest. Quand je tente de pinger la passerelle je vois les paquet de requête ICMP mais aucune réponse. Certainement une config réseau a ajuster ????


Et dans journalctrl -f j'ai sa:

Code : Tout sélectionner

Jul 26 20:39:58 solid dhcpcd[6655]: tap0: new hardware address: fe:9e:3c:ac:4a:37
Jul 26 20:39:58 solid systemd-udevd[9570]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Jul 26 20:39:58 solid kernel: br0: port 2(tap0) entered blocking state
Jul 26 20:39:58 solid kernel: br0: port 2(tap0) entered disabled state
Jul 26 20:39:58 solid kernel: device tap0 entered promiscuous mode
Jul 26 20:39:58 solid kernel: br0: port 2(tap0) entered blocking state
Jul 26 20:39:58 solid kernel: br0: port 2(tap0) entered forwarding state
Jul 26 20:40:00 solid ntpd[429]: Listen normally on 59 tap0 [fe80::fc9e:3cff:feac:4a37%40]:123
Jul 26 20:40:00 solid ntpd[429]: new interface(s) found: waking up resolver
Dernière modification par rasta le mer. 26 juil. 2017, 22:04, modifié 1 fois.
rasta
archer
Messages : 142
Inscription : mar. 21 févr. 2012, 02:16

Re: [qemu] network bridge not work in the guest

Message par rasta »

J'ai trouvé la bonne configuration réseaux.

Code : Tout sélectionner

# iptables -A INPUT -i tap0 -j ACCEPT
# iptables -A INPUT -i br0 -j ACCEPT
# iptables -A FORWARD -i br0 -j ACCEPT
Répondre