Sem tornar as coisas muito complicadas, suas suposições iniciais estão corretas.
Você pode atribuir ao Machine-A um nome de domínio, mas outras máquinas na rede ainda precisam de "alguém" para traduzir esse nome para um IP se você tentar fazer ping dele, na maioria das vezes "alguém" é o servidor DNS.
Existem serviços para tornar essa descoberta automática, ou seja, deixar sua máquina transmitir seu nome de host por meio de um protocolo específico, mas vamos deixar isso de lado por enquanto.
No caso de uma VM, outra coisa a lembrar é que o VirtualBox, por exemplo, colocará automaticamente sua VM em uma rede LAN, portanto, por padrão, sua máquina host está em uma rede diferente da sua VM.
Se você estiver jogando com o Apache dentro de uma VM, sugiro configurar o tipo de rede da VM para "em ponte", o que permitirá que ela se comporte como outra máquina em sua mesma rede doméstica.
Com relação a como acessar a VM a partir do host ou de qualquer outra máquina na mesma rede (desde que você já tenha definido a rede em ponte), você pode registrá-la em seu roteador doméstico, a maioria deles oferecerá uma opção console administrativo para registrar nomes de host.
Espero que isso ajude.