Crie uma interface de rede virtual usando o comando iproute2 “ip link” com um endereço MAC falsificado

Crie uma interface de rede virtual usando o comando iproute2 “ip link” com um endereço MAC falsificado

Como posso criar uma interface virtual semelhante ao ifconfigcomando a seguir?

$ sudo ifconfig eth1 hw ether 00:01:02:aa:bb:cc  
SIOCSIFHWADDR: No such device  

Isso não funciona. Quero definir os endereços MAC para testar a configuração do meu servidor DHCP.

Como eu faria isso com o iproute2conjunto usando o comando ip link?

$ sudo ip link add type veth  

Isso funciona, mas atribui aleatoriamente um endereço MAC. Isso ainda é útil, mas gostaria de testar meu dhcpdservidor com alguns endereços MAC específicos para ver como ele lida com as classes que configurei.

Minha configuração atual 1 :

$ ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 60:eb:69:1b:a0:88 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.93/24 brd 172.16.0.255 scope global eth0
    inet6 fe80::62eb:69ff:fe1b:a088/64 scope link 
       valid_lft forever preferred_lft forever
7: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
8: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 3a:50:38:2e:24:c4 brd ff:ff:ff:ff:ff:ff

[1]: Observe que esta configuração não resulta da execução dos comandos acima. Em particular ip link add type vethteria resultado na criação de um par veth1@veth2/ veth2@veth1numerado desta forma porque veth0existe.

Responder1

Quero definir os endereços MAC para testar a configuração do meu servidor DHCP

Existem (pelo menos?) Duas maneiras de conseguir isso em.

O mais simples e direto,mas de maneira altamente arriscada, é modificar oda interface física. No entanto, para fazê-lovocê tem que desligar a interfaceentão não é o caminho mais seguro e certamente ummaneira altamente arriscada se operar remotamente! Se você tiver acesso físico ao host ou algo semelhante, pode ser uma opção.

A maneira mais segura é definir umlink em sua interface física com o endereço MAC adequado. Você sempre pode alterar esse endereço mac usando um comando semelhante ao que você usaria para alterar o endereço mac da sua interface física. Isso é conveniente para testar vários pares IP/MAC sem ter que criar/excluir muitas interfaces, por exemplo.

Digo "mais seguro" porque dependendo das medidas de segurança na sua rede você corre o risco de perder sua conexão também com um link macvlan se por exemplo sua rede proibir o uso de um endereço mac diferente em seu link físico. Em alguns casos, o dispositivo de rede ao qual seu host está conectado pode considerar que você está moderando a segurança e desligar o link.

Para os comandos a seguir, você precisa doutilitários no Linux.

LEIA O TEXTO ACIMA ANTES DE USAR OS SEGUINTES COMANDOS EM HOSTS REMOTOS!

Para adicionar um link macvlan, você pode usar:

ip link add link eth0 type macvlan

A interface será nomeada macvlanXonde Xestiver o primeiro número, caso não exista nenhuma interface com esse nome.

Você pode nomear a interface (por vif0exemplo) na criação usando algo como

ip link add name vif0 link eth0 type macvlan

ter uma interface chamada vif0.

Depois de ter a interface, você pode alterar seu endereço mac (por 00:11:22:33:44:55exemplo) usando:

ip link set address 00:11:22:33:44:55 dev macvlan0

Este mesmo comando pode ser usado para alterar o endereço mac de outras interfaces. Este é o que você pode usar para alterar o endereço MAC do seu link físico.

Claro que você pode adicionar o link macvlan e definir seu endereço de uma só vez:

ip link add name vif0 address 00:11:22:33:44:55 link eth0 type macvlan

Não se esqueça de ativar a interface assim que o endereço MAC estiver configurado. Com interface chamada vif0:

ip link set dev vif0 up

Observe que algumas partes desses comandos são opções e podem ser colocadas em ordens diferentes, outras fazem parte da sintaxe e devem ser colocadas no lugar correto. Além disso, alguma parte pode ser omitida desde que não comprometa o significado 1 . No comando acima, por exemplo, devpode ser omitido.

O tipo padrão de macvlan criado é VEPA que impede comunicações diretas entre a interface física e virtual. Deve ser adequado para este caso de uso. Outros modos estão disponíveis, consulteo capítulo sobre macvlan neste RedHat "Introdução às interfaces Linux para redes virtuais".

Espero que ajude... ...mais alguém passando por aqui.


1: não pode ser omitido se você teve a (muito) má ideia de nomear uma interface, devpor exemplo.

Responder2

Você tentou...

ip link add type veth addr 00:01:02:aa:bb:cc

ou

ip link set dev veth0 addr 00:01:02:aa:bb:cc

Responder3

Crie uma interface VLAN ip link add name ${VLAN interface name} link ${parent interface name} type vlan id ${tag} Exemplos: ip link add name eth0.110 link eth0 type vlan id 110

http://baturin.org/docs/iproute2/#Create%20a%20VLAN%20interface

informação relacionada