Antes de responder às perguntas, gostaria de abordar algumas das suposições nele contidas.
The firewalling properties of NAT were also beneficial for security.
Isso é freqüentemente repetido, mas simplesmente não é verdade; veja abaixo.
IPv4 NAT firewall rules are "block incoming packet remote-address:port -> local-address:port, unless sent outgoing packet local-address:port -> remote-address:port within the last X seconds".
Estas não são regras NAT, mas regras stateful . As regras com estado são mais seguras do que as regras sem estado de estilo antigo que as precederam, porque são essencialmente adaptativas; ou seja, o estudo cuidadoso do firewall sobre o tráfego de saída permite que ele faça julgamentos mais precisos sobre o tráfego de entrada do que as regras baseadas em porta / endereço permitiriam.
É certamente verdade que os firewalls NAT são implicitamente stateful, mas é importante reconhecer que statefulness é o que você procura, não NAT, porque o NAT tem uma reputação muito ruim em certos cantos do NAT. a comunidade ipv6, e você viu muita resistência a implementá-lo no ipv6.
O processo "introdutor" do UDP que você descreve não está restrito a cenários NAT, mas também se aplica sempre que um serviço não depende de um único número de porta conhecido. O RPC é o exemplo clássico, pelo qual os serviços se ligam a uma porta (semi) aleatória, então registram essa porta e seus nomes com o portmapper, que faz usar uma porta bem conhecida (111 / TCP e 111 / UDP). Os clientes que desejam se conectar, contatam o portmapper para descobrir em qual porta o serviço desejado está sendo executado, e iniciam conexões com essa porta. Isso é exatamente o que seu diagrama mostra, e isso acontece milhões de vezes todos os dias em redes planas (não-NATted) em todo o mundo que estão executando o NFS.
Quanto às suas perguntas, a pergunta (1) deve realmente ser lida " Se meu firewall IPv6 estiver configurado para recusar o tráfego UDP de entrada sem corresponder ao estado, meu cliente UDP ainda precisará iniciar todas as conexões arbitrárias com serviços externos ". A resposta, infelizmente, é " depende ". Extensões stateful, como a extensão RELATED
em iptables
, permitem que firewalls permitam tráfego que não possui um estado de correspondência simples, com base em que uma conexão preexistente solicitou isso na camada do aplicativo - sendo o FTP em modo ativo o exemplo clássico - mas requer um módulo de kernel que entende os detalhes do protocolo em questão, e a implantação de criptografia de ponta a ponta torna essa inspeção profunda de pacotes cada vez mais difícil. Portanto, sem tais soluções alternativas, a resposta à pergunta 1 é yes . Isso também é verdade para serviços TCP sem um número de porta conhecido.
Quanto à pergunta (2), uma pesquisa exaustiva dos equipamentos SOHO provavelmente está fora do alcance e da capacidade do ServerFault, mas em muitos anos não vi um dispositivo de firewall - v4 ou v6 - fornecido com uma configuração aberta padrão .