Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment créer une interface virtuelle ?

7 réponses
Avatar
giggz
Bonjour tout le monde,

Je désire créer une interface virtuelle : j'aimerais faire une boucle
locale avec comme adresse une IP 130.66.xx.xx

en gros je veux que si je ping cette adresse, ça fasse comme si je
pinguais 127.0.0.1. Comment puis je réalisé ce tour de passe passe?

Je suis en debian SID, gnome 2.14. Si c'est possible j'aimerais le faire
à la mano. histoire de tt comprendre. apparemment c'est simple à faire
avec webmin...ms bon...

Merci d'avance
Guillaume


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

7 réponses

Avatar
Pascal Hambourg
Salut,

giggz a écrit :

Je désire créer une interface virtuelle : j'aimerais faire une boucle
locale avec comme adresse une IP 130.66.xx.xx

en gros je veux que si je ping cette adresse, ça fasse comme si je
pinguais 127.0.0.1.



En fait tu n'as pas besoin de créer une interface virtuelle pour cela.
C'est déjà ce qui se passe avec n'importe quelle adresse de n'importe
quelle interface de la machine. Par exemple si l'interface ethernet eth0
a pour adresse 1.2.3.4, le trafic émis localement vers cette adresse
passe en fait par l'interface de loopback (lo). Pour vérifier, c'est
facile : il suffit de désactiver lo avec la commande "ifconfig lo down"
et d'essayer ensuite d'atteindre n'importe quelle adresse locale.

Comment puis je réalisé ce tour de passe passe?



Cela n'a rien d'un tour de passe-passe : il suffit de créer une route
locale vers cette adresse, ce qui peut être fait de diverses façons.

1) Méthode "traditionnelle" : créer avec ifconfig un "alias IP" d'une
interface existante, appellé parfois "interface virtuelle" :

$ ifconfig lo:1 130.66.xx.xx netmask <masque>
ou
$ ifconfig lo add 130.66.xx.xx netmask <masque>

Note : avec la seconde formulation, le nom de l'alias est déterminé
automatiquement.


2) Avec une interface "dummy" si le noyau a été compilé avec l'option
CONFIG_DUMMY :

$ modprobe dummy # si en module
$ ifconfig dummy0 130.66.xx.xx netmask <masque>

Note : le trafic émis localement vers l'adresse passe toujours par
l'interface de loopback. L'interface dummy est un trou noir qui avale
les paquets qu'on y envoie et dont rien ne sort.

3) Méthode "moderne" pour ajouter une adresse à une interface avec "ip
addr" :

$ ip addr add 130.66.xx.xx/<longueur masque> dev lo

Note : l'adresse ajoutée ainsi n'est pas visible avec ifconfig mais
seulement avec "ip addr".


4) Méthode "originale" consistant à seulement créer une route "locale"
vers cette adresse (ou un bloc d'adresses) avec "ip route" :

$ ip route add local 130.66.xx.xx dev lo

En effet ce sont en réalité ces routes locales qui au final font qu'une
machine répond à une adresse. Elles sont visibles avec la commande
suivante :

$ ip route list type local table local


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sylvain Sauvage
Dimanche 9 avril 2006, 11:03:46 CEST, giggz a écrit :

Bonjour tout le monde,



'jour,

Je désire créer une interface virtuelle : j'aimerais faire une boucle
locale avec comme adresse une IP 130.66.xx.xx

en gros je veux que si je ping cette adresse, ça fasse comme si je
pinguais 127.0.0.1. Comment puis je réalisé ce tour de passe passe?



Configure une interface dummy0, c'est fait pour : c'est exactement comme
une interface eth mais ça passe en fait par l'interface lo (ça se voit au
niveau des statistiques de paquets p.ex.).
Il y a un module dummy qui correspond (je crois qu'il est compilé dans
les noyaux debian, à vérifier).

(Cette interface dummy permet de :
- conserver une configuration qui fonctionne si la carte est enlevée ou
débranchée ;
- gagner un peu de temps si la carte est débranchée : les commandes ne
passent pas plus la carte.
Enfin, bref, tous les trucs qu'on veut pouvoir faire avec une
interface simulée et une IP qui ne soit pas 127.0.0.1.)

