Alias ​​dell'indirizzo IP assegnato da DHCP


17

Vorrei creare diversi alias su eth0, ma ho gli indirizzi assegnati da DHCP invece di essere impostati su IP statici. È possibile?

Tutti gli esempi che ho visto assegnano un IP statico usando il comando:

ifconfig eth0:0 192.168.1.11 up

Risposte:


17

Ciò è possibile solo se i due client DHCP utilizzano indirizzi MAC diversi. Ciò significa che non possono essere eseguiti entrambi sulla stessa interfaccia di rete fisica, che ha un unico indirizzo MAC.

La soluzione è l'interfaccia virtuale di rete MAC-VLAN di Linux. Le interfacce MAC-VLAN sono interfacce di rete virtuali supportate da un'interfaccia fisica, ma utilizzate con un indirizzo MAC diverso, che viene generato casualmente quando si crea un dispositivo MAC-VLAN.

Una volta creata un'interfaccia MAC-VLAN utilizzando un'interfaccia fisica, la si utilizza come se fosse quella fisica. Nel tuo caso particolare, puoi eseguire un client DHCP sull'interfaccia fisica e un altro sul dispositivo MAC-VLAN. Ogni dispositivo (fisico e MAC-VLAN) può quindi avere il proprio indirizzo IP.

Un nuovo dispositivo MAC-VLAN macvlan0può essere creato eth0eseguendo

ip link add dev macvlan0 link eth0 type macvlan

Può essere eliminato eseguendo

ip link delete dev macvlan0

Utilizzando NCD, il mio software di configurazione della rete ( http://code.google.com/p/badvpn/wiki/NCD ), il seguente programma NCD creerà due dispositivi MAC-VLAN da eth0( macvlan0e macvlan1), eseguirà DHCP su ciascuno di essi, e assegnare loro gli indirizzi IP ottenuti. Puoi facilmente fare altre cose come aggiungere percorsi e server DNS; leggi la pagina NCD se sei interessato.

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

Finirai con macvlan0e macvlan1ognuno con il proprio indirizzo IP ottenuto da DHCP, eth0che è attivo ma non ha un indirizzo IP. In alternativa, è possibile creare una sola interfaccia MAC-VLAN ed eseguire un'istanza DHCP su eth0se stessa.


1
Ci scusiamo per aver sollevato questo da zero, ma l'affermazione "Questo è possibile solo se i due client DHCP utilizzano indirizzi MAC diversi" non è corretta dal punto di vista del protocollo DHCP. Anche nel 2011 il DHCP era ancora basato su un ID client, che non doveva corrispondere all'indirizzo MAC del dispositivo. (RFC 2131, pubblicato nel '97)
Andre Kostur,

0

L'uso di indirizzi IP assegnati statici o DHCP è una scelta che fai per il tuo computer.

C'è un buon tutorial qui .

Contiene molti dettagli e ti aiuta a evitare problemi che potresti avere se usi un indirizzo statico anziché DHCP assegnato, ad esempio come connetterti a server DNS e gateway.


0

Non ho mai visto una configurazione DHCP che consentirebbe al server DHCP di inviare più indirizzi a un'interfaccia. Non credo che il protocollo lo supporti. Una volta entrati in più indirizzi IP su un'interfaccia, è necessario configurarli come indirizzi statici.

Alcuni client DHCP consentono di assegnare un indirizzo statico quando viene fornito un indirizzo. Non credo che Windows ti permetterà di aggiungere più di uno.

Assicurarsi che tutti gli indirizzi statici siano al di fuori dell'intervallo di indirizzi DCHP.


-1

Non lo so per certo Ma credo che a meno che tu non abbia un router open source, dovrai usare l'IP statico per fare quello che vuoi. IMO, a meno che tu non abbia davvero un buon motivo per cui vuoi fare quello che vuoi, attaccherei semplicemente al DHCP. dalla tua domanda vedo che è quello che vuoi, quindi a meno che qualcuno non sappia come farlo, aspetterei e rimarrei con DHCP fino a quando qualcuno non darà una risposta migliore. Sebbene se non si dispone di più di 1-2 pezzi e nient'altro in rete (estensori di supporti per stampanti, ecc.), Non utilizzare IP statici come IDK come o se è possibile impostare questi elementi con un IP statico. Forse puoi fare quello che vuoi se ottieni un router open source e potresti essere in grado di farlo come vuoi semplicemente usare un IP statico per la tua macchina usando l'indirizzo mac come un modo per identificarlo e impostare il suo IP e il resto della rete potrebbe essere DHCP. IDK come non ho mai fatto nulla sto solo buttando fuori idee quindi mi dispiace per non avere una risposta per te. Anche se il collegamento proposto da Bryan sembra una bella risorsa su DHCP e problemi di IP statico. Anche per il router Open Source credo che Netgear e D-Link li rendano più sicuri, ma IMO questi due marchi sono quelli che sceglierei. Personalmente non mi piacciono i Linksys poiché sono stati acquistati dal romanzo (penseresti che sarebbero migliori ma NON IMO. Personalmente preferisco D-link in quanto sono i router più personalizzabili che ho trovato.) Anche per il router Open Source credo che Netgear e D-Link li rendano più sicuri, ma IMO questi due marchi sono quelli che sceglierei. Personalmente non mi piacciono i Linksys poiché sono stati acquistati dal romanzo (penseresti che sarebbero migliori ma NON IMO. Personalmente preferisco D-link in quanto sono i router più personalizzabili che ho trovato.) Anche per il router Open Source credo che Netgear e D-Link li rendano più sicuri, ma IMO questi due marchi sono quelli che sceglierei. Personalmente non mi piacciono i Linksys poiché sono stati acquistati dal romanzo (penseresti che sarebbero migliori ma NON IMO. Personalmente preferisco D-link in quanto sono i router più personalizzabili che ho trovato.)

Dai un'occhiata anche a questo link e potresti essere in grado di fare di più con il tuo router se è supportato

Questo sito ha il firmware del router


-1

No, non puoi farlo. DHCP assegna un IP in base al tuo indirizzo hardware. Ogni interfaccia fisica ne ha solo una, quindi DHCP assegnerà un solo IP a un'interfaccia fisica.

Ti consiglierei di impostare staticamente gli IP dell'interfaccia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.