Re: Comment créer une interface virtuell e ?

2006-04-10 Par sujet 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 [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Comment créer une interface virtuell e ?

2006-04-09 Par sujet 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 [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Comment créer une interface virtuell e ?

2006-04-09 Par sujet 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 
ou
$ ifconfig lo add 130.66.xx.xx netmask 

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 

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/ 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 [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]