Documentação BQN
Fechar ícone

Quotas de subscritores

Podem ser associadas quotas de tempo e volume a um endereço IP de assinante. Quando uma quota é esgotada, o endereço IP do assinante é restringido (por defeito, o tráfego é bloqueado). Tanto uma quota de tempo como uma quota de volume podem ser associadas a um endereço IP ao mesmo tempo, caso em que a restrição ocorre quando qualquer uma das quotas é esgotada.

As quotas são atribuídas a endereços IP. Se um assinante alterar o endereço IP para um novo, esse novo endereço IP não terá uma quota associada até que uma seja provisionada através da API REST.

Um contingente de tempo concede acesso durante um período. Existem duas formas de definir um contingente de tempo:

  • Como um tempo absoluto. Por exemplo, 23/05/2023 (23de Maio de 2023).
  • Como uma extensão da data atual (por exemplo, daqui a 15 dias).

Um contingente de volume concede acesso a um volume de tráfego. Existem duas formas de definir um contingente de tempo:

  • Como um valor absoluto. Por exemplo, 10 GB.
  • Como uma extensão do montante (por exemplo, 5 GB para além dos 10 existentes).

 Configuração geral de quotas

Para configurar aspectos gerais do comportamento da quota, vá a Status->Subscribers->Subscriber Quotas e estenda Advanced Quota Parameters.

O estado da quota inicial do assinante define o que fazer com os endereços IP sem uma quota atribuída:

  • Quando definido como desactivado (a predefinição), o tráfego é permitido, sem restrições.
  • Quando definido como bloqueado, o tráfego será bloqueado até que seja atribuída uma quota válida.

Os campos URL de redireccionamento especificam os sítios para redirecionar o tráfego HTTP quando um endereço IP é bloqueado (portal cativo) devido ao esgotamento da quota. Existe um campo para redirecionar o tráfego IPv4 e outro para o tráfego IPv6. Os dois campos podem ter o mesmo URL se for utilizado o mesmo portal cativo para IPv4 e IPv6.

  • Se o campo estiver vazio, não é tentado qualquer redireccionamento.
  • Se for especificado um URL, é tentado um redireccionamento para esse URL para a versão IP correspondente do tráfego HTTP.
Os redireccionamentos HTTPS não são suportados, porque os browsers modernos estão protegidos contra tentativas de redireccionamento por razões de segurança.

Note-se que, embora apenas sejam suportados redireccionamentos HTTP, o sítio para redirecionar o tráfego pode ser HTTPS, e muitas vezes é (é o que reflecte a captura de ecrã anterior, em que o URL utilizado é https://my-captive-portal.com).

Se forem utilizados redireccionamentos HTTP, é necessária uma política para permitir o tráfego para os sites de redireccionamento (e as consultas DNS associadas). Consulte a secção sobre Políticas do portal cativo para obter mais informações.

Associar quotas a IPs de subscritores

Para associar uma quota a um endereço IP de assinante, vá a Status->Subscribers->Subscriber Quotas. Clique em Add Quota to new Subscriber... Também pode ser acedido a partir de Configuration->Subscriber Quotas->Subscriber Quotas.

O exemplo seguinte define um contingente de tempo como um tempo absoluto:

Também é possível definir o contingente de tempo em relação à data e hora actuais (+1 mês no exemplo):

Para definir uma quota de volume, comece por definir um valor absoluto (20 GB no exemplo):

Uma vez criada, uma quota de volume pode ser alargada editando a quota e utilizando a opção Aumentar o limite por este valor (5 GB no exemplo seguinte):

Note que o campo Volume atual utilizado informa sobre a quota já esgotada. Um gráfico de pizza no canto inferior direito mostra-o graficamente.

As quotas de tempo e de volume podem coexistir e, neste caso, o tráfego de subscritores será restringido quando uma das duas se esgotar.

Também é possível editar a quota e remover o seu componente de tempo ou volume premindo o botão Remover limite de tempo ou Remover limite de volume, respectivamente.

Verificação do estado da quota

Status->Subscribers->Subscriber Quotas mostra as quotas e, no caso de quotas de volume, quanto já foi consumido.

No exemplo anterior, existem três quotas de volume e duas quotas de tempo (note que o mês é indicado antes do dia, pelo que 29/09/2023 é 29de setembro de 2023). Para as quotas de volume, o volume já consumido também é mostrado (por exemplo, 10.0.0.3 tem uma quota de 15 GB e já consumiu 20 MB).

Abrandar quando a quota se esgota

Por predefinição, o tráfego será completamente bloqueado quando a quota for esgotada, mas é possível limitar o tráfego a uma velocidade lenta enquanto a quota não for novamente preenchida.

O exemplo seguinte altera a política de predefinição de fluxo, de modo a abrandar o tráfego quando a quota está esgotada:

Política do portal cativo

Na secção sobre a configuração geral da quota, vimos como definir um redireccionamento para um portal cativo quando a quota está esgotada. A implementação do portal cativo requer que o tráfego para ele não esteja sujeito à quota, o que é implementado utilizando políticas de fluxo.

No exemplo seguinte, duas categorias de tráfego têm de estar fora do controlo de quotas (política flow-no-quota):

  • Tráfego que vai para o portal cativo.
  • Tráfego para alguns servidores DNS específicos (utilizados para resolver o URL do portal cativo).

A política não afectada pelo esgotamento da quota tem o interruptor de quota definido como desligado:

Quotas geridas através da API REST

Para além da GUI, a API REST do BQN pode ser utilizada para gerir quotas de tempo e volume.

Consulte a referência da API REST para obter mais detalhes.

Contingente de tempo

Existem duas formas de definir um contingente de tempo:

  • Como tempo absoluto: como tempo POSIX, definido como o número de segundos decorridos desde a meia-noite do Tempo Universal Coordenado (UTC) de 1 de janeiro de 1970. Por exemplo, 1672531200 é UTC Domingo, 1 de janeiro de 20230:00:00. A hora absoluta é UTC, por isso converta a sua hora local para UTC quando definir a quota.
  • Como segundos relativos à hora atual: por exemplo, uma quota de 3600 segundos estará esgotada daqui a uma hora.

Para ativar uma quota de tempo de uma hora:


curl -k -u myuser:mypassword -X POST https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"timeRemaining": 3600}}'

