# Problème d'acces d'une machine virtuelle sous KVM/Qemu vers Internet

**URL:** <https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440>\
**Category:** Support Debian\
**Created:** [Janvier 21, 2019, 11:44 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440 "2019-01-21T11:44:03Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![PhilippeI](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/c77e96/32.png) [@PhilippeI](https://www.debian-fr.org/u/PhilippeI)\
**Post date:** [Janvier 21, 2019, 11:44 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/1 "2019-01-21T11:44:03Z")

</div>

Bonjour,  
J’ai Host sur Debian Stretch KVM/Qemu qui supporte un Guest sur Debian Stretch .

Je n’utilise pas les outils graphique.

J’arrive à faire communiquer les deux, j’accède du Guest au Host et inversement via Ssh.

CONF RESEAU :

- sur le HOST : : (avec un ifconfig à l’ancienne … )  
Le Bridge :

```nohighlight
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255
        inet6 fe80::5e26:aff:fe01:fa90 prefixlen 64 scopeid 0x20<link>
        ether 5c:26:0a:01:fa:90 txqueuelen 1000 (Ethernet)
        RX packets 2860 bytes 259182 (253.1 KiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 2202 bytes 255693 (249.7 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

```

La connexion via Bluetooth qui me permet à partir de mon mobile d’aller sur le Net …

```nohighlight
bnep0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.44.148 netmask 255.255.255.0 broadcast 192.168.44.255
        inet6 fe80::7463:d10d:210:8533 prefixlen 64 scopeid 0x20<link>
        ether 5c:ac:4c:f6:56:d7 txqueuelen 1000 (Ethernet)
        RX packets 20720 bytes 19319159 (18.4 MiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 17282 bytes 1802735 (1.7 MiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

```

Sur le GUEST : ma conf Reseau :

```nohighlight
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.0.15 netmask 255.255.255.0 broadcast 192.168.0.255
        inet6 fe80::5054:ff:fe12:3456 prefixlen 64 scopeid 0x20<link>
        ether 52:54:00:12:34:56 txqueuelen 1000 (Ethernet)
        RX packets 16521 bytes 3759137 (3.5 MiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 23098 bytes 4676897 (4.4 MiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

```

Par contre, j’arrive pas à configure le réseau pour pouvoir faire sortir le Guest sur l’exterieur …  
Sur le Guest, Je Créé une route statique vers l’ip du Bridge du Host, mais rien n’y fait …

```nohighlight
Strechwww:~# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
default 192.168.0.10 0.0.0.0 UG 0 0 0 ens3
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens3

```

J’ai désactivé le firewall sur le HOST … sur le GUEST y en a pas …

Gentils forumeurs … Pouvez vous m’éclairez sur mon soucis ?

Merci d’avance …

Philippe.

---

<div class="post-metadata">

**Author:** ![AnonymousCoward](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f9ae1b/32.png) [@AnonymousCoward](https://www.debian-fr.org/u/AnonymousCoward)\
**Post date:** [Janvier 21, 2019, 6:07 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/2 "2019-01-21T18:07:07Z")

</div>

> [@PhilippeI](#):
>
> CONF RESEAU :
> 
> - sur le HOST : : (avec un ifconfig à l’ancienne … )

Hé bien justement, en ce qui concerne Linux, `ifconfig` est tellement ancien qu’il en est **complètement obsolète**.

Le 25 janvier 1999, il y a bientôt 20 ans, est sorti le noyau Linux 2.2.0 , avec une nouvelle organisation du réseau qui remplace `ifconfig` et compagnie (`net-tools`) par `iproute2`.

Il y a fort longtemps : [https://packages.debian.org/stretch/net-tools](https://packages.debian.org/stretch/net-tools)

Aujourd’hui : [https://packages.debian.org/stretch/iproute2](https://packages.debian.org/stretch/iproute2)

Et il existe même de la documentation pour t’aider à faire enfin la transition : [https://baturin.org/docs/iproute2/](https://baturin.org/docs/iproute2/)

Alors je ne sais pas pour les autres membres du forum mais je ne vais pas travailler sur une question qui fait appel aux commandes `ifconfig` et/ou `route`. Cela n’a plus aucun sens.

–  
AnonymousCoward

---

<div class="post-metadata">

**Author:** ![PhilippeI](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/c77e96/32.png) [@PhilippeI](https://www.debian-fr.org/u/PhilippeI)\
**Post date:** [Janvier 22, 2019, 10:27 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/3 "2019-01-22T10:27:15Z")

</div>

Bon, Ok alors avec des outils à jour :  
La conf Réseau de base sur le HOST et le GUEST

**- Sur mon Host :**

```nohighlight
root@newnmd:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 5c:26:0a:01:fa:90 brd ff:ff:ff:ff:ff:ff
3: wlp2s0b1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 5c:ac:4c:15:36:64 brd ff:ff:ff:ff:ff:ff
5: pan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether f6:0e:c5:70:22:a9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.54/24 brd 192.168.0.255 scope global pan1
       valid_lft forever preferred_lft forever
6: bnep0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 5c:ac:4c:f6:56:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.44.148/24 brd 192.168.44.255 scope global dynamic bnep0
       valid_lft 3431sec preferred_lft 3431sec
    inet6 fe80::d6ba:973a:75b3:9ef3/64 scope link 
       valid_lft forever preferred_lft forever

```

```nohighlight
root@newnmd:~# ip route
default via 192.168.44.1 dev bnep0 proto static metric 750 
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.10 
192.168.44.0/24 dev bnep0 proto kernel scope link src 192.168.44.148 metric 750 

```

```nohighlight
root@newnmd:~# cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	newnmd

192.168.0.15	gravcreav1 strechwww	

```

Sur le HOST, J’ai l’interface `bnep0` qui me permet de sortir sur l’exterieur via une connexion `bluetooth` / smartphone.

Sur ce HOST,  
Il y a aussi une interface `tap0`, qui est liée au `bridge br0` par la commande suivante :

```nohighlight
brctl addif br0 tap0

```

Ce bridge me permet d’acceder en local à un service HTTP herbergé sur le GUEST.

Cela fonctionne, je developpe avec `Bluefish` à partir du HOST sur le GUEST via un `partage nfs`,  
j’accede au site developpé sur le GUEST via un navigateur à partir du HOST.

Le soucis c’est que je n’arrive pas à sortir sur le net à partir du GUEST.

**- Sur mon Guest :**

```nohighlight
Strechwww:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.15/24 brd 192.168.0.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe12:3456/64 scope link 
       valid_lft forever preferred_lft forever

```

```nohighlight
Strechwww:~# ip route
default via 192.168.0.254 dev ens3 proto static metric 100 
192.168.0.0/24 dev ens3 proto kernel scope link src 192.168.0.15 metric 100 

```

Est ce plus clair ?

Merci pour votre éventuel retour …

---

<div class="post-metadata">

**Author:** ![sk4hrr](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/7bcc69/32.png) [@sk4hrr](https://www.debian-fr.org/u/sk4hrr)\
**Post date:** [Janvier 22, 2019, 1:01 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/4 "2019-01-22T13:01:48Z")

</div>

Bonjour,

Il doit te manquer quelque chose du genre (à adapter!) :

```
iptables -t nat -A POSTROUTING -o vmbr0 -s 192.168.7.0/24 ! -d 192.168.7.0/24 -j MASQUERADE

```

Il faut peut être aussi activer l’IP forwarding sur l’hôte.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Janvier 22, 2019, 1:35 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/5 "2019-01-22T13:35:45Z")

</div>

> [@PhilippeI](#):
>
> root@newnmd:~# ip address show

Comment se fait-il qu’on ne voie pas br0 ni tap0 ?  
A quoi correspond l’interface pan0 et pourquoi a-t-elle une adresse IP dans le préfixe du réseau virtuel ?

> [@sk4hrr](#):
>
> Il doit te manquer quelque chose du genre (à adapter!)

A adapter en effet car l’interface de sortie doit être bnep0 et le préfixe doit être 192.168.0.0/24.

> [@sk4hrr](#):
>
> Il faut peut être aussi activer l’IP forwarding sur l’hôte.

C’est même sûr, si ce n’est pas déjà fait.

```
sysctl net.ipv4.ip_forward=1

```

Et configurer les DNS dans /etc/resolv.conf sur l’invité si besoin.

---

<div class="post-metadata">

**Author:** ![PhilippeI](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/c77e96/32.png) [@PhilippeI](https://www.debian-fr.org/u/PhilippeI)\
**Post date:** [Janvier 22, 2019, 2:19 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/6 "2019-01-22T14:19:08Z")

</div>

Merci pour votre retour [**sk4hrr**](https://www.debian-fr.org/u/sk4hrr) et [**PascalHambourg**](https://www.debian-fr.org/u/PascalHambourg) …

@[**PascalHambourg**](https://www.debian-fr.org/u/PascalHambourg) : Au temps pour moi, j’avais désactivé le `Tap` pour faire des tests … dsl pour l’incohérence  
il est ici .

```nohighlight
root@newnmdoot@newnmd:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
    link/ether 5c:26:0a:01:fa:90 brd ff:ff:ff:ff:ff:ff
3: wlp2s0b1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 5c:ac:4c:15:36:64 brd ff:ff:ff:ff:ff:ff
5: pan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether f6:0e:c5:70:22:a9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.54/24 brd 192.168.0.255 scope global pan1
       valid_lft forever preferred_lft forever
17: tap0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN group default qlen 1000
    link/ether 1a:f2:ac:0a:e1:0f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::18f2:acff:fe0a:e10f/64 scope link 
       valid_lft forever preferred_lft forever
19: bnep0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 5c:ac:4c:f6:56:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.44.148/24 brd 192.168.44.255 scope global dynamic bnep0
       valid_lft 3595sec preferred_lft 3595sec
    inet6 fe80::d6ba:973a:75b3:9ef3/64 scope link 
       valid_lft forever preferred_lft forever
20: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 1a:f2:ac:0a:e1:0f brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/24 brd 192.168.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::18f2:acff:fe0a:e10f/64 scope link 
       valid_lft forever preferred_lft forever
root@newnmd:~# 

```

Le `pan0` correspond à ceci :

```nohighlight
Personal Area Networking Profile (PAN) allows Bluetooth devices to form 
an ad-hoc network, access a remote network through a network access point.

```

Je n’ai pas cherché à le désactiver … je me sers du `bluetooth` pour sortir …  
Il est peut être inutile en effet.

[**PascalHambourg**](https://www.debian-fr.org/u/PascalHambourg), quand tu parles de l’interface de sortie qui doit être `bnep0`, c’est déjà la `gateway` sur le Host …  
cela doit l’être aussi sur le Guest ?

Dans ce cas, si j’ai compris, le Guest s’y retrouve donc grâce au `NAT` que je dois implémenter (Sur le HOST … ) via `iptables`  
je mettrai l’`IP fowarding` sur le Host…

Merci pour ces pistes, je reviens vers vous quoi qu’il en soit pour faire part de ces modifs …

---

<div class="post-metadata">

**Author:** ![AnonymousCoward](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f9ae1b/32.png) [@AnonymousCoward](https://www.debian-fr.org/u/AnonymousCoward)\
**Post date:** [Janvier 22, 2019, 4:03 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/7 "2019-01-22T16:03:28Z")

</div>

sk4hrr et PascalHambourg ont bien répondu, je pense.

Ma supposition pour activer le source NAT (SNAT) sur iptables :

`sudo iptables -t nat -A POSTROUTING --out-interface ens3 -j SNAT --to-source 192.168.0.15`

Les cibles `SNAT` et `MASQUERADE` sont très proches. `SNAT` est un tout petit peu plus adapté à une situation où l’adresse IP “de sortie”, ici 192.168.0.15, ne change pas.

–  
AnonymousCoward

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Janvier 22, 2019, 11:17 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/8 "2019-01-22T23:17:41Z")

</div>

> [@PhilippeI](#):
>
> l’interface de sortie qui doit être `bnep0` , c’est déjà la `gateway` sur le Host

Non, une interface n’est pas une passerelle (ou plutôt un routeur, le terme «&nbsp;passerelle&nbsp;» étant à éviter car trop vague). bnep0 est l’interface connectée au routeur par défaut. Le routeur par défaut est désigné par l’adresse de «&nbsp;next hop&nbsp;» dans la route par défaut : 192.168.0.254.

> [@PhilippeI](#):
>
> cela doit l’être aussi sur le Guest ?

Bien sûr que non, puisque cette interface appartient à l’hôte. Quant au routeur, 192.168.0.254 n’est pas connecté directement à l’invité donc il ne peut être son routeur par défaut. Le routeur par défaut de l’invité, c’est l’hôte avec son adresse 192.168.0.10 (et non 192.168.0.254 comme on peut voir dans la route par défaut de l’invité, dont on se demande d’où elle sort).

> [@AnonymousCoward](#):
>
> Ma supposition pour activer le source NAT (SNAT) sur iptables :
> 
> `sudo iptables -t nat -A POSTROUTING --out-interface ens3 -j SNAT --to-source 192.168.0.15`

Raté. Le masquerading doit être mis en place sur l’hôte qui joue le rôle de routeur, pas sur l’invité.

> [@AnonymousCoward](#):
>
> Les cibles `SNAT` et `MASQUERADE` sont très proches. `SNAT` est un tout petit peu plus adapté à une situation où l’adresse IP “de sortie”, ici 192.168.0.15, ne change pas.

En l’occurrence, l’adresse IP de l’interface de sortie de l’hôte bnep0 est dynamique donc MASQUERADE s’impose.

---

<div class="post-metadata">

**Author:** ![PhilippeI](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/c77e96/32.png) [@PhilippeI](https://www.debian-fr.org/u/PhilippeI)\
**Post date:** [Janvier 24, 2019, 9:59 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/9 "2019-01-24T09:59:55Z")

</div>

Bonjour,  
Je prends note de ces réponses et essaie d’en faire le tri.  
Je dois reprendre l’autre partie de du travail que je fais (Dev) donc je me débrouille sans KVM, directement avec les services installés sur le HOST … je sais c’est pas beau mais bon, faut gérer les priorités.  
En fait, tout cela fonctionnait avant avec une BOX, ou j’avais configuré les IP du HOST du GUEST sur le même réseau privé attribué par Dhcp par la BOX (free).  
Donc le Guest voyait bien le routeur … (`192.168.0.254`) =\> la freebox  
Maintenanant j’ai plus de box, j’ai un smartphone, et le routeur sur le HOST est donc  
`192.168.44.1`

```nohighlight
root@newnmd:~# ip route
default via 192.168.44.1 dev bnep0 proto static metric 750 
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.10 
192.168.44.0/24 dev bnep0 proto kernel scope link src 192.168.44.148 metric 750 

```

Par contre @ [**PascalHambourg**](https://www.debian-fr.org/u/PascalHambourg), l’interface de sortie n’est peut être pas dynamique … en tout cas pour l’adresse privé, c’est toujours `192.168.44.148` avec un masque de `24` .

```nohighlight
6: bnep0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 5c:ac:4c:f6:56:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.44.148/24 brd 192.168.44.255 scope global dynamic bnep0
       valid_lft 3431sec preferred_lft 3431sec
    inet6 fe80::d6ba:973a:75b3:9ef3/64 scope link 
       valid_lft forever preferred_lft forever

```

Merci pour vos éclairages en tout cas … je vais me pencher dès que possible sur cette problèmatique.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Janvier 24, 2019, 1:42 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/10 "2019-01-24T13:42:04Z")

</div>

> [@PhilippeI](#):
>
> l’interface de sortie n’est peut être pas dynamique … en tout cas pour l’adresse privé, c’est toujours `192.168.44.148`

La sortie d’ip addr que tu postes est d’un avis différent :

> [@PhilippeI](#):
>
> inet 192.168.44.148/24 brd 192.168.44.255 scope global **dynamic** bnep0

Cette adresse est probablement configurée par DHCP. Il se peut que l’adresse attribuée soit toujours la même, mais ça reste de la configuration dynamique donc susceptible de varier.

---

<div class="post-metadata">

**Author:** ![PhilippeI](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/c77e96/32.png) [@PhilippeI](https://www.debian-fr.org/u/PhilippeI)\
**Post date:** [Janvier 26, 2019, 10:54 UTC](https://www.debian-fr.org/t/probleme-dacces-dune-machine-virtuelle-sous-kvm-qemu-vers-internet/78440/11 "2019-01-26T10:54:09Z")

</div>

@Pascal

inet 192.168.44.148/24 brd 192.168.44.255 scope global **dynamic** bnep0

Bien vu … effectivement les outils iproute2 sont plus précis et verbeux que les vieux nettools … il faut vraiment que je me mette à jour niveau réseaux …  
En tout cas Merci, et dès que je peux je corrige tout cela et reviens vers vous.  
Encore merci à ce Forum Réactif !!
