Como posso criar uma interface virtual semelhante ao ifconfig
comando 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 iproute2
conjunto 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 dhcpd
servidor 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 veth
teria resultado na criação de um par veth1@veth2
/ veth2@veth1
numerado desta forma porque veth0
existe.
Responder1
Quero definir os endereços MAC para testar a configuração do meu servidor DHCP
Existem (pelo menos?) Duas maneiras de conseguir isso emlinux.
O mais simples e direto,mas de maneira altamente arriscada, é modificar oendereço MACda 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 ummacvlanlink 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 doiproute2utilitá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 macvlanX
onde X
estiver o primeiro número, caso não exista nenhuma interface com esse nome.
Você pode nomear a interface (por vif0
exemplo) 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:55
exemplo) 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, dev
pode 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, dev
por 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