Num perfil IKEv2 nativo, a chave interessante não é uma caixa de seleção, é IncludeAllNetworks, e o que ela altera é o âmbito do que o sistema pode enviar para fora do túnel. Defina-a como 1 e o macOS passa a tratar o túnel como o caminho para praticamente todo o tráfego IP, exceto um conjunto de exceções que ele define e que você pode ampliar. Como vive num dicionário de perfil e não num menu, também não significa o que a maioria das pessoas presume ao ler a expressão enviar todo o tráfego.

O que a chave muda dentro da pilha de rede

Sem ela, o túnel comporta-se como uma interface de rede com rotas associadas. Uma rota predefinida através dessa interface captura a maior parte do tráfego, e qualquer rota mais específica noutra interface continua a ganhar para o seu próprio prefixo. Isto é encaminhamento normal, e é por isso que a divisão de tráfego por túnel acontece quase por acidente.

Com a chave ativada, o âmbito deixa de ser uma preferência de encaminhamento e passa a ser uma política sobre que tráfego pode sair por algo que não o túnel. O sistema continua a precisar de alcançar a rede para manter a ligação viva, por isso a política inclui exceções em vez de fingir que elas não existem. Ativá-la nunca deixa a máquina sem qualquer caminho funcional. O que obtém é uma lista de caminhos mais curta do que supunha, e essa lista está documentada.

A consequência prática é que acrescentar uma rota já não explica o resultado. Se um destino continua a ser alcançado diretamente, a pergunta a fazer não é qual rota ganhou, mas se uma exceção o abrange.

As exceções fazem parte da definição

A Apple documenta várias exclusões ao lado da chave principal, abrangendo redes locais, tráfego do Apple Push Notification, serviços celulares e comunicação com dispositivos. Cada uma tem as suas condições de plataforma e versão, por isso o mesmo perfil pode comportar-se de forma diferente entre versões do macOS.

Algumas dessas exclusões são intrínsecas. O tráfego necessário para estabelecer e manter o acesso à rede, incluindo o tratamento de portais cativos, tem de ser permitido, ou a máquina pode ficar ligada a nada e sem forma de o corrigir.

Depois vêm as escolhas deliberadas. Permitir uma impressora doméstica não é a mesma decisão que permitir um prefixo de recursos da empresa, e ambas diferem de manter os APNs acessíveis para que as notificações continuem a chegar. Registe quais ativou, no próprio perfil, em vez de os descobrir mais tarde através de um relatório de erro.

Porque não é o mesmo que uma rota predefinida

Uma rota predefinida é uma entrada da tabela de encaminhamento, e as tabelas de encaminhamento perdem. Um prefixo mais específico vence-a, uma ligação limitada à aplicação pode contorná-la, e uma segunda interface com melhor métrica pode assumir o controlo sem que ninguém toque na configuração da VPN.

A orientação de encaminhamento da Apple torna a distinção explícita: as predefinições comuns podem ser substituídas por rotas mais específicas, enquanto a definição de âmbito mais ampla determina que tráfego o túnel tem de transportar e o que fica de fora. Uma é uma preferência, a outra está mais próxima de uma regra.

Essa diferença também muda a forma de diagnosticar uma fuga. Com uma rota predefinida, inspeciona rotas e métricas. Com a chave de âmbito, inspeciona a revisão do perfil, as exceções instaladas e o comportamento específico da versão, porque a tabela de encaminhamento está a jusante de uma decisão tomada antes.

O EnforceRoutes é um botão diferente

EnforceRoutes soa à versão estrita da mesma ideia, e as pessoas empilham as duas na convicção de que mais chaves significam mais cobertura. A Apple documenta que é ignorada quando IncludeAllNetworks está ativada, por isso a segunda chave não traz nada nessa combinação.

Trate-a como alternativa para configurações que não usam o âmbito mais amplo, não como reforço. Se não conseguir explicar o que cada chave faz isoladamente, acrescentar ambas só torna o perfil mais difícil de rever.

Aquilo em que o gateway e o dono do perfil têm de concordar

Uma definição do cliente não pode obrigar um servidor a encaminhar tráfego para o qual nunca foi configurado. O gateway tem de aceitar a sessão, atribuir endereços, fornecer um caminho de retorno para os prefixos que pretende alcançar e servir DNS na disposição que escolher. Se só encaminhar um prefixo, o âmbito amplo do cliente produz tráfego que chega e morre. Um pedido para um destino fora das rotas do gateway prova isso num minuto.

Um túnel gerido por uma aplicação é ainda outro caso. O fornecedor tem de implementar ou expor o comportamento suportado; instalar um segundo perfil IKEv2 nativo não modifica um túnel que outra aplicação já gere, e uma chave IKEv2 não é uma diretiva OpenVPN que outro cliente irá ler.

Para a lista atual de chaves e as condições de versão, leia a referência da carga IKEv2 da Apple em vez de um perfil que alguém copiou há anos.

Aceite uma revisão de perfil como um todo

Antes de alterar um Mac administrado remotamente, escreva as versões de macOS alvo, a saída de internet pretendida, os prefixos privados que têm de continuar acessíveis e cada exclusão que está a ativar. Depois preserve um caminho de recuperação que não dependa do túnel que está prestes a alterar.

Teste pedidos públicos novos, pedidos privados, ambas as famílias de endereços e a resolução de nomes, e verifique a revisão instalada em vez do ficheiro de conceção. Se algo continuar a ir diretamente, decida se é uma exceção documentada, um contexto de ligação diferente ou um erro real de configuração, e altere uma dessas três coisas em vez de alargar chaves não relacionadas.

Artigos relacionados