Como configurar um endereço IP estático, mas DNS via DHCP

3

Eu configurei um endereço IP estático no arquivo / etc / network / interfaces :

auto eth0
iface eth0 inet static
    address 10.152.187.122
    gateway 10.152.187.1
    netmask 255.255.255.0

Mas gostaria que o DNS fosse configurado automaticamente com DHCP . Por exemplo, se eu executo o dhclient, ele preenche corretamente o /etc/resolv.conf . Mas eu gostaria que isso fosse executado na inicialização e não tenho certeza de onde a maneira correta de configurar isso.

Esta é a imagem da nuvem Ubuntu 12.04 (Precise Pangolin) .

    
por Ian Kelling 02.01.2015 / 22:42

3 respostas

2

Com o DHCP, você obtém os endereços do servidor DNS que o roteador obtém quando obtém um endereço IP do provedor de serviços de Internet (ISP). Você pode usar os endereços DNS do roteador como este:

auto eth0
iface eth0 inet static
  address 10.152.187.122   
  netmask 255.255.255.0
  gateway 10.152.187.1
  dns-nameservers 10.152.187.1
    
por chili555 02.01.2015 / 23:29
2

O que você está pedindo é essencialmente uma configuração híbrida de IP estático, mas DNS do DHCP. Não existe esse tipo de configuração de rede - você tem estática ou DHCP.

Você pode definir explicitamente os servidores de nomes DNS, na sua configuração, assim. Isso mantém os endereços estáticos, mas infelizmente não irá configurar o DNS dinamicamente (o que não é realmente possível em uma configuração híbrida como esta).

auto eth0
iface eth0 inet static
  address 10.152.187.122
  netmask 255.255.255.0
  gateway 10.152.187.1
  dns-nameservers 10.152.187.1
  dns-nameservers 8.8.8.8
  dns-nameservers 8.8.4.4
  ...

TL; DR: Não é possível obter DNS DHCP, IP estático, a menos que você tenha uma entrada estática definida na tabela de atribuições DHCP no roteador - o que garante que você sempre obterá esse IP porque ele já está especificamente reservado para esse sistema específico / endereço MAC

    
por Thomas Ward 02.01.2015 / 23:39
0

Também estou interessado em consultar servidores DNS do DHCP sem usar outras informações.

O dhcpcd pode permitir consultá-lo ( dhcpcd -o domain_name_servers -T ), mas não consegui encontrar nada para o dhclient.

Além de usar um dhclient modificado (veja aqui no GitHub e aqui no Stack Overflow ) ou um test-client ( como neste blog ) ou scripts diferentes ( veja isso no Stack Overflow ) Eu encontrei uma solução powershell aqui em recuado.com.br .

Isso me fez pensar em usar "o básico" no Linux e acabei com uma solicitação dhcp criada usando printf .

Alguns campos podem ser falsos (como mac aa: bb: cc: dd: ee: ff) mas contém opções 53 = 0x35 (len 1 / value 1 = Request) e 55 = 0x37 (len 1 / value 6 para DNS).

Para transmissão, o socat é usado:

printf "\x1\x1\x6\x0\xd3\x44\x33\xeb\x0\x0\x80\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\xaa\xbb\xcc\xdd\xee\xff\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x63\x82\x53\x63\x35\x01\x01\x37\x01\x06\xff" |  socat - UDP4-DATAGRAM:255.255.255.255:67,broadcast

Simliar socat é usado para receber uma resposta

socat -u udp-recv:68,reuseaddr -

ou

socat -u udp-recv:68 - | dd bs=1 skip=$( printf "%d" 0xec )

Usando o xxd, encontrei o que procurava ...

    
por HopefullyHelpful 26.07.2017 / 13:28