Atribui o endereço MAC a um par veth

0

Eu criei 6 namespaces e os configurei com links veth. Estou tentando anexar o endereço MAC. Mas o seguinte erro é mostrado:

SIOCSIFHWADDR: Cannot assign requested address
SIOCSIFHWADDR: Cannot assign requested address
SIOCSIFHWADDR: Cannot assign requested address

Aqui está o meu código:

Adicionar espaços de nomes

ip netns add ns1
ip netns add ns2
ip netns add ns3
ip netns add ns4
ip netns add ns5
ip netns add ns6

Adicionar veths

ip link add eth0 type veth peer name eth1
ip link add eth2 type veth peer name eth3
ip link add eth4 type veth peer name eth5
ip link add eth6 type veth peer name eth7 
ip link add eth8 type veth peer name eth9

link veths

ip link set netns ns1 eth0
ip link set netns ns2 eth3
ip link set netns ns3 eth6
ip link set netns ns4 eth9
ip link set netns ns5 eth1
ip link set netns ns5 eth2
ip link set netns ns5 eth4
ip link set netns ns6 eth5
ip link set netns ns6 eth7
ip link set netns ns6 eth8

atribuir o mac

ip netns exec ns1 ifconfig eth0 hw ether 00:00:00:00:00:00 
ip netns exec ns2 ifconfig eth3 hw ether 03:03:03:03:03:03 
ip netns exec ns3 ifconfig eth6 hw ether 06:06:06:06:06:06
ip netns exec ns4 ifconfig eth9 hw ether 09:09:09:09:09:09

Alguém pode ajudar?

    
por user3598542 20.04.2018 / 16:18

1 resposta

2

Não há problema de namespace. Não há nenhum problema de tipo veth (virtual ethernet). O único problema é o endereço MAC escolhido:

00:00:00:00:00:00 é certamente reservado para itens como "não configurado" e, portanto, inválidos

Qualquer endereço com o multicast conjunto de bits não pode ser o endereço de hardware de um cartão: um endereço multicast pode ser apenas um endereço destino , não source , então não faz sentido atribuí-lo a um cartão. Então atacar aqueles:

03:03:03:03:03:03
09:09:09:09:09:09

Endereço MAC Ethernet restante válido:

06:06:06:06:06:06 que ainda tem o bit local definido, o que é preferível para testes e virtualização (mas tecnicamente não é obrigatório).

Como foi dito nos comentários, provavelmente é melhor apenas manter aqueles já gerados aleatoriamente e corretamente. Se forem necessários, basta recuperar seu valor para uso posterior (incluindo reutilizá-los posteriormente para obter reprodutibilidade completa).

    
por 20.04.2018 / 19:22