Ao testar um POC Zscaler (de uma perspectiva de segurança), tive dificuldade em entender como o CGNAT é roteado no cliente.
Minha principal preocupação (e pergunta) é que a rota 100.64.xy não está na tabela de roteamento (Windows 10). O gateway padrão está no meu gateway de rede local para que o tráfego também não possa ir para lá.
O que há de especial em como o tráfego CGNAT é roteado?
A tabela de roteamento no cliente é
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.43.1 192.168.43.107 50
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
172.22.208.0 255.255.240.0 On-link 172.22.208.1 271
172.22.208.1 255.255.255.255 On-link 172.22.208.1 271
172.22.223.255 255.255.255.255 On-link 172.22.208.1 271
192.168.43.0 255.255.255.0 On-link 192.168.43.107 306
192.168.43.107 255.255.255.255 On-link 192.168.43.107 306
192.168.43.255 255.255.255.255 On-link 192.168.43.107 306
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.43.107 306
224.0.0.0 240.0.0.0 On-link 172.22.208.1 271
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.43.107 306
255.255.255.255 255.255.255.255 On-link 172.22.208.1 271
Abaixo está a resolução de um serviço corporativo interno que está configurado no zscaler (e, portanto, roteado pelo CGNAT). O mesmo nome fora do zscaler aponta para um endereço RFC1918 clássico.
> nslookup internalcorporatesite.com
Server: xxx.com
Address: 192.168.43.1
Non-authoritative answer:
Name: internalcorporatesite.com
Address: 100.64.1.9
Observe que o gateway padrão 192.168.43.1
não tem conhecimento do CGNAT - é uma rede local e o CGNAT é usado pelo zscaler.
Ele usa um driver de filtro que pega pacotes da pilha de rede e os redireciona. Assim, não há NIC virtual para conectividade zScaler.
Isso também significa que os destinos que passam pelo ZPA não aparecem na tabela de roteamento.
O zScaler realmente não usa CGNAT. Ele simplesmente precisa de um intervalo de endereços que não deve ter tráfego legítimo destinado a ele, que possa seqüestrar e redirecionar, com consequências mínimas. Como os pacotes são tratados depois de entrarem no zScaler é basicamente seu molho secreto.