Alias ​​de dirección IP asignada por DHCP


17

Me gustaría crear varios alias para eth0, pero tengo las direcciones asignadas por DHCP en lugar de establecerlas en IP estáticas. ¿Es esto posible?

Todos los ejemplos que he visto asignan una IP estática usando el comando:

ifconfig eth0:0 192.168.1.11 up

Respuestas:


17

Esto solo es posible si los dos clientes DHCP usan direcciones MAC diferentes. Lo que significa que no pueden ejecutarse en la misma interfaz de red física, que tiene una sola dirección MAC.

La solución son las interfaces de red virtuales MAC-VLAN de Linux. Las interfaces MAC-VLAN son interfaces de red virtuales respaldadas por una interfaz física, pero que se utilizan con una dirección MAC diferente, que se genera aleatoriamente cuando crea un dispositivo MAC-VLAN.

Una vez que crea una interfaz MAC-VLAN usando una interfaz física, la usa de la misma manera que lo haría con la física. En su caso particular, puede ejecutar un cliente DHCP en la interfaz física y otro en el dispositivo MAC-VLAN. Cada dispositivo (físico y MAC-VLAN) puede tener su propia dirección IP.

Se macvlan0puede crear un nuevo dispositivo MAC-VLAN eth0ejecutando

ip link add dev macvlan0 link eth0 type macvlan

Se puede eliminar ejecutando

ip link delete dev macvlan0

