¿Cómo puedo crear una interfaz virtual similar al siguiente ifconfig
comando?
$ sudo ifconfig eth1 hw ether 00:01:02:aa:bb:cc
SIOCSIFHWADDR: No such device
Esto no funciona. Quiero configurar las direcciones MAC para probar la configuración de mi servidor DHCP.
¿Cómo haría eso con la iproute2
suite usando el comando ip link?
$ sudo ip link add type veth
Esto funciona, pero asigna una dirección MAC aleatoriamente. Esto sigue siendo útil, pero me gustaría probar mi dhcpd
servidor con algunas direcciones MAC específicas para ver cómo maneja las clases que he configurado.
Mi configuración actual 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]: Tenga en cuenta que esta configuración no resulta de la ejecución de los comandos anteriores. En particular ip link add type veth
, habría dado lugar a la creación de un par veth1@veth2
/ veth2@veth1
numerado de esta manera porque veth0
existe.
Respuesta1
Quiero configurar las direcciones MAC para probar la configuración de mi servidor DHCP
Hay (¿al menos?) dos formas de lograr esto enLinux.
El más simple y directo,pero muy arriesgado, es modificar eldirección MACde la interfaz física. Sin embargo para hacerlotienes que bajar la interfazpor lo que no es la forma más segura, y seguramente unaforma altamente riesgosa si se opera de forma remota! Si tiene acceso físico al host o similar, puede ser una opción.
La forma más segura es definir unmacvlanenlace en su interfaz física con la dirección mac adecuada. Siempre puedes cambiar esta dirección mac usando un comando similar al que usarías para cambiar la dirección mac de tu interfaz física. Esto es conveniente para probar múltiples parejas IP/MAC sin tener que crear/eliminar muchas interfaces, por ejemplo.
Digo "más seguro" porque, dependiendo de las medidas de seguridad de su red, también corre el riesgo de perder la conexión con un enlace macvlan si, por ejemplo, su red prohíbe el uso de una dirección mac diferente en su enlace físico. En algunos casos, el dispositivo de red al que está conectado su host podría considerar que está moderando la seguridad y desconectar el enlace.
Para los siguientes comandos, necesita eliproute2utilidades en Linux.
¡LEA EL TEXTO ANTERIOR ANTES DE UTILIZAR LOS SIGUIENTES COMANDOS EN HOST REMOTOS!
Para agregar un enlace macvlan, puede usar:
ip link add link eth0 type macvlan
La interfaz se nombrará macvlanX
donde X
esté el primer número, ya que no existe ninguna interfaz con ese nombre.
Puede nombrar la interfaz (por vif0
ejemplo) en el momento de la creación usando algo como
ip link add name vif0 link eth0 type macvlan
tener una interfaz llamada vif0
.
Una vez que tenga la interfaz, puede cambiar su dirección mac ( 00:11:22:33:44:55
por ejemplo) usando:
ip link set address 00:11:22:33:44:55 dev macvlan0
Este mismo comando se puede utilizar para cambiar la dirección mac de otras interfaces. Este es el que puedes usar para cambiar la dirección mac de tu enlace físico.
Por supuesto, puede agregar el enlace macvlan y configurar su dirección de una sola vez:
ip link add name vif0 address 00:11:22:33:44:55 link eth0 type macvlan
No olvide configurar la interfaz una vez configurada la dirección mac. Con interfaz llamada vif0
:
ip link set dev vif0 up
Tenga en cuenta que algunas partes de esos comandos son opciones y se pueden colocar en diferentes órdenes, otras son parte de la sintaxis y deben colocarse en el lugar correcto. Además se puede omitir alguna parte siempre que no comprometa el significado 1 . En el comando anterior, por ejemplo, dev
se puede omitir.
El tipo predeterminado de macvlan creado es VEPA, que impide las comunicaciones directas entre la interfaz física y virtual. Debería ser adecuado para este caso de uso. Otros modos están disponibles, consulteel capítulo sobre macvlan en este RedHat "Introducción a las interfaces de Linux para redes virtuales".
Espero que ayude... ...a alguien más que pase por aquí.
1: no se puede omitir si tuvo la (muy) mala idea de nombrar una interfaz, dev
por ejemplo.
Respuesta2
Has probado...
ip link add type veth addr 00:01:02:aa:bb:cc
o
ip link set dev veth0 addr 00:01:02:aa:bb:cc
Respuesta3
Crear una interfaz VLAN enlace ip agregar nombre ${nombre de interfaz VLAN} enlace ${nombre de interfaz principal} tipo id de vlan ${tag} Ejemplos: enlace ip agregar nombre eth0.110 enlace eth0 tipo id de vlan 110
http://baturin.org/docs/iproute2/#Create%20a%20VLAN%20interfaz