CreateYourVPN Academy
Curso: Como Funciona

Rotas e balanceamento de carga

O que é uma rota no CreateYourVPN, como criar uma em um minuto, por que rotas vazias são úteis, e como o sistema distribui usuários entre servidores.

Uma rota é a ponte entre sua infraestrutura e o que o usuário vê. Você gerencia servidores e inbounds, enquanto o usuário vê uma lista curta de "servidores" no aplicativo dele — e cada item dessa lista é, na verdade, uma rota.

Uma rota = uma linha no aplicativo do usuário

Uma rota é um grupo de inbounds sob um único nome na assinatura do cliente. A regra é simples:

Uma rota não vazia = um item na lista de servidores do usuário.

Uma rota pode conter um único inbound — ou dez deles em servidores diferentes. O usuário nunca vê isso: ele escolhe "🇺🇸 EUA", e em qual servidor específico ele cai é decidido pelo balanceador de carga — mais sobre isso abaixo.

Enquanto isso, o nome que o usuário vê é o nome do inbound selecionado: dê nomes claros aos seus inbounds ("🇺🇸 Nova York", "🇺🇸 Dallas") e é exatamente isso que o usuário vai ver.

Quando você conecta seu primeiro servidor, o sistema cria uma rota padrão por conta própria e coloca o primeiro inbound nela — por isso tudo funciona de cara, sem uma única configuração. As rotas entram em cena quando você quer mais: vários países, uma rota dedicada de "streaming", e assim por diante.

Criando uma rota

Na página do cluster, na seção "Rotas", clique em "Nova rota". O assistente tem três seções:

  1. Como os clientes veem esta rota — o nome (ex.: 🇺🇸 EUA) e uma bandeira. Essa é a "placa" da rota.
  2. Algoritmo de balanceamento de carga — "Menor carga de tráfego" (o padrão) ou "Round-robin". A diferença é explicada abaixo.
  3. Inbounds no pool — quais inbounds pertencem à rota. Essa seção é opcional: você pode criar uma rota vazia e preenchê-la depois, arrastando.

Um inbound só pode pertencer a uma rota. Se você escolher um inbound que já está em outra rota, ele se move para a nova. É assim que o sistema garante que o tráfego de cada ponto de entrada seja governado por exatamente um conjunto de regras.

O diagrama de topologia: rotas de relance

Na página do cluster, as rotas são mostradas em um diagrama ao vivo: servidores com seus inbounds à esquerda, caixas de rota à direita. Inbounds podem ser arrastados com o mouse: pegue um inbound, solte-o em outra rota — pronto. Também há uma zona "Sem atribuição" — solte um inbound ali para desvinculá-lo de todas as rotas.

As próprias caixas de rota também podem ser reordenadas (usando a alça de arrastar ou as setas) — isso é puramente uma ordenação visual, para sua conveniência.

Rotas vazias

Uma rota sem um único inbound é desenhada com uma borda tracejada e não tem um "cano" até o nó de distribuição — uma dica de que os usuários não conseguem vê-la. Rotas vazias são ótimos placeholders: crie "🇯🇵 Japão" com antecedência, e quando surgir um servidor japonês, arraste um inbound para dentro — a rota ganha vida.

A situação oposta também é destacada: se você tem inbounds fora de qualquer rota, o painel avisa — "inbound(s) não estão em nenhuma rota — os clientes ainda não conseguem vê-los".

Balanceamento de carga: quem cai em qual servidor

Quando um usuário solicita uma conexão, para cada rota o sistema escolhe um inbound do pool — ao vivo, com base em métricas atualizadas dos servidores (as mesmas da aula 3). Há dois algoritmos:

"Menor carga de tráfego" (padrão)

O sistema olha para quanta banda sobrando por usuário cada servidor ainda tem: pega a capacidade do canal, subtrai o tráfego atual e divide pelo número de usuários conectados. O servidor com a maior folga vence. É um balanceamento justo "pela carga real": um servidor fraco e saturado não vai receber novos usuários, mesmo que formalmente tenha menos gente nele.

O sistema estima a capacidade do canal por conta própria — a partir dos picos observados de tráfego real (um pico "esfria" gradualmente se o servidor não estiver carregado por um tempo).

"Round-robin"

Uma regra simples: um novo usuário vai para o servidor que atualmente tem menos gente — ajustado pelo coeficiente do servidor. O coeficiente é um peso: um servidor com coeficiente 2.0 é tratado como "duas vezes mais espaçoso" e vai receber aproximadamente o dobro de usuários em relação a um vizinho com 1.0. Isso permite carregar de forma justa máquinas de tamanhos diferentes.

Se algum servidor do pool ainda não tem uma estimativa de capacidade (digamos, o servidor é novinho e ainda não viu nenhum pico de tráfego), a rota recorre graciosamente ao round-robin — assim as decisões sempre são tomadas com base nos dados que realmente existem.

Quando o rebalanceamento acontece

Constantemente — e automaticamente. A escolha do servidor é recalculada a cada requisição usando métricas atualizadas: se a carga muda, novos usuários começam a cair em servidores mais livres. Ao mesmo tempo, o sistema tenta manter a mesma escolha para um dado usuário quando as condições são iguais, para que o "servidor" dele não fique indo e voltando.

E mais uma rede de segurança: servidores que o monitoramento considera indisponíveis são excluídos da seleção — mais sobre isso na aula 7.

Principais pontos

  • Uma rota é a "placa" de um grupo de inbounds; uma rota não vazia = uma linha no aplicativo do usuário.
  • Um inbound pertence a uma única rota. Um inbound fora de qualquer rota é invisível para os clientes.
  • Rotas vazias são um placeholder perfeitamente normal: uma caixa tracejada, escondida dos usuários.
  • Dois algoritmos: pela banda sobrando (inteligente, o padrão) e round-robin com pesos.
  • O balanceamento é ao vivo: recalculado a cada conexão usando métricas atuais.

A seguir

On this page