Alias ​​de endereço IP atribuído pelo DHCP


17

Gostaria de criar vários aliases para eth0, mas tenho os endereços atribuídos pelo DHCP em vez de serem definidos como IPs estáticos. Isso é possível?

Todos os exemplos que eu vi atribuem um IP estático usando o comando:

ifconfig eth0:0 192.168.1.11 up

Respostas:


17

Isso só é possível se os dois clientes DHCP usarem endereços MAC diferentes. O que significa que eles não podem executar os dois na mesma interface de rede física, que possui um único endereço MAC.

A solução são as interfaces de rede virtual MAC-VLAN do Linux. As interfaces MAC-VLAN são interfaces de rede virtual suportadas por uma interface física, mas usadas com um endereço MAC diferente, gerado aleatoriamente quando você cria um dispositivo MAC-VLAN.

Depois de criar uma interface MAC-VLAN usando uma interface física, você a usa da mesma maneira que faria com a interface física. No seu caso particular, você pode executar um cliente DHCP na interface física e outro no dispositivo MAC-VLAN. Cada dispositivo (físico e MAC-VLAN) pode ter seu próprio endereço IP.

É macvlan0possível criar um novo dispositivo MAC-VLAN eth0executando

ip link add dev macvlan0 link eth0 type macvlan

Pode ser excluído executando

ip link delete dev macvlan0

Usando o NCD, meu software de configuração de rede ( http://code.google.com/p/badvpn/wiki/NCD ), o programa NCD a seguir criará dois dispositivos MAC-VLAN a partir de eth0( macvlan0e macvlan1), executará o DHCP em cada um deles, e atribua a eles os endereços IP obtidos. Você faz facilmente outras coisas, como adicionar rotas e servidores DNS; leia a página do NCD, se estiver interessado.

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

Você terminará com macvlan0e macvlan1cada um com seu próprio endereço IP obtido por DHCP e eth0que está ativo, mas não possui um endereço IP. Como alternativa, você pode criar apenas uma interface MAC-VLAN e executar uma instância DHCP por eth0si mesma.


1
Desculpas por levantar isso dos mortos, mas a declaração "Isso só é possível se os dois clientes DHCP usam endereços MAC diferentes" está incorreta da perspectiva do protocolo DHCP. Mesmo em 2011, o DHCP ainda era baseado em uma identificação de cliente, que não precisa corresponder ao endereço MAC do dispositivo. (RFC 2131, publicado em '97)
Andre Kostur

0

O uso de endereços IP estáticos ou DHCP atribuídos é uma escolha que você faz para o seu computador.

Há um bom tutorial aqui .

Ele contém muitos detalhes e ajuda a evitar problemas que você pode ter se usar um endereço atribuído estático em vez de DHCP, por exemplo, como conectar-se a servidores e gateways DNS.


0

Eu nunca vi uma configuração DHCP que permitisse ao servidor DHCP enviar vários endereços para uma interface. Não acredito que o protocolo o suporte. Depois de entrar em vários endereços IP em uma interface, você realmente deve configurá-los como endereços estáticos.

Alguns clientes DHCP permitem que o endereço estático seja atribuído quando um endereço é fornecido. Não acredito que o Windows permita que você adicione mais de um.

Verifique se todos os seus endereços estáticos estão fora do intervalo de endereços DCHP.


-1

Não sei ao certo Mas acredito que, a menos que você tenha um roteador de código aberto, precisará usar o IP estático para fazer o que quiser. IMO, a menos que você tenha realmente um bom motivo para fazer o que deseja, eu ficaria com o DHCP do witrh. da sua pergunta, vejo que é isso que você deseja, a menos que alguém saiba como fazê-lo, esperaria e ficaria com o DHCP até que alguém desse uma resposta melhor. Embora se você não tiver mais de um ou dois PCs e nada mais na rede (extensores de mídia de impressoras, etc.), eu não usaria IPs estáticos como IDK, como ou se é possível definir esses itens com um IP estático. Talvez você possa fazer o que quiser se tiver um roteador de código aberto e conseguir fazer o que deseja, como usar um IP estático para sua máquina usando o endereço mac como uma maneira de identificá-lo e definir seu IP e endereço IP. o resto da rede pode ser DHCP. IDK, como nunca fiz nada, só estou jogando idéias, então desculpe por não ter uma resposta para você. Embora o link apresentado por Bryan pareça um bom recurso em questões de DHCP e IP estático. Também para o roteador de código aberto, acredito que a Netgear e a D-Link os tornam mais seguros, mas na IMO essas duas marcas são as que eu escolheria. Pessoalmente, não gosto da Linksys desde que foram compradas pela novela (você pensaria que elas seriam melhores, mas NÃO IMO. Pessoalmente, prefiro o D-link, pois são os roteadores mais personalizáveis ​​que encontrei.) Também para o roteador de código aberto, acredito que a Netgear e a D-Link os tornam mais seguros, mas na IMO essas duas marcas são as que eu escolheria. Pessoalmente, não gosto da Linksys desde que foram compradas pela novela (você pensaria que elas seriam melhores, mas NÃO IMO. Pessoalmente, prefiro o D-link, pois são os roteadores mais personalizáveis ​​que encontrei.) Também para o roteador de código aberto, acredito que a Netgear e a D-Link os tornam mais seguros, mas na IMO essas duas marcas são as que eu escolheria. Pessoalmente, não gosto da Linksys desde que foram compradas pela novela (você pensaria que elas seriam melhores, mas NÃO IMO. Pessoalmente, prefiro o D-link, pois são os roteadores mais personalizáveis ​​que encontrei.)

Verifique também este link e você poderá fazer mais com seu roteador, se ele for suportado

Este site possui firmware de roteador


-1

Não, você não pode fazer isso. O DHCP atribui um IP com base no seu endereço de hardware. Cada interface física possui apenas uma delas, portanto, o DHCP atribuirá apenas um IP a uma interface física.

Eu aconselho que você apenas defina os IPs da interface estaticamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.