Prolongar a quota para duas horas a partir de agora:


curl -k -u myuser:mypassword -X PUT https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"timeRemaining": 7200}}'

Para remover o contingente, para que o assinante deixe de estar sujeito a um contingente de tempo:


curl -k -u myuser:mypassword -X PUT https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"time": null}}'

Quota de volume

Uma quota de volume concede acesso a um determinado número de Kbytes de tráfego. A convenção BQN é que 1 Kbyte corresponde a 1000 bytes.

Para ativar uma quota de volume de 1 GB:


curl -k -u myuser:mypassword -X POST https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"volume": 1000000}}'

Para aumentar a quota adicionando 500 MB:


curl -k -u myuser:mypassword -X PUT https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"volumeIncrement": 500000}}'

Para remover a quota, para que o assinante deixe de estar sujeito a uma quota de volume:


curl -k -u myuser:mypassword -X PUT https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"volume": null}}'

Contingentes de volume e de tempo em simultâneo

Para ativar uma quota de volume de 1 GB e 1 mês (o que acontecer primeiro):


curl -k -u myuser:mypassword -X POST https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"volume": 1000000, "timeRemaining": 2678400}}'

Para aumentar a quota de volume em 500 MB, mantendo a quota de tempo inalterada:


curl -k -u myuser:mypassword -X PUT https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"volumeIncrement": 500000}}'

Para remover ambas as quotas, para que o assinante deixe de estar sujeito a elas:


curl -k -u myuser:mypassword -X PUT https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35 -H "Content-Type: application/json" --data '{"quota": {"volume": null, "time": null}}'

Verificação do estado da quota

Também é possível verificar o estado da quota através da API REST:


curl -k -u myuser:mypassword -X GET https://192.168.0.121:3443/api/v1/subscribers/10.0.0.35

{
  "subscriberIp": "10.0.0.35",
  "quota" : {
    "volume" : 1000000000,
    "volumeConsumed" : 647474875
    "time" : 1676628377,
    "timeRemaining" : 5364849
  },
  "policyRate" : ""
}

 

Quotas geridas a partir de RADIUS

O BQN na implementação de proxy RADIUS pode lidar com quotas de volume e tempo. Para mais pormenores, consulte o capítulo RADIUS .

Etiquetas de estilo dos documentos
[.p-highlight] Lorem ipsum... [.p-highlight]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

[.p-highlight-blue] Lorem ipsum... [.p-highlight-blue]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

[.p-highlight-red] Lorem ipsum... [.p-highlight-red]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Pré-visualização do estilo de uma única palavra [.c-highlight]mono-espaçada[.c-highlight].
Pré-visualização do single word mono-spaced estilo.
anterior
NEXT