Je suis en debian SID, gnome 2.14. Si c'est possible j'aimerais le faire
à la mano. histoire de tt comprendre. apparemment c'est simple à faire
avec webmin...ms bon...

Merci d'avance
Guillaume




--
Sylvain Sauvage
Avatar
Gilles Mocellin
--nextPart2954738.4Z9AvXHXD3
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Le Dimanche 9 Avril 2006 11:03, giggz a écrit :
Bonjour tout le monde,

Je désire créer une interface virtuelle : j'aimerais faire une boucle
locale avec comme adresse une IP 130.66.xx.xx

en gros je veux que si je ping cette adresse, ça fasse comme si je
pinguais 127.0.0.1. Comment puis je réalisé ce tour de passe passe?

Je suis en debian SID, gnome 2.14. Si c'est possible j'aimerais le faire
à la mano. histoire de tt comprendre. apparemment c'est simple à faire
avec webmin...ms bon...

Merci d'avance
Guillaume



Il suffit de définir ton interface avec ses paramêtres à l'aide de la commande
ifconfig :

# ifconfig lo:0 130.66.0.1 netmask 255.255.255.0

Est c'est bon.

Maintenant pour que ça reste permanent, tu dois pouvoir la déclarée e n
interface statique dans /etc/network/interfaces.

--nextPart2954738.4Z9AvXHXD3
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQBEORcKDltnDmLJYdARAucdAKCdWI8ITsprmBH7AkpW5BYe5IkJhACfbenl
Q3XL70GDqIhvmavKn2Z7SOQ =qv1B
-----END PGP SIGNATURE-----

--nextPart2954738.4Z9AvXHXD3--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal Hambourg
Sylvain Sauvage a écrit :

Configure une interface dummy0, c'est fait pour : c'est exactement comme
une interface eth



En effet, c'est comme une interface ethernet reliée à rien du tout.

mais ça passe en fait par l'interface lo (ça se voit au
niveau des statistiques de paquets p.ex.).



Oui et non. Le trafic émis localement destiné à l'adresse de l'interface
dummy passe par lo (forcément), mais ce n'est en rien spécifique à
l'interface dummy : c'est déjà ce qui se passe naturellement avec les
adresses de toutes les autres interfaces de la machine. Par contre le
trafic destiné aux autres adresses de machine du sous-réseau de
l'interface dummy tombe dans un trou noir.

Il y a un module dummy qui correspond (je crois qu'il est compilé dans
les noyaux debian, à vérifier).

(Cette interface dummy permet de :
- conserver une configuration qui fonctionne si la carte est enlevée ou
débranchée ;
- gagner un peu de temps si la carte est débranchée : les commandes ne
passent pas plus la carte.



Que veux-tu dire ?

Enfin, bref, tous les trucs qu'on veut pouvoir faire avec une
interface simulée et une IP qui ne soit pas 127.0.0.1.)



On peut très bien ajouter d'autres adresses à l'interface de loopback.
Toutefois celle-ci, compte tenu de sa nature particulière, a un
comportement différent des autres interfaces : toutes les adresses d'un
sous-réseau affecté à cette interface appartiennent à la machine, et pas
seulement l'adresse spécifiée comme avec les autres interfaces.

Si j'attribue le couple adresse/masque 1.2.3.4/24 à l'interface de
loopback, toutes les adresses du bloc 1.2.3.0/24 appartiennent à la
machine. Si en revanche j'attribue ce même couple adresse/masque à une
interface dummy ou ethernet, seule l'adresse 1.2.3.4 lui appartient, le
reste du bloc est routé vers l'extérieur (ou dans le vide).


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sylvain Sauvage
Dimanche 9 avril 2006, 19:23:57 CEST, Pascal Hambourg a écrit :

Sylvain Sauvage a écrit :
>
> Configure une interface dummy0, c'est fait pour : c'est exactement
> comme une interface eth

En effet, c'est comme une interface ethernet reliée à rien du tout.

> mais ça passe en fait par l'interface lo (ça se voit au
> niveau des statistiques de paquets p.ex.).

