strongSwan vips: pedir um endereço virtual ao IKEv2
vips solicita um endereço IKEv2 interno; o gateway decide o que concede. Configure o pedido, carregue-o e depois verifique o que o respondedor realmente atribuiu.
O seu cliente IKEv2 pode pedir um endereço interno ao gateway, e é o gateway que decide o que devolver. No strongSwan, esse pedido é a definição vips, e continua a ser um pedido mesmo quando escreve um endereço específico nela. O guia abaixo configura o pedido, carrega-o e lê o que voltou, porque estes três passos falham de três formas diferentes. Nenhum deles encurta por escrever com mais força.
O que o vips pede e o que não pode prometer
O vips pertence a uma definição de ligação e pede um endereço virtual ao respondedor. O guia de endereços virtuais do strongSwan é explícito ao dizer que a resposta pode ser outro endereço, ou nada de todo, e é essa a frase que as pessoas saltam quando escrevem um valor e esperam que ele apareça. O pedido continua a valer a pena, porque o que verifica é a resposta. Trate a definição como uma instrução para perguntar, não como a configuração do resultado.
Pedir 0.0.0.0 solicita qualquer endereço virtual IPv4 disponível, o que normalmente está certo quando o valor exato não importa. Pedir um endereço específico é uma sugestão para o gateway, não uma exigência sobre ele.
O fragmento swanctl e onde fica
A definição fica dentro do bloco da ligação, não num ficheiro próprio nem num perfil do sistema operativo. Este fragmento isolado mostra a forma:
connections {
net {
local_addrs = 192.0.2.10
remote_addrs = 203.0.113.5
vips = 10.77.0.31
children {
net { local_ts = dynamic remote_ts = 10.77.0.0/24 }
}
}
}
Carregue-o com o ficheiro que possui a ligação, depois inicie a ligação e leia o resultado. Um fragmento colado na secção errada produz um erro de análise ou, pior, uma ligação que carrega sem o pedido que julgava ter feito. Execute os três comandos por ordem e guarde a saída.
swanctl --load-all --file /etc/swanctl/swanctl.conf
swanctl --initiate --child net
swanctl --list-sas
local_ts escolhe tráfego, não cria um endereço
local_ts nomeia o conjunto de tráfego que a SA filha protege; não coloca um endereço numa interface. Uma vez negociado um IP virtual, o strongSwan deixa de usar o seu seletor dinâmico predefinido e passa a usar o endereço concedido. Se fixar o seletor a um endereço literal, está a afirmar algo que o gateway pode não ter concedido, e é por isso que a falha aparece como uma SA a funcionar com tráfego que não vai a lado nenhum. O seletor descreve tráfego, enquanto a atribuição vem da outra troca.
A outra forma de obter um endereço interno estável é possuí-lo localmente. Coloque o endereço numa interface antes de o túnel subir, aponte o seletor para o que já existe e organize o par e a rota à volta disso.
Nesse desenho nada é negociado, por isso nada pode ser reatribuído, e essa é a troca: determinismo em vez de fazer o trabalho de endereçamento por si. É um mecanismo diferente, não uma variante de vips, e por isso os dois não devem ser misturados numa só ligação. Um seletor fixado ao lado de um endereço negociado é uma ligação que funciona até o gateway entregar outra coisa.
Verifique o que o respondedor realmente atribuiu
Leia a lista de SA para encontrar o endereço que o gateway concedeu, e depois confirme que o endereço existe na interface. Se os dois não concordarem, o túnel está levantado e o tráfego não vai para onde pensa. Um endereço concedido que nunca chega à interface é a falha mais confusa desta sequência, porque cada metade parece correta sozinha.
Mantenha quatro endereços separados nas notas: o endereço interno pedido, o concedido, o endereço LAN da máquina e a saída pública que um site reporta. Pertencem a camadas diferentes e aparecem em locais diferentes. Um guia que registe os quatro é um que outra pessoa pode seguir sem perguntar qual endereço queria dizer. Volte a lê-los após cada recarregamento, porque o valor concedido é o único que descreve o túnel vivo.
Mantenha o desenho estático à parte
Se precisar de um endereço interno fixo, organize a reserva no gateway e deixe o pedido do cliente como pedido. Misturar um seletor fixado com um endereço negociado dá uma ligação que funciona até o gateway atribuir outra coisa. Anote a regra de reserva ao lado da ligação, porque é a parte que um colega não consegue inferir do ficheiro de configuração. Assim, um novo cliente herda a regra em vez de a redescobrir.
No cliente Mac integrado não existe nenhum destes nomes de opção. Use a atribuição ou reserva que o gateway oferece e o perfil que o operador publica, e trate qualquer valor do lado do cliente como uma sugestão até ter relido a atribuição. Reverter significa remover a linha vips e recarregar, o que o devolve ao que o gateway atribui por predefinição.