Como podemos criar várias interfaces simuladas no Linux?

10

Para criar uma interface fictícia Ethernet Falsa No Linux, primeiro inicializamos o driver da interface fictícia usando o comando abaixo: / sbin / modprobe dummy .
Então nós atribuímos o alias Interface Ethernet ao driver fictício que acabamos de inicializar acima.

Mas dá o seguinte erro fatal dizendo: FATAL: Módulo dummy não encontrado.

Além disso, no caminho cd / sys / devices / virtual / net # , podemos ver que existem interfaces virtuais presentes pelos seguintes nomes:
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)  

Portanto, o comando modprobe não é capaz de carregar o módulo do kernel.
Como podemos carregar um módulo de kernel usando modprobe ou insmod para inicializar um driver de interface fictício?
Podemos criar várias interfaces fictícias em um único módulo carregado?

    
por Kushal 06.01.2017 / 07:09

2 respostas

10

A maneira usual de adicionar várias interfaces simuladas é usar 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

Mas a mensagem de erro FATAL: Module dummy not found indica que você pode ter um kernel onde o módulo de interface fictício não está habilitado, então verifique sua configuração do kernel e recompile o kernel se necessário.

    
por 06.01.2017 / 07:54
3

Para criar interfaces fictícias na inicialização, aconselho adicionar a /etc/modules

dummy

Cuidado com o módulo dummy permite apenas duas interfaces simuladas antes do kernel 4.4.x (versão correta a ser verificada).

Se precisar de mais, você também deve criar um /etc/modprobe.d/local ou /etc/modprobe.d/dummy.conf definindo o parâmetro numdummies com o número de interfaces fictícias que você deseja:

options dummy numdummies=4 

Como com comentários de @Feuermurmel, em kernels mais novos, você adiciona mais interfaces dummy, além das duas criadas por padrão, usando o comando:

sudo ip link add dummyX type dummy
    
por 06.01.2017 / 11:47