web-dev-qa-db-fra.com

Adresse IP Alias ​​assigné par DHCP

Je voudrais créer plusieurs alias à l'ETH0, mais les adresses attribuées par DHCP au lieu d'être définies sur des IP statiques. Est-ce seulement possible?

Tous les exemples que j'ai vu attribuer une adresse IP statique à l'aide de la commande:

ifconfig eth0:0 192.168.1.11 up
17
Steve

Ceci n'est possible que si les deux clients DHCP utilisent différentes adresses MAC. Ce qui signifie qu'ils ne peuvent pas exécuter à la fois sur la même interface réseau physique, qui a une seule adresse MAC.

La solution concerne les interfaces réseau Virtual Mac-VLAN de Linux. Les interfaces Mac-VLAN sont des interfaces réseau virtuelles soutenues par une interface physique, mais utilisées avec une adresse MAC différente, générée de manière aléatoire lorsque vous créez un périphérique Mac-VLAN.

Une fois que vous avez créé une interface Mac-VLAN à l'aide d'une interface physique, vous l'utilisez de la même manière que vous le feriez le physique. Dans votre cas particulier, vous pouvez exécuter un client DHCP sur l'interface physique et un autre sur le périphérique Mac-VLAN. Chaque appareil (physique et Mac-VLAN) peut alors avoir sa propre adresse IP.

Un nouveau périphérique Mac-VLAN macvlan0 peut être créé à partir de eth0 en exécutant

ip link add dev macvlan0 link eth0 type macvlan

Il peut être supprimé en courant

ip link delete dev macvlan0

Utilisation de NCD, mon logiciel de configuration réseau ( http://code.google.com/p/badvpn/wiki/ncd ), le programme NCD suivant créera deux périphériques Mac-VLAN à partir de eth0 (macvlan0 et macvlan1), exécutez DHCP sur chacun d'eux et attribuez-leur les adresses IP obtenues. Vous faites facilement d'autres choses comme Ajouter des itinéraires et des serveurs DNS; Lisez la page NCD si vous êtes intéressé.

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);
}

Vous allez finir avec macvlan0 et macvlan1 chacun avec sa propre adresse IP obtenue par le DHCP et eth0 qui est en place mais n'a pas d'adresse IP. Sinon, vous pouvez créer une seule interface Mac-VLAN et exécuter une instance DHCP sur eth0 lui-même.

17
Ambroz Bizjak

Je n'ai jamais vu une configuration DHCP qui permettrait au serveur DHCP d'envoyer plusieurs adresses à une interface. Je ne crois pas que le protocole le soutient. Une fois que vous êtes entré dans plusieurs adresses IP sur une interface, vous devez vraiment les configurer comme adresses statiques.

Certains clients DHCP permettent d'attribuer une adresse statique lorsqu'une adresse est fournie. Je ne crois pas que Windows vous permettra d'ajouter plus d'un.

Assurez-vous que toutes vos adresses statiques sont en dehors de la plage d'adresses DCHP.

0
BillThor

L'utilisation d'adresses IP attribuées statiques ou DHCP est un choix que vous faites pour votre ordinateur.

Il y a un bon tutoriel ici .

Il contient de nombreux détails et vous aide à éviter les problèmes que vous pouvez avoir si vous utilisez STATIC au lieu de l'adresse attribuée par DHCP, par exemple. Comment se connecter aux serveurs DNS et aux passerelles.

0
bryan