Na época em que as ifconfig
únicas maneiras de verificar o endereço IP/máscara/gateway em um sistema - havia uma maneira de determinar se esses atributos foram atribuídos via DHCP ou estaticamente?route -n
cat /etc/resolv.conf
Eu sei nmcli connection show
que indicará se ipv4.method
for auto
. E eu sei ip addr
que listarei dynamic
os endereços atribuídos ao DHCP.
Mas fora desses dois, e mesmo antes de existirem esses dois pacotes, era possível dizer? Se sim, como?
Às vezes você pode dizer que o resolv.conf foi gerado automaticamente pelo dhcp procurando comentários no arquivo, mas isso não é padronizado de forma alguma.
A maneira mais eficaz de verificar era ver se algo parecido
dhcpcd
oudhclient
estava em execução. Sem eles, o sistema não poderá renovar seu endereço IP na expiração e provavelmente você ainda encontrará um deles, mesmo em sistemas atuais que usam o gerenciador de rede.Claro, mesmo sistemas mais antigos podem usar rarp ou bootp em vez de dhcp, e isso não requer um daemon. (Espero que ninguém mais use isso.)
Além da presença de um serviço para renovar a concessão do DHCP, a única outra maneira de saber seria verificar se um arquivo de configuração em algum lugar define estaticamente o endereço IP. A forma como isso funciona também mudou ao longo dos anos, e você ainda pode configurar manualmente o endereço na linha de comando com
ifconfig
ouip
que não teria um arquivo de configuração nem um serviço de renwal de locação dhcp.Portanto, não, fora do gerenciador de rede, não há como saber como a rede foi configurada se você não conseguir encontrar o que fez isso por outros métodos, como verificar um arquivo de configuração ou verificar se há um serviço em execução e seu arquivos de configuração. E mesmo estes não são confiáveis, porque um serviço pode morrer, deixando a rede configurada, ou um serviço pode ser configurado, mas o endereço pode ser configurado manualmente separadamente.
Provavelmente, a única maneira confiável é verificar
dynamic
osvalid_lft
segundos emitidos,ip addr
como você já mencionou. Provavelmente isso é mais preciso do que a interface nmcli, mas normalmente não discorda. Também não tenho certeza de quanto tempo o kernel manteve esses parâmetros.