# Como adicionar um Load Balancer em um Fluxo Inverso de ZTNA na Digibee

## Visão geral

No [Fluxo Inverso](/documentation/developer-guide/pt-br/connectivity-management/ztna/ztna-inverse-flow.md) de ZTNA (Zero Trust Network Access), a comunicação é iniciada de fora da Plataforma em direção aos pipelines internos da Digibee. O tráfego percorre o seguinte caminho:

> Endpoint externo → Load Balancer → Edge Router(s) → Digibee Integration Platform

Sem um **Load Balancer**, todo o tráfego é direcionado a um único Edge Router, o que cria um ponto de falha: caso o Edge Router fique indisponível, a comunicação é interrompida.&#x20;

Com o Load Balancer na sua infraestrutura, o tráfego é distribuído entre dois ou mais Edge Routers, garantindo alta disponibilidade e continuidade das integrações mesmo em caso de falha de uma instância.

{% hint style="info" %}
O Load Balancer descrito neste guia é um componente da sua própria infraestrutura de nuvem (AWS, Azure, GCP ou on-premise), não um componente nativo da Digibee Integration Platform. Você é responsável por provisioná-lo e mantê-lo.
{% endhint %}

## O que você vai precisar

Antes de começar, certifique-se de ter:

* Permissão de [**Connectivity Manager**](/documentation/developer-guide/pt-br/platform-administration/administration/new-access-control/access-control-roles.md#connectivity-manager) no seu realm da Digibee Integration Platform.
* O Fluxo Inverso de ZTNA ativado no seu realm. Se ainda não foi ativado, entre em contato com o time de Suporte da Digibee e forneça os detalhes do seu Edge Router:
  * O IP ou DNS do Edge Router que você configurou em sua infraestrutura.
  * A porta para enviar o tráfego.
* Pelo menos dois Edge Routers registrados e ativos no mesmo ambiente (Teste ou Produção). Para saber como criar um Edge Router, veja [como adicionar uma nova conexão de Edge Router](/documentation/developer-guide/pt-br/connectivity-management/ztna/new-connections.md).
* Um Network Mapping de Fluxo Inverso já configurado. Se você ainda não criou um, veja [como criar um Network Mapping Inverso](/documentation/developer-guide/pt-br/connectivity-management/ztna/ztna-inverse-flow.md#criar-network-mappings-inversos).
* Acesso ao console da sua plataforma de nuvem (AWS, Azure, GCP) ou à sua infraestrutura on-premise para provisionar o Load Balancer.

## Passo a passo

{% stepper %}
{% step %}

### Prepare os Edge Routers para receber o tráfego do Load Balancer

O Load Balancer realiza health checks periódicos nos Edge Routers para saber quais instâncias estão aptas a receber tráfego. Para que essas verificações funcionem, cada Edge Router precisa ter a porta de health check acessível a partir do Load Balancer.

Se a regra de firewall não for configurada corretamente, o Load Balancer marcará os Edge Routers como **não saudáveis** e não distribuirá tráfego para eles, mesmo que estejam funcionando.

Por padrão, os Edge Routers expõem o endpoint de health check na **porta TCP 8081** no caminho `/health-checks`.

1. Em cada instância de Edge Router, adicione uma regra de firewall para permitir as requisições de health check originadas do Load Balancer:

```shell
sudo ufw allow from <IP-ou-CIDR-do-Load-Balancer> proto tcp to any port 8081
```

2. Substitua `<IP-ou-CIDR-do-Load-Balancer>` pelo endereço IP ou pelo bloco CIDR da sua infraestrutura de nuvem. Consulte a documentação do seu respectivo provedor para obter os intervalos de IP usados pelos health checks.
   {% endstep %}

{% step %}

### Crie o Load Balancer na sua infraestrutura de nuvem

Crie um **Network Load Balancer** no console da sua plataforma de nuvem e configure-o para distribuir tráfego entre os Edge Routers.

{% tabs %}
{% tab title="AWS" %}

1. No console da AWS, acesse **EC2**, em seguida **Load Balancers**, e clique em **Create load balancer**.
2. Selecione o tipo **Network Load Balancer**.
3. Preencha as configurações básicas: nome, scheme (interno ou voltado à internet) e tipo de endereço IP (apenas IPv4 é suportado).
4. Acesse **EC2**, em seguida **Target Groups**, e crie um Target Group com as seguintes configurações:
   * **Protocol:** TCP
   * **Port:** Porta configurada no seu Network Mapping de Fluxo Inverso
   * **Health check protocol:** HTTPS
   * **Health check port:** 8081
   * **Health check path:** `/health-checks`
5. Registre os dois (ou mais) Edge Routers como alvos do Target Group.
6. Associe o Target Group ao Load Balancer e conclua a criação.
   {% endtab %}

{% tab title="Azure" %}

1. No portal do Azure, pesquise por **Load Balancer** e clique em **Create Load Balancer**.
2. Selecione as opções: **Standard**, **Internal** e **Regional**.
3. Configure o **Frontend IP** com o endereço privado que receberá o tráfego.
4. Configure o **Backend Pool** adicionando os dois (ou mais) Edge Routers como instâncias de backend.
5. Configure o **Health Probe**:
   * **Protocol:** TCP
   * **Port:** 8081
6. Configure a **Load Balancing Rule** para encaminhar o tráfego da porta de entrada para os Edge Routers.
7. Adicione a seguinte regra de firewall em cada Edge Router para permitir os health checks do Azure:

```shell
sudo ufw allow in to any port 8081 proto tcp from 168.63.129.16
```

{% endtab %}

{% tab title="GCP" %}

1. No console do GCP, acesse **Compute Engine** e depois clique em **Instance Groups**. Crie um **Unmanaged Instance Group** para cada zona de disponibilidade que conterá Edge Routers.
2. Adicione os Edge Routers ao Instance Group correspondente.
3. Acesse **Compute Engine**, em seguida **Health Checks**, e crie um health check com as seguintes configurações:
   * **Protocol:** TCP
   * **Port:** 8081
4. Crie um **Internal TCP/UDP Load Balancer** (selecione **Only between my VMs** e **Single region only**).
5. Associe o Instance Group como backend e aplique o health check criado.
6. Configure o Frontend com o endereço IP e a porta que receberão o tráfego externo.
7. Permita os health checks do GCP em cada Edge Router:

```shell
sudo ufw allow from 130.211.0.0/22 proto tcp to any port 8081
sudo ufw allow from 35.191.0.0/16 proto tcp to any port 8081
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Após a criação, anote o endereço IP ou DNS do Load Balancer. Você vai precisar dessas informações para atualizar o Network Mapping Inverso na Digibee.
{% endhint %}
{% endstep %}

{% step %}

### Atualize o Network Mapping Inverso com o endereço do Load Balancer

Com o Load Balancer provisionado, atualize o Network Mapping Inverso na Digibee para que o tráfego seja direcionado ao Load Balancer ao invés de a um Edge Router individual.

1. Na página inicial da Digibee Integration Platform, clique em **Conectividade** no canto superior direito.
2. Clique na aba **Network Mapping**.
3. Localize o Network Mapping de Fluxo Inverso que você quer atualizar. Os Fluxos Inversos são identificados por um ícone de direção reversa (⏮️).
4. Clique no **ícone de edição (lápis)** ao lado do Network Mapping.
5. No campo **Host**, substitua o endereço do Edge Router individual pelo endereço IP ou DNS do Load Balancer criado no passo anterior.
6. Confirme que a **Porta** está alinhada com a configuração do Load Balancer.
7. Clique em **Salvar**.

{% hint style="info" %}
Após salvar, o tráfego que chegar ao Fluxo Inverso passará pelo Load Balancer, que o distribuirá entre os Edge Routers disponíveis. Se um Edge Router falhar no health check, o Load Balancer redirecionará automaticamente o tráfego para os demais.
{% endhint %}
{% endstep %}

{% step %}

### Valide a configuração&#xD;

1. Envie uma requisição de teste ao endpoint do Fluxo Inverso.
2. Verifique no console da sua plataforma de nuvem se o Load Balancer está distribuindo o tráfego entre os Edge Routers e se todos os alvos estão com status **Healthy**.
3. Para simular a falha de um Edge Router, pause uma das instâncias e confirme que as requisições continuam sendo processadas pelos demais.
   {% endstep %}
   {% endstepper %}

<details>

<summary><strong>O que fazer se os Edge Routers aparecem como Unhealthy no Load Balancer?</strong></summary>

Se os Edge Routers aparecem como não saudáveis no Target Group ou Backend Pool, verifique os seguintes pontos:

* Confirme se a porta 8081 está liberada no firewall de cada Edge Router para os IPs de health check do seu provedor de nuvem.
* Confirme se o health check está configurado com o protocolo correto (HTTPS para AWS, TCP para Azure e GCP) e o caminho `/health-checks` onde aplicável.
* Verifique se o Edge Router está em execução e registrado corretamente na Digibee Integration Platform. Você pode confirmar o status na aba **Edge Router** da página de Conectividade.

</details>

## Próximos passos

Agora que o Load Balancer está distribuindo o tráfego entre os seus Edge Routers, veja os [requisitos para usar ZTNA](/documentation/developer-guide/pt-br/connectivity-management/ztna/prerequisites-ztna.md) para entender as recomendações de dimensionamento das VMs de Edge Router e garantir que a sua infraestrutura está preparada para suportar o volume de tráfego esperado.

## Tópicos relacionados

* [**Como adicionar novas conexões de Edge Router**](/documentation/developer-guide/pt-br/connectivity-management/ztna/new-connections.md): Aprenda a registrar novos Edge Routers na Digibee Integration Platform.
* [**Grupos de ZTNA**](/documentation/developer-guide/pt-br/connectivity-management/ztna/ztna-groups.md): Saiba como organizar seus Edge Routers em grupos para facilitar o gerenciamento de rotas.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/developer-guide/pt-br/connectivity-management/ztna/ztna-inverse-flow/inverse-load-balancer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
