Configure múltiplas interfaces com nomes de host diferentes usando DHCP e DNS

5

Eu tenho uma máquina rodando o Ubuntu 12.04 Server com duas interfaces conectadas (eth0, eth1) à rede. Nossa rede é configurada para que um servidor DHCP baseado no FreeBSD distribua concessões e registre os nomes de host fornecidos pelo cliente com um servidor DNS na mesma rede.

As duas interfaces precisam ter nomes de host diferentes para registrar ambos no DNS. Em / etc / network / interfaces eu adicionei o nome do host para eth1:

# The primary network interface (hostname: host0)
auto eth0
iface eth0 inet dhcp

# Secondary interface 
auto eth1
iface eth1 inet dhcp
  hostname host1

A configuração do cliente dhcp é algo como isto:

    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

    send host-name "<hostname>";
    request subnet-mask, broadcast-address, time-offset, routers,
            domain-name, domain-name-servers, domain-search, host-name,
            netbios-name-servers, netbios-scope, interface-mtu,
            rfc3442-classless-static-routes, ntp-servers,
            dhcp6.domain-search, dhcp6.fqdn,
            dhcp6.name-servers, dhcp6.sntp-servers;

As concessões obtidas são assim:


# /var/run/resolvconf/interface/eth0.dhclient
lease {
  interface "eth0";
  fixed-address 192.168.28.249;
  option subnet-mask 255.255.255.0;
  option routers 192.168.28.30;
  option dhcp-lease-time 129600;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.28.1,192.168.24.58;
  option dhcp-server-identifier 192.168.28.1;
  option ntp-servers 192.168.28.1,192.168.58.43,192.168.24.58;
  option broadcast-address 192.168.28.255;
  option domain-name "some.org";
  renew 4 2014/02/20 01:00:39;
  rebind 4 2014/02/20 15:31:19;
  expire 4 2014/02/20 20:01:19;
}

# /var/run/resolvconf/interface/eth1.dhclient
lease {
  interface "eth1";
  fixed-address 192.168.19.69;
  option subnet-mask 255.255.255.0;
  option routers 192.168.19.30;
  option dhcp-lease-time 129600;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.28.1,192.168.24.58;
  option dhcp-server-identifier 192.168.28.1;
  option ntp-servers 192.168.28.1,192.168.58.43,192.168.24.58;
  option broadcast-address 192.168.19.255;
  option domain-name "some.org";
  renew 3 2014/02/19 21:56:46;
  rebind 4 2014/02/20 15:30:42;
  expire 4 2014/02/20 20:00:42;
}

Eu não tenho controle sobre o servidor DHCP do FreeBSD, mas me disseram que as concessões foram registradas como:


#####################
lease 192.168.28.249 {
starts 5 2014/02/14 03:24:14;
ends 6 2014/02/15 15:24:14;
cltt 5 2014/02/14 03:24:14;
binding state active;
next binding state free;
hardware ethernet 00:01:02:03:04:12;
set ddns-rev-name = "249.28.168.192.in-addr.arpa.";
set ddns-fwd-name = "host0.dhcp.some.org";
client-hostname "host0";
on expiry or release {
switch (ns-update (delete (1, 12, ddns-rev-name, null))) {
case 0:
unset ddns-rev-name ;
break;
}
switch (ns-update (delete (1, 1, ddns-fwd-name, leased-address))) {
case 0:
unset ddns-fwd-name ;
break;
}
on expiry or release;
}
}
lease 192.168.19.69 {
starts 4 2014/02/13 14:40:47;
ends 6 2014/02/15 02:40:47;
cltt 4 2014/02/13 14:40:47;
binding state active;
next binding state free;
hardware ethernet 00:01:02:03:04:14;
client-hostname "host0";
}

#####################

Em ambas as concessões no lado do servidor, o nome do host do cliente possui o valor "host0". Observe que as concessões foram distribuídas em duas sub-redes diferentes: 192.168.28.0 e 192.168.19.0.

A minha configuração / etc / network / interfaces é tudo o que é necessário para enviar o nome do host da interface secundária para o servidor DHCP? Em caso afirmativo, o que mais devo verificar no lado do cliente para depurar?

(endereços IP e endereços MAC foram modificados para ocultar valores reais)

    
por Ries 19.02.2014 / 10:58

3 respostas

4

Não tenho 100% de certeza se o que você deseja é possível apenas configurando opções em /etc/network/interfaces .

Na teoria , é possível editar /etc/dhcp/dhclient.conf . Tente adicionar uma estrofe como:

interface "eth0" {
    send host-name "host0";
}

interface "eth1" {
    send host-name "host1";
}

Certifique-se de que quaisquer outras opções de nome de host nesse arquivo estejam comentadas e remova o nome de host especificado em /etc/network/interfaces .

    
por 07.05.2014 / 13:33
0

No Linux, você pode adicionar interfaces virtuais às físicas e configurá-las e gerenciá-las separadamente (por algum motivo esquecido há muito tempo, tivemos nossas estações de trabalho morando em duas redes IP diferentes sendo executadas no mesmo cabo por algum tempo). Então você realmente não precisa de duas placas Ethernet, elas provavelmente só interferirão umas com as outras.

Não sei se o DHCP está configurado para configurar interfaces virtuais. Eu acho que não, é missão é atribuir parâmetros de rede e, provavelmente, abrange apenas os casos comuns.

    
por 20.02.2014 / 14:27
0

Eu removi o isc-dhcp-client e mudei o dhcpcd e o nome de host da rede / interfaces agora funciona.

    
por 15.11.2014 / 21:46