Usando NCD, mi software de configuración de red ( http://code.google.com/p/badvpn/wiki/NCD ), el siguiente programa NCD creará dos dispositivos MAC-VLAN desde eth0( macvlan0y macvlan1), ejecutará DHCP en cada uno de ellos, y asígneles las direcciones IP obtenidas. Puede hacer fácilmente otras cosas como agregar rutas y servidores DNS; lea la página de ENT si está interesado.

process lan {
    # Set device.
    var("eth0") dev;

    # Wait for device to appear, set it up, and wait for cable to be plugged in.
    net.backend.waitdevice(dev);
    net.up(dev);
    net.backend.waitlink(dev);

    # Start DHCP's.
    provide("lan-link");
}

process lan_dhcp1 {
    # Wait for link.
    depend("lan-link") linkdep;

    # Choose virtual device name.
    var("macvlan0") vdev;

    # Create virtual MAC-VLAN device.
    list("/sbin/ip", "link", "add", "dev", vdev, "link", linkdep.dev, "type", "macvlan") do;
    list("/sbin/ip", "link", "delete", "dev", vdev) undo;
    run(do, undo);

    # Set virtual device up.
    net.up(vdev);

    # DHCP configuration on virtual device.
    net.ipv4.dhcp(vdev) dhcp;
    ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
    ifnot(test_local);

    println(vdev, ": got address ", dhcp.addr);

    # Assign address to virtual device.
    net.ipv4.addr(vdev, dhcp.addr, dhcp.prefix);
}

# This differs from above only in interface name (macvlan1).
process lan_dhcp2 {
    # Wait for link.
    depend("lan-link") linkdep;

    # Choose virtual device name.
    var("macvlan1") vdev;

    # Create virtual MAC-VLAN device.
    list("/sbin/ip", "link", "add", "dev", vdev, "link", linkdep.dev, "type", "macvlan") do;
    list("/sbin/ip", "link", "delete", "dev", vdev) undo;
    run(do, undo);

    # Set virtual device up.
    net.up(vdev);

    # DHCP configuration on virtual device.
    net.ipv4.dhcp(vdev) dhcp;
    ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
    ifnot(test_local);

    println(vdev, ": got address ", dhcp.addr);

    # Assign address to virtual device.
    net.ipv4.addr(vdev, dhcp.addr, dhcp.prefix);
}

Terminará con macvlan0y macvlan1cada uno con su propia dirección IP obtenida por DHCP, y eth0que está activa pero no tiene una dirección IP. Alternativamente, puede crear una sola interfaz MAC-VLAN y ejecutar una instancia de DHCP en eth0sí misma.


1
Disculpas por sacar esto de la muerte, pero la afirmación "Esto solo es posible si los dos clientes DHCP usan direcciones MAC diferentes" es incorrecta desde la perspectiva del protocolo DHCP. Incluso en 2011, DHCP todavía se basaba en una ID de cliente, que no tiene que coincidir con la dirección MAC del dispositivo. (RFC 2131, publicado en '97)
Andre Kostur

0

El uso de direcciones IP asignadas estáticas o DHCP es una elección que hace para su computadora.

Hay un buen tutorial aquí .

Contiene muchos detalles y le ayuda a evitar problemas que puede tener si usa una dirección estática en lugar de DHCP asignada, por ejemplo, cómo conectarse a servidores DNS y puertas de enlace.


0

Nunca he visto una configuración DHCP que permitiría al servidor DHCP enviar múltiples direcciones a una interfaz. No creo que el protocolo lo admita. Una vez que ingrese a varias direcciones IP en una interfaz, realmente debería configurarlas como direcciones estáticas.

Algunos clientes DHCP permiten asignar direcciones estáticas cuando se proporciona una dirección. No creo que Windows le permita agregar más de uno.

Asegúrese de que todas sus direcciones estáticas estén fuera del rango de direcciones DCHP.


-1

No lo sé con certeza, pero creo que a menos que tenga un enrutador de código abierto, tendrá que usar una IP estática para hacer lo que quiera. OMI, a menos que tenga una razón realmente buena de por qué quiere hacer lo que quiere, me quedaría con DHCP. de su pregunta, veo que eso es lo que quiere, a menos que alguien sepa cómo hacerlo, esperaría y me quedaría con DHCP hasta que alguien dé una mejor respuesta. Aunque si no tiene más de 1-2 unidades y nada más en la red (impresoras, extensores de medios, etc.), entonces no usaría IP estáticas como IDK cómo o si es posible configurar estos elementos con una IP estática. Tal vez pueda hacer lo que quiera si obtiene un enrutador de código abierto y puede hacer que haga lo que quiera, simplemente use una IP estática para su máquina usando la dirección mac como una forma de identificarlo y configurar su IP y el resto de la red podría tener DHCP. IDK como nunca lo he hecho, solo estoy arrojando ideas, así que lo siento por no tener una respuesta para ti. Aunque el enlace presentado por Bryan parece un buen recurso sobre DHCP y problemas de IP estática. También para el enrutador de código abierto, creo que Netgear y D-Link los hacen, estoy seguro más, pero en mi opinión, estas dos marcas son las que elegiría. Personalmente no me gusta Linksys ya que fueron comprados por novela (pensarías que serían mejores pero NO IMO. Personalmente prefiero D-link ya que son los enrutadores más personalizables que he encontrado). También para el enrutador de código abierto, creo que Netgear y D-Link los hacen, estoy seguro más, pero en mi opinión, estas dos marcas son las que elegiría. Personalmente no me gusta Linksys ya que fueron comprados por novela (pensarías que serían mejores pero NO IMO. Personalmente prefiero D-link ya que son los enrutadores más personalizables que he encontrado). También para el enrutador de código abierto, creo que Netgear y D-Link los hacen, estoy seguro más, pero en mi opinión, estas dos marcas son las que elegiría. Personalmente no me gusta Linksys ya que fueron comprados por novela (pensarías que serían mejores pero NO IMO. Personalmente prefiero D-link ya que son los enrutadores más personalizables que he encontrado).

Consulte también este enlace y es posible que pueda hacer más con su enrutador si es compatible

Este sitio tiene firmware de enrutador


-1

No, no puedes hacer eso. DHCP asigna una IP basada en su dirección de hardware. Cada interfaz física solo tiene uno de esos, por lo que DHCP solo asignará una IP a una interfaz física.

Le aconsejaría que solo configure las IP de la interfaz de forma estática.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.