web-dev-qa-db-fra.com

Comment créer plusieurs interfaces factices sous Linux?

Pour créer une fausse interface Ethernet factice Sous Linux, nous initialisons d'abord le pilote d'interface factice à l'aide de la commande ci-dessous: / sbin/modprobe dummy.
Ensuite, nous attribuons un alias d'interface Ethernet au pilote factice que nous venons d'initialiser ci-dessus.

Mais cela donne l'erreur fatale suivante disant: FATAL: Module dummy not found.

De plus, sur le chemin cd/sys/devices/virtual/net #, nous pouvons voir qu'il y a des interfaces virtuelles présentes sous les noms suivants:
dummy0/lo/sit0/tunl0 /

ifconfig -a

dummy0:   Link encap:Ethernet  HWaddr aa:3a:a6:cd:91:2b    
          BROADCAST NOARP  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo:     Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:8303 (8.1 KiB)  TX bytes:8303 (8.1 KiB)

sit0:      Link encap:UNSPEC  HWaddr 00-00-00-00-FF-00-00-00-00-00-00-00-00-00-00-00    
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tunl0:  Link encap:IPIP Tunnel  HWaddr   
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

Ainsi, la commande modprobe n'est pas en mesure de charger le module du noyau.
Comment charger un module du noyau en utilisant modprobe ou insmod pour initialiser un pilote d'interface factice?
Peut-on créer plusieurs interfaces factices sur un seul module chargé?

11
Kushal

La manière habituelle d'ajouter plusieurs interfaces factices est d'utiliser iproute2 :

# ip link add dummy0 type dummy
# ip link add dummy1 type dummy
# ip link list
...
5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 22:4e:84:26:c5:98 brd ff:ff:ff:ff:ff:ff
6: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 9e:3e:48:b5:d5:1d brd ff:ff:ff:ff:ff:ff

Mais le message d'erreur FATAL: Module dummy not found indique que vous pouvez avoir un noyau où le module d'interface factice n'est pas activé, alors assurez-vous de vérifier votre configuration du noyau et recompilez le noyau si nécessaire.

13
dirkt

Pour créer des interfaces factices au démarrage, je conseille d'ajouter à /etc/modules

dummy

Attention le module dummy ne permet que deux interfaces factices par défaut avant le noyau 4.4.x (version correcte à vérifier).

Si vous en avez besoin de plus, vous devez également créer un /etc/modprobe.d/local ou /etc/modprobe.d/dummy.conf définissant le paramètre numdummies avec le nombre d'interfaces factices que vous désirez:

options dummy numdummies=4 

Selon les commentaires @Feuermurmel, dans les noyaux plus récents, vous ajoutez d'autres interfaces factices, en plus des deux créées par défaut, à l'aide de la commande:

Sudo ip link add dummyX type dummy
7
Rui F Ribeiro