Oui et non. Le trafic émis localement destiné à l'adresse de
l'interface dummy passe par lo (forcément), mais ce n'est en rien
spécifique à l'interface dummy : c'est déjà ce qui se passe
naturellement avec les adresses de toutes les autres interfaces de la
machine. Par contre le trafic destiné aux autres adresses de machine du
sous-réseau de l'interface dummy tombe dans un trou noir.



Si tu regardes les statistiques des paquets émis/reçus, tu vois que
l'interface dummy reste à 0 en TX/RX° et que ce sont les TX/RX de lo qui
augmentent. Ce n'est pas le cas avec les autres interfaces.

(° : en fait, TX doit être à 1 (il augmente à chaque nouvelle adres se
affectée).)

> Il y a un module dummy qui correspond (je crois qu'il est compilé
> dans les noyaux debian, à vérifier).
>
> (Cette interface dummy permet de :
> - conserver une configuration qui fonctionne si la carte est enlevée
> ou débranchée ;
> - gagner un peu de temps si la carte est débranchée : les commandes ne
> passent pas plus la carte.

Que veux-tu dire ?



Que dummy a été fait pour ça : simuler une interface ethernet sans en
avoir une. Et les utilisations utiles sont :
1. conserver une interface configurée même si la carte est enlevée, c ar
a. certains programmes configurés pour une adresse n'aiment pas
(ou sont chiants à reconfigurer après) un changement d'adresse ;
b. la configuration d'une interface demand[e/ait] plusieurs commandes
(ifconfig, route...) et faire un petit renommage de eth0 en dummy0
permet de conserver sa configuration pendant que la carte est
absente sans trop s'embêter ;
2. si la carte n'est pas connectée, on gagnait un peu de temps en passant
par une dummy plutôt que par l'eth (on gagne encore un peu je pense,
mais c'est beaucoup moins flagrant) ;
3. si on a pas de carte, lo n'est pas l'équivalent d'une eth (comme tu le
dis plus bas) et certaines programmes ne fonctionn[ai]ent pas bien avec
lo comme seule interface (je me souviens de talkd, p.ex., mais qui se
souvient de talk ?).

(Pour les cartes qu'on enlève, on peut penser aux changements
d'infrastructure réseau, mais aussi et tout simplement à une carte
PCMCIA ou une connexion intermittente plip/slip/ppp/...)

> Enfin, bref, tous les trucs qu'on veut pouvoir faire avec une
> interface simulée et une IP qui ne soit pas 127.0.0.1.)

On peut très bien ajouter d'autres adresses à l'interface de loopback .



Oui, mais elle ne fonctionne pas comme une eth, comme tu le dis
toi-même :

Toutefois celle-ci, compte tenu de sa nature particulière, a un
comportement différent des autres interfaces : toutes les adresses d'un
sous-réseau affecté à cette interface appartiennent à la machine, et
pas seulement l'adresse spécifiée comme avec les autres interfaces.

Si j'attribue le couple adresse/masque 1.2.3.4/24 à l'interface de
loopback, toutes les adresses du bloc 1.2.3.0/24 appartiennent à la
machine. Si en revanche j'attribue ce même couple adresse/masque à un e
interface dummy ou ethernet, seule l'adresse 1.2.3.4 lui appartient, le
reste du bloc est routé vers l'extérieur (ou dans le vide).



--
Sylvain Sauvage
Avatar
Pascal Hambourg
Sylvain Sauvage a écrit :

Si tu regardes les statistiques des paquets émis/reçus, tu vois que
l'interface dummy reste à 0 en TX/RX° et que ce sont les TX/RX de lo qui
augmentent. Ce n'est pas le cas avec les autres interfaces.



Ce n'est pas ce que j'observe. Certes si j'envoie du trafic vers
*l'adresse* de l'interface dummy, qui est une adresse locale, ce trafic
sort et rentre par l'interface de loopback, donc ce sont les compteurs
TX/RX de cette dernière qui augmentent. Et, comme déjà dit, c'est pareil
avec les adresses des autres interfaces, quel que soit leur type. Par
contre si j'envoie du trafic vers une autre adresse du *sous-réseau* de
l'interface dummy, c'est bien le compteur TX de cette dernière qui
augmente. Le compteur RX de l'interface dummy reste par contre à zéro
puisque c'est un trou noir.

