O IPv6 oferece um espaço de endereçamento maior e segurança aprimorada em comparação ao IPv4. Este tópico mostra como criar um gateway ASM com endereço IPv6 e como adicionar um endereço IPv6 a um gateway existente.
Pré-requisitos
Adicione o cluster à instância do ASM. Para mais informações, consulte Adicionar um cluster a uma instância do ASM.
Método 1: Criar um gateway ASM IPv6
Ao criar um gateway ASM, adicione a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6" para atribuir a ele um endereço IPv6.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página Ingress Gateway, clique em Create from YAML.
-
Na página Create, defina Namespaces como istio-system, insira o conteúdo abaixo no editor e clique em Create.
Defina o campo
clusterIdscom o ID do seu cluster de plano de dados.Parâmetro
Descrição
service.beta.kubernetes.io/alicloud-loadbalancer-address-type
Tipo de rede da instância CLB. Valores válidos:
-
internet: Rede pública.
-
intranet: Rede privada.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec
Especificação da instância CLB. Valores válidos:
slb.s1.small,slb.s2.small,slb.s2.medium,slb.s3.small,slb.s3.mediumeslb.s3.large.service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Defina o valor como
"ipv6"para atribuir um endereço IPv6 à instância CLB.Após criar o gateway, a página Ingress Gateway exibe um endereço IPv6 como Service address do gateway.
-
Método 2: Adicionar IPv6 a um gateway ASM existente
Se você já possui um gateway ASM com endereço IPv4, adicione suporte a IPv6 criando uma instância CLB adicional. Isso permite que o gateway utilize simultaneamente endereços IPv4 e IPv6.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em nome do seu cluster. No painel de navegação à esquerda, clique em .
Na página Services, defina Namespace como istio-system na parte superior da página e clique em Create Resources in YAML no canto superior direito.
-
Na página Create, defina Sample Template como Custom, copie o conteúdo abaixo para o editor de Template e clique em Create.
ImportanteO valor de
nodePortnão deve entrar em conflito com nenhum número de porta existente.Parâmetro
Descrição
service.beta.kubernetes.io/alicloud-loadbalancer-address-type
Tipo de rede da instância CLB. Valores válidos:
-
internet: Rede pública.
-
intranet: Rede privada.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec
Especificação da instância CLB. Valores válidos:
slb.s1.small,slb.s2.small,slb.s2.medium,slb.s3.small,slb.s3.mediumeslb.s3.large.service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Defina o valor como
"ipv6"para atribuir um endereço IPv6 à instância CLB.Após criar o serviço, a página Services lista os endereços IPv4 e IPv6 de
istio-ingressgatewayeistio-ingressgateway-2na coluna External IP. Esses endereços funcionam como pontos de entrada IPv4 e IPv6 para o gateway ASM. -
Perguntas frequentes
Obter o endereço IPv6 original do cliente
Configure a instância CLB associada ao endereço IPv6. Modifique as configurações de listener para as portas 80 e 443. Na seção Advanced Settings, ative o Proxy Protocol. Para mais informações, consulte Obter o endereço IP real de um cliente usando o listener de camada 4 de uma instância CLB.
-
Crie um EnvoyFilter Template.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha . Na página exibida, clique em Create EnvoyFilter Template.
-
Na página Create, insira um nome para o modelo, clique em Add an EnvoyFilter template for specific adapted istio version., selecione uma Adapted istio version, configure o YAML abaixo e clique em Create.
apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: proxy-protocol namespace: istio-system spec: configPatches: - applyTo: LISTENER patch: operation: MERGE value: listener_filters: - name: envoy.listener.proxy_protocol - name: envoy.listener.tls_inspector workloadSelector: labels: istio: ingressgateway
-
Aplique o EnvoyFilter Template ao gateway ASM para habilitar o suporte ao Proxy Protocol.
Na página EnvoyFilter Template, localize o modelo desejado e clique em Edit template na coluna Actions.
Na página Edit EnvoyFilter Template, clique em aba Bind template to workloads e depois em Bind EnvoyFilter to Workloads.
Na caixa de diálogo Bind EnvoyFilter to Workloads, defina Namespaces como istio-system e Workload Type como Deployment. Na seção Not bound, clique em Bind ao lado do gateway alvo e clique em OK.
-
Acesse a URL IPv6 do gateway por uma rede IPv6 e visualize os logs correspondentes do gateway.
No exemplo de log de gateway abaixo, o valor do campo
downstream_remote_addresscorresponde ao endereço IPv6 original do cliente.{"upstream_cluster":null,"bytes_received":0,"downstream_local_address":"[2400:XXXX:1300::12d1]:80","upstream_service_time":null,"FILTER_CHAIN_NAME":null,"path":"/","x_forwarded_for":"2402:XXXX:1800:af00:0:9671:f00f:314b","upstream_host":null,"bytes_sent":0,"requested_server_name":null,"route_name":null,"response_flags":"NR","start_time":"2022-12-28T06:41:57.796Z","upstream_transport_failure_reason":null,"protocol":"HTTP/1.1","authority":"[2400:XXXX:1300::12d1]","LOCAL_REPLY_BODY":"","duration":0,"method":"GET","downstream_remote_address":"[2402:XXXX:1800:af00:0:9671:f00f:314b]:58272","request_id":"fee2b69a-b755-986b-91e4-5d228c81****","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","trace_id":null,"authority_for":"[2400:XXXX:1300::12d1]","upstream_local_address":null,"istio_policy_status":null,"response_code":404}