Zonas CDN¶
Quando os streamers ficam em cidades e redes diferentes, o espectador deve ser mandado ao mais próximo. Para isso existem as zonas CDN: o IP do espectador é mapeado a uma zona por rotas CIDR, e o balanceador de reprodução escolhe um streamer vivo da zona correspondente que tenha o stream.
Enquanto nenhuma zona tiver rotas CIDR, vale o comportamento padrão: os players vão aos streamers edge, se o cluster os tiver, senão — ao streamer onde o stream é capturado. Para uma instalação numa rede só isso costuma bastar — as zonas chegam junto com a geografia.
Como o streamer é escolhido¶
- O IP do espectador é comparado às rotas CIDR de todas as zonas; vence o prefixo correspondente mais longo.
- Na zona vencedora procura-se um streamer vivo que leve o stream.
- Se não há — o espectador é levado à zona de reserva daquela zona, se definida.
- Dali — o modo de entrega do streamer: com URL pública de payload o espectador recebe um redirect direto à máquina, sem ela o central faz proxy da mídia através de si (veja as configurações do streamer).
Crie uma zona¶
A tela Zonas CDN → Criar zona, um nome curto como eu ou spo.

Abre-se o editor da zona:
- Rotas CIDR — prefixos IPv4 e IPv6 numa lista só:
10.0.0.0/8,2a02:6b8::/32. Um chip por prefixo; CIDR inválido o formulário não aceita. - Zona de reserva — para onde levar o espectador quando esta zona não tem streamer vivo com o stream.
Antes de salvar a primeira rota, atribua os streamers de reprodução a zonas e cubra as redes IPv4 e IPv6 dos espectadores. Depois de salvar, espectadores fora das rotas e streamers fora da cadeia de zonas permitida não poderão participar da reprodução. Zonas vazias podem ser preparadas com antecedência: por si só, não alteram a reprodução.
Pressione Salvar. Se a zona foi editada em paralelo, o editor mostra o mesmo aviso de conflito dos demais formulários: reler ou sobrescrever.

Atribua os streamers¶
Uma zona sem streamers não roteia nada. O pertencimento é definido do lado do streamer: o campo Zona CDN nas configurações dele. No registro a zona aparece ao lado do nome da máquina.
Se os espectadores param onde não devem¶
- Um espectador cai em zona alheia. Revise as rotas: vence o prefixo mais longo entre todas as zonas — uma rota mais específica de outra zona atropela a sua.
- Os espectadores recebem o endereço do central em vez do streamer. O streamer não tem URL pública de payload — o central faz proxy da mídia. É um modo válido, mas todo o tráfego passa pelo central.
Rotas explícitas e recusa¶
A primeira rota CIDR válida ativa as restrições de reprodução em toda a instalação. O central seleciona somente nós da zona do cliente e da cadeia explícita fallback_zone. Nós sem zona e zonas alheias ficam excluídos. none (null na API), uma zona inexistente ou repetida encerram a cadeia. Sem destinos aptos, o central responde 503 com Retry-After; um stream desconhecido recebe 404.
Com o roteamento CDN ativado, também há recusa de solicitações sem CIDR correspondente ou IP do cliente. Configure explicitamente 0.0.0.0/0 para IPv4 e ::/0 para IPv6 se precisar de uma rota geral. Zonas vazias não ativam o roteamento CDN. Excluir a última rota CIDR restaura a seleção sem restrições: primeiro os streamers edge, depois os streamers de captura.
A origem não é uma reserva universal. Espectadores de um escritório com falha podem sobrecarregá-la e prejudicar outros escritórios. Para permiti-la, atribua o nó de origem a origin-pool, crie essa zona (as rotas podem ficar vazias) e use-a como reserva do escritório. O nome não tem significado especial. Uma origem na própria zona do cliente também é explicitamente permitida.
| Configuração | Quando todos os nós de office-2 falham |
|---|---|
office-2 → none |
Recusa; office-1 e origem excluídos |
office-2 → office-1 → none |
Somente office-1; depois recusa |
office-2 → origin-pool → none |
Somente origin-pool; depois recusa |
Carga e limites¶
Na mesma zona, edge e ingest são iguais: vence o nó com menos sessões Play ativas; empates são distribuídos uniformemente. A origem não tem prioridade especial. JSON ordena zonas pela cadeia e nós por carga crescente; endereços privados são excluídos. GET normal permite proxy e entrega local.
A seção CDN do nó oferece dois campos independentes:
playback_session_limit: limite de sessões Play ativas, sem Publish.playback_bandwidth_kbit: tráfego de saída de todo o host em kbit/s, incluindo tráfego entre nós. Independente denetwork_bandwidth_kbit, o orçamento RX+TX de alocação.
Vazio remove o limite; 0 impede novas seleções. Um valor igual ou superior ao limite exclui o nó. Se todos forem excluídos, tenta-se a próxima zona explícita. Métricas necessárias ausentes excluem o nó; o último relatório vale enquanto estiver online. Limites explícitos também se aplicam sem zonas.
Os limites afetam novas decisões do central. Relatórios atrasados e URLs já emitidas permitem ultrapassá-los. Não limitam a banda nem encerram sessões. O player recebe alterações na próxima solicitação de rotas; URLs existentes não são revogadas.
Para VOD, primeiro filtram-se as réplicas disponíveis pelas zonas permitidas; depois selecionam-se a maior revisão disponível, a zona e a carga. Uma réplica recente proibida não exclui uma antiga permitida; uma reserva permitida mais recente pode prevalecer sobre a cópia local antiga.
Um proxy confiável¶
Informe CIDRs em Proxies confiáveis do cluster, nas configurações compartilhadas do central, um prefixo por linha. A lista vale para todo o cluster, incluindo todas as instâncias do central e os streamers, sem exceções locais. Por exemplo:
192.0.2.10/32
2001:db8::10/128
Somente de um par confiável aceita-se o último IP de X-Forwarded-For. O proxy deve acrescentar o endereço real do cliente. Se ausente ou inválido, usa-se o IP da conexão; X-Real-IP é ignorado. Uma lista vazia não confia em cabeçalhos. Uma cadeia de vários proxies confiáveis não é suportada.
As alterações e a limpeza da lista são aplicadas automaticamente na atualização da configuração, sem reiniciar. Um CIDR inválido é rejeitado e o campo mostra o erro. A API expõe trusted_proxies por PATCH /central/api-v4/config; um array vazio ou null remove a confiança em todos os proxies. O listener determina o esquema da URL pública.