Alias ​​adresu IP przypisany przez DHCP

17

Chciałbym utworzyć kilka aliasów do eth0, ale adresy powinny być przypisywane przez DHCP zamiast ustawiania na statyczne adresy IP. Czy to w ogóle możliwe?

Wszystkie przykłady, które widziałem, przypisują statyczny adres IP za pomocą polecenia:

ifconfig eth0:0 192.168.1.11 up
Steve
źródło

Odpowiedzi:

17

Jest to możliwe tylko wtedy, gdy dwóch klientów DHCP używa różnych adresów MAC. Co oznacza, że ​​nie mogą działać zarówno na tym samym fizycznym interfejsie sieciowym, który ma pojedynczy adres MAC.

Rozwiązaniem są wirtualne interfejsy sieciowe MAC-VLAN systemu Linux. Interfejsy MAC-VLAN to interfejsy sieci wirtualnej wspierane przez interfejs fizyczny, ale używające innego adresu MAC, który jest generowany losowo podczas tworzenia urządzenia MAC-VLAN.

Po utworzeniu interfejsu MAC-VLAN za pomocą interfejsu fizycznego używasz go w taki sam sposób, jak fizyczny. W konkretnym przypadku możesz uruchomić jednego klienta DHCP na interfejsie fizycznym, a drugiego na urządzeniu MAC-VLAN. Każde urządzenie (fizyczne i MAC-VLAN) może wtedy mieć swój własny adres IP.

Nowe urządzenie MAC-VLAN macvlan0można utworzyć eth0, uruchamiając

ip link add dev macvlan0 link eth0 type macvlan

Można go usunąć, uruchamiając

ip link delete dev macvlan0

Korzystając z NCD, mojego oprogramowania do konfiguracji sieci ( http://code.google.com/p/badvpn/wiki/NCD ), następujący program NCD utworzy dwa urządzenia MAC-VLAN z eth0( macvlan0i macvlan1), uruchomi DHCP na każdym z nich, i przypisz im uzyskane adresy IP. Z łatwością wykonujesz inne czynności, takie jak dodawanie tras i serwerów DNS; przeczytaj stronę NCD, jeśli jesteś zainteresowany.

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

Skończysz z macvlan0a macvlan1każdy z własnym adresem IP DHCP uzyskane, i eth0który jest gotowy, ale nie ma adresu IP. Alternatywnie możesz utworzyć tylko jeden interfejs MAC-VLAN i uruchomić na eth0sobie jedną instancję DHCP .

Ambroz Bizjak
źródło
1
Przepraszamy za martwe, ale stwierdzenie „Jest to możliwe tylko wtedy, gdy dwóch klientów DHCP używa różnych adresów MAC” jest niepoprawne z punktu widzenia protokołu DHCP. Nawet w 2011 roku DHCP nadal opierał się na identyfikatorze klienta, który nie musi być zgodny z adresem MAC urządzenia. (RFC 2131, opublikowany w '97)
Andre Kostur,
0

Korzystanie ze statycznych lub przydzielonych DHCP adresów IP to wybór, jaki możesz podjąć dla swojego komputera.

Tutaj jest dobry tutorial .

Zawiera wiele szczegółów i pomaga uniknąć problemów, które mogą wystąpić, jeśli użyjesz adresu statycznego zamiast adresu przydzielonego przez DHCP, np. Jak połączyć się z serwerami DNS i bramami.

bryan
źródło
0

Nigdy nie widziałem konfiguracji DHCP, która pozwalałaby serwerowi DHCP na wysyłanie wielu adresów do interfejsu. Nie wierzę, że protokół to obsługuje. Po przejściu do wielu adresów IP w interfejsie naprawdę powinieneś skonfigurować je jako adresy statyczne.

Niektóre klienty DHCP pozwalają na przypisanie adresu statycznego, gdy adres jest podany. Nie wierzę, że Windows pozwoli ci dodać więcej niż jeden.

Upewnij się, że wszystkie twoje adresy statyczne są poza zakresem adresów DCHP.

BillThor
źródło
-1

Nie wiem na pewno Ale wierzę, że jeśli nie masz routera open source, będziesz musiał użyć statycznego adresu IP, aby zrobić to, co chcesz. IMO, chyba że masz NAPRAWDĘ dobry powód, dla którego chcesz robić to, co chcesz. Po prostu trzymałbym się DHCP. z twojego pytania widzę, że tego właśnie chcesz, więc chyba że ktoś wie, jak to zrobić, poczekam i zostanę przy DHCP, aż ktoś da lepszą odpowiedź. Chociaż jeśli nie masz więcej niż 1-2 szt. I nic więcej w sieci (przedłużacze mediów do drukarek itp.), Nie użyłbym statycznych adresów IP jako IDK w jaki sposób lub czy można ustawić te elementy za pomocą statycznego adresu IP. Być może możesz zrobić, co chcesz, jeśli dostaniesz router typu open source i możesz zrobić to, co chcesz, po prostu użyć statycznego adresu IP komputera za pomocą adresu mac jako sposobu jego identyfikacji i ustawienia jego adresu IP oraz reszta sieci może mieć DHCP. IDK, ponieważ nigdy nie robiłem cienka, po prostu rzucam pomysły, więc przepraszam, że nie mam dla ciebie odpowiedzi. Chociaż link podany przez Bryana wygląda na niezły zasób na temat DHCP i problemów ze statycznym adresem IP. Także w przypadku routera Open Source, sądzę, że Netgear i D-Link je tworzą. Jestem pewien, że więcej, ale IMO to te dwie marki, które wybrałbym. Osobiście nie lubię Linksys, ponieważ zostały kupione przez powieść (można by pomyśleć, że byłyby lepsze, ale NIE IMO. Osobiście wolę D-link, ponieważ są najbardziej konfigurowalnymi routerami, jakie znalazłem). Także w przypadku routera Open Source, sądzę, że Netgear i D-Link je tworzą. Jestem pewien, że więcej, ale IMO to te dwie marki, które wybrałbym. Osobiście nie lubię Linksys, ponieważ zostały kupione przez powieść (można by pomyśleć, że byłyby lepsze, ale NIE IMO. Osobiście wolę D-link, ponieważ są najbardziej konfigurowalnymi routerami, jakie znalazłem). Także w przypadku routera Open Source, sądzę, że Netgear i D-Link je tworzą. Jestem pewien, że więcej, ale IMO to te dwie marki, które wybrałbym. Osobiście nie lubię Linksys, ponieważ zostały zakupione przez powieść (można by pomyśleć, że byłyby lepsze, ale NIE IMO. Osobiście wolę D-link, ponieważ są najbardziej konfigurowalnymi routerami, jakie znalazłem.)

Sprawdź również ten link, a może będziesz mógł zrobić więcej z routerem, jeśli jest on obsługiwany

Ta strona zawiera oprogramowanie układowe routera

Beatnik
źródło
-1

Nie możesz tego zrobić. DHCP przypisuje adres IP na podstawie adresu sprzętowego. Każdy interfejs fizyczny ma tylko jeden z nich, dlatego DHCP przypisuje tylko jeden adres IP do interfejsu fizycznego.

Radzę ustawić statyczne adresy IP interfejsu.

Belrog
źródło