GNU/Linux >> Znalost Linux >  >> Linux

Získání 2 IP adres na jednu síťovou kartu pomocí DHCP

Protože odpověď DHCP je založena na MAC adrese požadujícího rozhraní, s jediným fyzickým rozhraním je odpověď „nemůžete“. Jediný způsob, jak to udělat, by byl pomocí skriptu.

Možná něco jako (s dílčím rozhraním definovaným na primárním):

  1. Primární rozhraní vydá DHCP a získá IP adresu
  2. macchanger změní MAC adresu rozhraní
  3. Podrozhraní vydává DHCP a získává IP adresu
  4. Vraťte mac adresu pomocí macchangeru

Zabijte klienta dhcp, aby se později automaticky nespustil. Zjistěte dobu zapůjčení přidělené IP adresy a naplánujte spuštění tohoto skriptu před vypršením zapůjčení.

Aktualizovat

K tomu budete potřebovat nainstalovaný iproute2. Následující příkaz přidá virtuální rozhraní vázané na existující rozhraní eth0:

ip link add link eth0 address 00:11:22:33:44:55 virtual0 type macvlan

Nahraďte mac a "virtual0" název rozhraní za cokoliv, co se vám líbí. Zapněte jej:

ip link set virtual0 up

Poté podle potřeby nakonfigurujte pomocí dhcpd nebo dhclient nebo ifconfig. Testoval jsem to na Debian squeeze – vaše distro nemusí mít v jádře povoleno vše potřebné (zejména macvlan).


Jak navrhl @JesseChisholm, je mnohem snazší zeptat se na správnou věc serveru DHCP namísto složitého nastavování sítě.

Pro OpenWRT bych mohl jednoduše spustit:

 # udhcpc -i eth0:1 -x 0x3d:0100BEEFC0FFEE

Což vedlo ke dvěma IP adresám ze stejného dhcp serveru.

0x36 je možnost 61, což je možnost ID klienta. Po :je možnost hexadecimálního bajtu. Toto přišlo z možnosti nápovědy udhcpc:

 # udhcp --help
 BusyBox v1.22.1 (2014-10-08 16:34:50 HKT) multi-call binary.

 Usage: udhcpc [-fbqRB] [-t N] [-T SEC] [-A SEC/-n]
 [-i IFACE] [-s PROG] [-p PIDFILE]
 [-oC] [-r IP] [-V VENDOR] [-F NAME] [-x OPT:VAL]... [-O OPT]...

 ...
 -x OPT:VAL     Include option OPT in sent packets (cumulative)
                Examples of string, numeric, and hex byte opts:
                -x hostname:bbox - option 12
                -x lease:3600 - option 51 (lease time)
                -x 0x3d:0100BEEFC0FFEE - option 61 (client id)

Linux
  1. Linux – zátěžové testování SD karet pomocí Linuxu?

  2. Přidejte cloudové síťové rozhraní ke cloudovému serveru

  3. Ifconfig:7 příkladů konfigurace síťového rozhraní

  1. Získat adresy místního síťového rozhraní pouze pomocí proc?

  2. Linux získává všechny názvy síťových rozhraní

  3. Vytvořte virtuální síťové rozhraní pomocí příkazu iproute2 ip link s podvrženou MAC adresou

  1. Nakonfigurujte síťové rozhraní jako klienta DHCP na RHEL7 Linux

  2. Jak přiřadit více IP adres jednomu síťovému rozhraní na CentOS 8

  3. Použití nástroje SS pro řešení problémů se sítí