Para responder a metade, sua pergunta, o Ubuntu cria um nome aleatório (mas constante) para cada porta ethernet em seu sistema, ao invés de atribuir eth0, eth1, ... Isto significa que se você tem múltiplas portas ethernet você não encontrará que um nome diferente é atribuído ao nome eth0 em algumas inicializações, importante para redes segregadas etc. Por outro lado, torna a vida um pouco mais complicada se você tiver apenas uma porta ethernet.
No meu sistema, incluo o arquivo etc / udev / rules.d / 10-network.rules
# Set the name of the ethernet port to "net1"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="bc:5f:f4:ed:68:c6", NAME="net1"
para forçar um nome para minha porta ethernet (onde bc: 5f ... é o endereço MAC da minha porta ethernet e "net1" é o nome que eu quero atribuir a ele). Se eu mudar a placa ethernet, só preciso alterar o endereço MAC nesse arquivo, em vez de tentar encontrar todas as referências a net1.
Eu não posso te ajudar com a segunda parte da sua pergunta dhcp (eu uso o dnsmasq)