alias de endereço IP atribuído pelo DHCP

17

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

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

ifconfig eth0:0 192.168.1.11 up
    
por Steve 13.08.2010 / 15:06

5 respostas

17

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

A solução é as interfaces de rede MAC-VLAN virtuais do Linux. As interfaces MAC-VLAN são interfaces de rede virtuais respaldadas por uma interface física, mas usando um endereço MAC diferente, que é 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 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.

Um novo dispositivo MAC-VLAN macvlan0 pode ser criado a partir de eth0 executando

ip link add dev macvlan0 link eth0 type macvlan

Ele pode ser excluído pela execução

ip link delete dev macvlan0

Usando o NCD, meu software de configuração de rede ( link ), o seguinte programa de NCD criará dois MAC - Dispositivos de VLAN de eth0 ( macvlan0 e macvlan1 ), executam o DHCP em cada um deles e atribuem a eles os endereços IP obtidos. Você facilmente faz 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ê terá macvlan0 e macvlan1 cada um com seu próprio endereço IP obtido por DHCP e eth0 , que está ativo, mas não possui um endereço IP. Alternativamente, você pode criar apenas uma interface MAC-VLAN e executar uma instância DHCP no próprio eth0 .

    
por 12.09.2011 / 18:23
0

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

Existe um bom tutorial aqui .

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

    
por 13.08.2010 / 15:53
0

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

Alguns clientes DHCP permitem que endereços estáticos sejam atribuídos quando um endereço é fornecido. Eu não acredito que o Windows permitirá que você adicione mais de um.

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

    
por 13.08.2010 / 23:13
-1

Eu não sei ao certo Mas eu acredito que a menos que você tenha um roteador de código aberto, então você terá que usar IP estático para fazer o que quiser. IMO, a menos que você tenha uma boa razão para querer fazer o que quiser, eu ficaria com DHCP. da sua pergunta eu vejo que é o que você quer, a menos que alguém saiba como fazê-lo, eu esperaria e ficaria com o DHCP até que alguém desse uma resposta melhor. Embora, se você não tiver mais do que 1-2 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 quiser, basta usar um IP estático para sua máquina usando o endereço MAC como uma forma de identificá-lo e definir seu IP e o resto da rede poderia ser um DHCP. IDK como eu nunca fiz thins eu estou apenas jogando fora idéias tão Desculpe por não ter uma resposta para você. Embora o link apresentado por Bryan se pareça com um recurso interessante em problemas de DHCP e IP estático. Além disso, para o roteador Open Source, acredito que a Netgear e a D-Link as façam, mas tenho certeza de que essas duas marcas são as que eu escolheria. Eu pessoalmente não gosto Linksys desde que eles foram comprados por romance (você pensaria que seria melhor, mas não IMO. Pessoalmente eu prefiro D-link como eles são os roteadores mais customizeable que eu encontrei.)

Verifique também este link e você poderá fazer mais com seu roteador se ele for compatível

Este site tem o Firmware do Roteador

    
por 13.08.2010 / 20:11
-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 um desses, portanto, o DHCP atribuirá apenas um IP a uma interface física.

Eu aconselho você a definir os IPs da interface estaticamente.

    
por 14.01.2011 / 13:10