Note : Netfilter peut toutefois voir passer des paquets semblant entrer
par l'interface dummy. Ce sont les paquets broadcasts qui sont dupliqués
en sortie : un sort par l'interface normalement, l'autre revient en
entrée en portant l'interface de sortie comme interface d'entrée. Mais
c'est un mécanisme interne à la pile IP et non spécifique à l'interface
dummy.

(Cette interface dummy permet de :
- conserver une configuration qui fonctionne si la carte est enlevée
ou débranchée ;
- gagner un peu de temps si la carte est débranchée : les commandes ne
passent pas plus la carte.



Que veux-tu dire ?



Que dummy a été fait pour ça : simuler une interface ethernet sans en
avoir une. Et les utilisations utiles sont :


[...]
2. si la carte n'est pas connectée, on gagnait un peu de temps en passant
par une dummy plutôt que par l'eth (on gagne encore un peu je pense,
mais c'est beaucoup moins flagrant) ;



C'est ce point que je ne comprends pas ; qu'entends-tu par "gagner un
peu de temps si la carte est débranchée : les commandes ne passent pas
plus la carte" ?


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sylvain Sauvage
Lundi 10 avril 2006, 12:36:25 CEST, Pascal Hambourg a écrit :

Sylvain Sauvage a écrit :
>
> Si tu regardes les statistiques des paquets émis/reçus, tu vois que
> l'interface dummy reste à 0 en TX/RX° et que ce sont les TX/RX de lo
> qui augmentent. Ce n'est pas le cas avec les autres interfaces.

Ce n'est pas ce que j'observe. Certes si j'envoie du trafic vers
*l'adresse* de l'interface dummy, qui est une adresse locale, ce trafic
sort et rentre par l'interface de loopback, donc ce sont les compteurs
TX/RX de cette dernière qui augmentent. Et, comme déjà dit, c'est
pareil avec les adresses des autres interfaces, quel que soit leur
type.



Au temps pour moi : l'habitude d'utiliser le nom (hostname) pour les eth
et l'adresse pour le dummy...

Par contre si j'envoie du trafic vers une autre adresse du
*sous-réseau* de l'interface dummy, c'est bien le compteur TX de cette
dernière qui augmente. Le compteur RX de l'interface dummy reste par
contre à zéro puisque c'est un trou noir.



Oui, c'est logique.

[...]
>>>- gagner un peu de temps si la carte est débranchée : les commandes
>>>ne
>>> passent pas plus la carte.
>>
>>Que veux-tu dire ?
>
> Que dummy a été fait pour ça : simuler une interface ethernet sans en
> avoir une. Et les utilisations utiles sont :
[...]
> 2. si la carte n'est pas connectée, on gagnait un peu de temps en
> passant par une dummy plutôt que par l'eth (on gagne encore un peu je
> pense, mais c'est beaucoup moins flagrant) ;

C'est ce point que je ne comprends pas ; qu'entends-tu par "gagner un
peu de temps si la carte est débranchée : les commandes ne passent pas
plus la carte" ?



Par « commandes », je veux évidemment dire « paquets », mais quand on
envoie un paquet à travers une carte ethernet, on lui demande ( commande) d'envoyer quelque chose. Ça, c'est pour le vocabulaire, pour ce
qui est de ce que j'entends par « les commandes ne passent plus par la
carte » (faute de frappe : « pas » surnuméraire), c'est simple, quand on
envoie un paquet sur le réseau :
- dans le cas d'une interface réelle, deux cas se présentent :
1. on peut détecter simplement (matériellement ou logiciellement) que
le réseau est accessible : s'il ne l'est pas, on oublie le paquet ;
2. on ne peut pas savoir si le réseau est accessible ou non sans
essayer : on perd du temps à essayer (en général un timeout
d'acquittement).
Donc, soit on a un test simple à faire, soit on a un test relativement
long. Ce n'est pas immédiat ;
- dans le cas d'une interface dummy, il est oublié ou revient
immédiatement (suivant la destination). En tout cas, c'est immédiat.

Mes utilisations les plus intenses de l'interface dummy datent d'il y
a un moment (env. 9 ans), et, à l'époque, je gagnais pas mal de temps à
utiliser une dummy plutôt qu'à laisser une eth déconnectée faire un
timeout.

--
Sylvain Sauvage


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact