Todos os produtos
Search
Central de documentação

Server Load Balancer:Encaminhamento dinâmico

Última atualização: Aug 26, 2026

O recurso de encaminhamento dinâmico da ALB Extensible Edition extrai o endereço de destino de uma requisição em tempo real e a encaminha diretamente, sem necessidade de registrar backends antecipadamente. Essa funcionalidade é ideal para cenários em que os endereços de backend mudam dinamicamente, como no agendamento de AI Agent Sandbox e em gateways com grande volume de backends dinâmicos. Um grupo de servidores por Faixa de Endereços IP restringe o escopo de destino para evitar o encaminhamento de tráfego a backends não autorizados.

Cenários

O encaminhamento dinâmico é adequado para situações em que os endereços de backend variam a cada requisição e há um grande número de instâncias de backend. Os casos de uso típicos incluem:

  • Agendamento de tráfego para sandbox de AI Agent: Cargas de trabalho como inferência de AI Agent e execução de código rodam em diversas instâncias de sandbox (como pods de vários produtos de sandbox) provisionadas sob demanda. O agendador da camada superior grava o endereço IP e a porta da instância de sandbox de destino nos cabeçalhos da requisição. A ALB extrai essas informações e encaminha a requisição diretamente, eliminando a necessidade de registrar previamente backends de sandbox que mudam com frequência.

  • Encaminhamento de domínio único para mini programas e jogos H5: Plataformas como as de mini programas geralmente permitem configurar apenas um nome de domínio válido. Sob um único domínio, utilize parâmetros de URL (como ?ip=1.1.X.X&port=1111) para rotear requisições a diferentes instâncias de servidor de jogos, substituindo soluções baseadas em Nginx construídas internamente.

  • Grande volume de backends dinâmicos: Quando há muitas instâncias de backend, o encaminhamento dinâmico trata cada requisição em tempo real sem exigir o registro individual dos backends. Basta configurar as faixas de endereços IP e portas permitidas. Uma única instância atende a um vasto número de backends dinâmicos, evitando a fragmentação em múltiplas instâncias devido aos limites de cota de grupos de servidores.

Arquitetura

Quando uma requisição do cliente chega a uma instância da ALB Extensible Edition, a regra de encaminhamento passa o tráfego ao componente de encaminhamento dinâmico associado ao grupo de servidores por Faixa de Endereços IP. Esse componente executa três etapas sequenciais: extração de endpoint, validação do escopo de destino e encaminhamento dinâmico. Ele determina o endereço IP e a porta reais do destino. Se o alvo corresponder a uma faixa permitida, a requisição segue diretamente para esse endereço. Caso contrário, o sistema retorna HTTP 403.

  • Instância da ALB Extensible Edition: Oferece capacidades de balanceamento de carga e encaminhamento de tráfego.

  • Grupo de servidores por Faixa de Endereços IP: Define o escopo de destino permitido para o encaminhamento dinâmico por meio de faixas de endereços IP e portas. Deve ser associado a uma extensão de service que contenha o componente de encaminhamento dinâmico.

  • Extensão de service: Hospeda o componente de encaminhamento dinâmico e entra em vigor após a vinculação a um grupo de servidores por Faixa de Endereços IP.

  • Componente de encaminhamento dinâmico: Extrai o host e a porta de destino dos parâmetros de consulta ou cabeçalhos da requisição e a encaminha ao backend após validar o escopo de destino.

image

Pré-requisitos

Procedimento

1. Criar uma instância da ALB Extensible Edition

  1. Faça login no console da ALB, selecione a região China (Shanghai) e clique em Create ALB.

  2. Na página de compra, conclua a configuração abaixo e clique em Create Now.

    • Region: Selecione China (Shanghai).

    • Instance Network Type: Escolha Internet.

    • VPC e Zone: Selecione VPC1, marque Shanghai Zone B e Shanghai Zone F e, em seguida, escolha VSW1 e VSW2. Ative a opção Automatically Assign Public IP.

    • Protocol Version: Defina como IPv4.

    • Edition (Instance Fee): Opte por Extensible Edition.

  3. Na página Confirm Order, confirme os detalhes de configuração da instância e clique em Activate Now.

2. Criar uma extensão de service e adicionar o componente de encaminhamento dinâmico

  1. No console de Service Extensions, clique em Create Service Extension. Na seção Service Extension Configuration, insira um Extension name como ext-dyn-fwd-plugin.

  2. O campo Extension Type vem definido por padrão como Plug-in. Em Component name, selecione Dynamic Forwarding na lista suspensa. Abaixo de Quick Configuration (Select to Auto-Fill Current Rule Parameters), clique em Common Headers para usar o modelo predefinido do sistema e, depois, clique em Create.

    • Extraction Source: O valor padrão é Header, indicando que o endereço IP e a porta de destino são extraídos dos cabeçalhos da requisição HTTP.

    • Extraction Mode: O valor padrão é Separated Mode, significando que o endereço IP e a porta de destino residem em dois campos distintos e devem ser especificados separadamente.

    • Target Host Source: O valor padrão é X-Target-Host. O componente de encaminhamento dinâmico lê o endereço IP de destino deste cabeçalho de requisição.

    • Target Port Source: O valor padrão é X-Target-Port. O componente de encaminhamento dinâmico lê a porta de destino deste cabeçalho de requisição.

    • Default Port: O valor padrão é 80. Esta é a porta alternativa usada quando nenhuma porta é extraída da requisição.

Nota

Não é possível adicionar o componente de encaminhamento dinâmico à mesma extensão de service que outros componentes.

3. Preparar os servidores de backend

  1. Crie uma instância ECS seguindo a configuração abaixo. O grupo de segurança da instância ECS deve permitir tráfego de entrada proveniente do bloco CIDR da VPC1.

    • Region: Selecione China (Shanghai).

    • Network and Zone: Escolha VPC1 e VSW1, e marque Specify Primary Private IP Address of Primary ENI. Neste tutorial, VSW1 corresponde à faixa de endereços IP 172.16.10.0/24, e o endereço IP privado primário da ENI primária é definido como 172.16.10.100.

    • Image: Selecione Alibaba Cloud Linux 3.2104 LTS 64-bit.

  2. No console do ECS, localize a instância. Na coluna Actions, escolha Network and Security Group > Manage Secondary Private IP Address. Clique em Increase, insira 172.16.10.101 e clique em OK. Consulte Enable the operating system to recognize a secondary private IP address para configurar a instância ECS de modo que ela reconheça o endereço IP. Conecte-se à instância ECS e execute ip a. Você verá que a instância ECS reconheceu o endereço IP privado secundário.

      2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
          link/ether 00:16:3e:xx:xx:xx brd ff:ff:ff:ff:ff:ff
          altname enp3s0
          inet 172.16.10.100/24 brd 172.16.10.255 scope global noprefixroute eth0
             valid_lft forever preferred_lft forever
          inet 172.16.10.101/24 brd 172.16.10.255 scope global secondary noprefixroute eth0
             valid_lft forever preferred_lft forever
          inet6 fe80::xxxx:xxff:fexx:xxxx/64 scope link
             valid_lft forever preferred_lft forever   
  3. Na instância ECS de backend, instale o Nginx e implante um service de eco que escute nas portas 80 e 81. Para qualquer requisição, ele retorna o IP:Port de destino real alcançado, servindo para verificar o ponto de chegada do encaminhamento dinâmico.

    # 1. Install nginx
    sudo dnf install -y nginx
    
    # 2. Write the echo configuration
    sudo tee /etc/nginx/conf.d/echo.conf >/dev/null <<'EOF'
    server {
        listen 80 default_server;
        listen 81 default_server;
        server_name _;
        location / {
            default_type text/plain;
            return 200 "served: $server_addr:$server_port\n";
        }
    }
    EOF
    
    # 3. Remove the default_server flag from the default site to avoid conflicts
    sudo sed -i 's/ default_server//g' /etc/nginx/nginx.conf
    
    # 4. Validate the configuration, enable autostart, and start the service
    sudo nginx -t
    sudo systemctl enable nginx
    sudo systemctl restart nginx
    
    # 5. Test locally
    curl 172.16.10.100:80
    curl 172.16.10.100:81
    curl 172.16.10.101:80
    curl 172.16.10.101:81

4. Criar um grupo de servidores por Faixa de Endereços IP

O encaminhamento dinâmico define os destinos de encaminhamento com base no conteúdo da requisição. Sem restrições, requisições manipuladas poderiam redirecionar o tráfego para endereços não autorizados, gerando riscos de SSRF. Configure um grupo de servidores por Faixa de Endereços IP como limite de segurança obrigatório: somente requisições cujo endereço IP e porta de destino correspondam a uma entrada permitida serão encaminhadas. Todas as demais retornam HTTP 403.

  1. No console de Server Groups, clique em Create Server Group.

  2. Configure os parâmetros a seguir e clique em Create:

    • Server Group Type: Selecione IP Address Range.

    • Server Group Name: Insira um nome personalizado, como sgp-dyn-fwd.

    • Backend Protocol: O padrão é HTTP.

    • Use Existing Service Extension e selecione a extensão de service ext-dyn-fwd-plugin.

  3. Após a mensagem Server Group Created, clique em Add Backend Servers. Na caixa de diálogo Add IP Address Segment, insira IP Address Range172.16.10.0/24 e Port Range80-81 e clique em OK.

5. Criar um listener

  1. No console da ALB, clique no ID da instância desejada para acessar a página Instance Details. Na aba Listener, clique em Create Listener.

  2. Na etapa Configure Listener, defina Listener Protocol como HTTPS e Listener Port como 443 e clique em Next.

  3. Na etapa Configure SSL Certificate, selecione um certificado de servidor compatível com seu nome de domínio personalizado e clique em Next.

  4. Na etapa Select Server Group, selecione o tipo IP Address Range e o grupo de servidores sgp-dyn-fwd e clique em Next.

    Nota

    Este tutorial utiliza a regra de encaminhamento padrão para enviar tráfego ao grupo de servidores por Faixa de Endereços IP. Para adicionar funcionalidades como autenticação ou limitação de taxa, crie regras de encaminhamento adicionais no listener e associe-as às extensões de service correspondentes.

  5. Na etapa Configuration Review, confirme a configuração e clique em Submit.

6. Configurar a resolução de DNS

Aponte seu nome de domínio personalizado para o nome DNS da instância ALB usando um registro CNAME. Os clientes acessam a ALB por meio do seu domínio personalizado.

Este tutorial usa o Alibaba Cloud DNS como exemplo. Para domínios não registrados no Alibaba Cloud, você precisa primeiro adicionar o domínio ao console de DNS.

  1. No console da ALB, copie o Domain Name da instância desejada.

  2. Faça login no console de DNS. Na coluna Actions do domínio alvo, clique em Settings. Na página Settings, clique em Add Record.

  3. Adicione um registro CNAME com as informações abaixo e clique em OK:

    • Record Type: Selecione CNAME.

    • Hostname: Insira um prefixo de domínio, como test. Por exemplo, se seu domínio raiz for example.com, o domínio para acessar a ALB será test.example.com.

    • Query Source e TTL: Mantenha os valores padrão.

    • Record Value: Insira o nome DNS da instância ALB.

  4. Na caixa de diálogo Change Resource Record Confirmation, confirme as informações de resolução e clique em OK.

7. Verificar a configuração

Uma requisição deve atender às seguintes condições para receber uma resposta bem-sucedida:

  • O componente de encaminhamento dinâmico consegue extrair o endereço IP e a porta de destino da requisição (se nenhuma porta for especificada explicitamente, a Default Port serve como fallback).

  • A combinação de endereço IP e porta está dentro da faixa permitida do grupo de servidores por Faixa de Endereços IP.

  • Um service de backend está escutando no endereço IP e porta indicados e retorna uma resposta.

A requisição contém um endereço de destino válido

Encaminhar para o endereço IP primário
curl -v \
  -H "X-Target-Host: 172.16.10.100" \
  -H "X-Target-Port: 80" \
  https://test.example.com/echo

Resposta esperada: HTTP 200, com o eco served: 172.16.10.100:80.

Encaminhar para o endereço IP secundário (verificar diferentes endereços IP)
curl -v \
  -H "X-Target-Host: 172.16.10.101" \
  -H "X-Target-Port: 80" \
  https://test.example.com/echo

Resposta esperada: HTTP 200, com o eco served: 172.16.10.101:80. Isso comprova que o endereço IP de destino muda dinamicamente a cada requisição.

Encaminhar para uma porta diferente (verificar diferentes portas)
curl -v \
  -H "X-Target-Host: 172.16.10.100" \
  -H "X-Target-Port: 81" \
  https://test.example.com/echo

Resposta esperada: HTTP 200, com o eco served: 172.16.10.100:81. Isso demonstra que a porta de destino também varia dinamicamente conforme a requisição.

Nenhuma porta informada (verificar fallback para porta padrão)
curl -v \
  -H "X-Target-Host: 172.16.10.101" \
  https://test.example.com/echo

Resposta esperada: HTTP 200, com o eco served: 172.16.10.101:80. Como a requisição não traz uma porta, o componente de encaminhamento dinâmico usa a porta padrão 80 como fallback.

A requisição não contém endereço de destino

curl -v \
  https://test.example.com/echo

Resposta esperada: HTTP 403, com o eco endpoint not provided. O componente de encaminhamento dinâmico não consegue extrair um endereço IP de destino da requisição.

Endereço ou porta de destino fora da faixa permitida

curl -v \
  -H "X-Target-Host: 10.99.99.99" \
  -H "X-Target-Port: 80" \
  https://test.example.com/echo
curl -v \
  -H "X-Target-Host: 172.16.10.100" \
  -H "X-Target-Port: 12345" \
  https://test.example.com/echo

Resposta esperada: HTTP 403, com o eco endpoint not allowed. O endereço IP ou porta extraído é rejeitado porque não se enquadra na faixa permitida do grupo de servidores.

Informações adicionais

Faturamento

  • ALB Extensible Edition: Atualmente em preview público. Os usuários podem testá-la gratuitamente. O EIP vinculado à instância da ALB Extensible Edition possui suas próprias regras de faturamento, e as cobranças são feitas pelo EIP.

  • Instâncias ECS: Para mais detalhes, consulte a visão geral do faturamento do ECS. Se criar uma instância ECS para testes, recomendamos usar uma instância de baixa especificação com pagamento conforme o uso e liberá-la rapidamente após o teste.

  • Taxas de domínio e resolução de DNS público: Além das taxas de domínio cobradas pelo seu provedor, configurar a resolução de DNS público no Alibaba Cloud gera taxas de resolução de DNS autoritativo público.

  • Taxas de certificado: Comprar ou carregar um certificado no Alibaba Cloud implica taxas de certificado de servidor.

Limites

  • O protocolo de backend para encaminhamento dinâmico suporta atualmente apenas HTTP.

  • Grupos de servidores por Faixa de Endereços IP não aceitam faixas como 22.0.0.0/8, 33.0.0.0/8, 100.0.0.0/8 ou 127.0.0.0/8.

  • Um único grupo de servidores por Faixa de Endereços IP suporta, por padrão, até 200 entradas de faixa de IP (cada entrada combina uma faixa de IP com uma faixa de portas).

Regiões que suportam a ALB Extensible Edition

Área

Região

Zona

China

China (Ulanqab)

Zona A, Zona B e Zona C

China (Hangzhou)

Zona J e Zona K

China (Beijing)

Zona I, Zona K e Zona L

China (Shanghai)

Zona B e Zona F

China (Hong Kong)

Zona B, Zona C e Zona D

Ásia-Pacífico

Singapore

Zona A, Zona B e Zona C

Japan (Tokyo)

Zona B, Zona C e Zona E

Malaysia (Kuala Lumpur)

Zona A, Zona B e Zona C

Europa e Américas

Germany (Frankfurt)

Zona A e Zona B

US (Silicon Valley)

Zona A e Zona B

Oriente Médio

UAE (Dubai)

Zona A e Zona B

Melhores práticas

  • Ordene corretamente as configurações de extração de endereço de destino: Ao definir múltiplas configurações de extração, o sistema as avalia em ordem crescente de número de sequência. A primeira correspondência prevalece. Posicione as configurações mais restritivas e de maior frequência de correspondência no início da lista.

  • Mantenha a faixa de destino permitida restrita: Garantindo a disponibilidade do negócio, limite as faixas de endereços IP e portas apenas aos backends realmente necessários. Evite configurar intervalos excessivamente amplos.

  • Utilize regras de encaminhamento com flexibilidade: Grupos de servidores por Faixa de Endereços IP podem atuar como destinos em regras de encaminhamento. Combine-os com condições de encaminhamento, extensões de service e ações de encaminhamento para atender a necessidades complexas de orquestração de tráfego.

Perguntas frequentes

Todas as requisições retornam 403 com endpoint not allowed

Verifique se o grupo de servidores por Faixa de Endereços IP tem as faixas de IP e portas corretas configuradas e se o IP e a porta de destino presentes na requisição estão dentro desses intervalos.

Todas as requisições retornam 403 com endpoint not provided

Confira se a requisição inclui os cabeçalhos X-Target-Host e X-Target-Port. Você pode consultar a configuração da extensão de service para confirmar.