Policiais hierárquicos
Visão geral do policial hierárquico
Você pode usar um policial hierárquico para limitar a entrada de tráfego de Camada 2 em uma interface física ou lógica e aplicar diferentes ações de policiamento com base em se os pacotes são classificados para encaminhamento rápido (EF) ou para uma prioridade menor.
O policiamento hierárquico é suportado em roteadores de borda M40E, M120 e M320 com concentradores PIC flexíveis (FPCs) de entrada como SFPC e FPCs de saída como FFPC, e na Série MX, ACX7100-L, T320, T640 e roteadores de núcleo T1600 com enfileiramento inteligente aprimorado (IQE).
Você pode aplicar o policiamento hierárquico a uma interface lógica.
Uma configuração hierárquica de policiamento define dois policiais — um apenas para tráfego EF e outro para tráfego não-EF — que funcionam de maneira hierárquica:
-
Policiador premium — você configura o policiador premium com limites de tráfego apenas para tráfego EF de alta prioridade: uma largura de banda garantida e um limite de tamanho de explosão correspondente. O tráfego EF é categorizado como inconformante quando sua taxa média de chegada excede a largura de banda garantida e seu tamanho médio de pacote excede o limite premium de tamanho de explosão. Para um policiador premium, a única ação configurável para tráfego não conformante é descartar os pacotes.
-
Agregar policiador — você configura o policiador agregado com uma largura de banda agregada (para acomodar tanto o tráfego EF de alta prioridade até a largura de banda garantida e o tráfego não-EF de prioridade normal) quanto um limite de tamanho de explosão apenas para tráfego não-EF. O tráfego não-EF é categorizado como não conformante quando sua taxa média de chegada excede a quantidade de largura de banda agregada não consumida atualmente pelo tráfego EF e seu tamanho médio de pacote excede o limite de tamanho de explosão definido no policiador agregado. Para um policiador agregado, as ações configuráveis para tráfego sem conformidade são descartar os pacotes, atribuir uma classe de encaminhamento ou atribuir um nível de prioridade de perda de pacotes (PLP).
Você deve configurar o limite de largura de banda do policiador premium no limite ou abaixo da largura de banda do policiador agregado. Se os dois limites de largura de banda forem iguais, o tráfego não-EF passa pela interface apenas irrestrito enquanto nenhum tráfego EF chega à interface.
O tráfego EF tem garantia da largura de banda especificada como limite de largura de banda premium, enquanto o tráfego não-EF é limitado à quantidade de largura de banda agregada não consumida atualmente pelo tráfego EF. O tráfego não-EF é limitado a toda a largura de banda agregada, enquanto nenhum tráfego EF está presente.
Por exemplo, suponha que você configure um policial hierárquico com os seguintes componentes:
-
Policiador premium com limite de largura de banda definido para 2 Mbps, limite de tamanho de explosão definido para 3000 bytes e ação não conformante definida para descartar pacotes.
-
Agregar policial com limite de largura de banda definido para 10 Mbps, limite de tamanho de explosão definido para 3000 bytes e ação não conformante definida para descartar pacotes.
O tráfego EF tem uma largura de banda garantida de 2 Mbps. Rajadas de tráfego EF — tráfego EF que chega à interface a taxas acima de 2 Mbps — também podem passar pela interface, desde que os símbolos suficientes estejam disponíveis no balde de 3000 byte. Quando não há fichas disponíveis para uma explosão de tráfego não-EF, os pacotes são limitados por taxa usando ações de policiamento para o policiador premium.
O tráfego não-EF é medido até um limite de largura de banda que varia entre 8 Mbps e 10 Mbps, dependendo da taxa média de chegada do tráfego EF. Rajadas de tráfego não-EF — tráfego não-EF que chega à interface a taxas acima do limite atual para tráfego não-EF — também passam pela interface desde que estejam disponíveis fichas suficientes no balde de 3000 byte. Quando o tráfego não-EF excede a largura de banda atualmente permitida ou quando nenhum símbolo está disponível para uma explosão de tráfego não-EF, os pacotes são limitados por taxa usando ações de policiamento para o policiador agregado.
Policiador de firewall de serviços para assinantes (dispositivos ACX7100-48L)
-
Iniciando a versão Junos Evolved 23.4R1, você pode configurar o policial hierárquico em modelos de acesso DHCP e PPPoE em interfaces de assinantes, que é ativado durante o login de assinantes ou CoA. Este recurso oferece suporte ao policiamento de tráfego codificado por cores de acordo com a classificação de cores de um pacote. A cor do pacote é classificada com critérios de correspondência de pacotes especificados para duas aulas de tráfego definidas pelo usuário. Veja a Exemplo: Configurando um policiador hierárquico para firewall de serviços de assinantes (dispositivos ACX7100-48L) seção para ver exemplos de configuração relacionados e limitações do recurso.
Consulte também
Exemplo: Configurando um policiador hierárquico
Este exemplo mostra como configurar um policial hierárquico e aplicar o policial para integrar o tráfego de Camada 2 em uma interface lógica em uma plataforma suportada.
Requisitos
Antes de começar, certifique-se de que seu ambiente atende aos seguintes requisitos:
A interface na qual você aplica o policiador hierárquico é uma interface SONET hospedada em uma das seguintes plataformas de roteamento:
Roteador de borda M40e, M120 ou M320 com FPCs de entrada como SFPC e FPCs de saída como FFPC.
Roteador de núcleo MX Series, T320, T640 ou T1600 com PICs de enfileiramento inteligente aprimorado (IQE).
Nenhum outro policial é aplicado à entrada da interface em que você aplica o policial hierárquico.
Você está ciente de que, se você aplicar o policial hierárquico à interface lógica na qual um filtro de entrada também é aplicado, o policial é executado primeiro.
Visão geral
Neste exemplo, você configura um policial hierárquico e aplica o policial para ingressar tráfego de Camada 2 em uma interface lógica.
Topologia
Você aplica o policiador na interface so-1/0/0.0
lógica SONET, que você configura para tráfego IPv4 e VPLS. Quando você aplica o policiador hierárquico a essa interface lógica, tanto o tráfego IPv4 quanto o VPLS são hierarquicamente limitados.
Você também configura a interface so-1/0/0.1
lógica para tráfego MPLS. Se você optar por aplicar o policiador hierárquico à interface so-1/0/0
física, o policiamento hierárquico se aplicaria ao tráfego IPv4 e VPLS no so-1/0/0.0
tráfego MPLS em so-1/0/0.1
.
Configuração
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, veja Use o editor de CLI no modo de configuração.
Para configurar este exemplo, execute as seguintes tarefas:
- Configuração rápida da CLI
- Definir as interfaces
- Definindo as aulas de encaminhamento
- Configurando o Policiador Hierárquico
- Aplicar o policiador hierárquico no tráfego de entrada de camada 2 em uma interface física ou lógica
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos de configuração em um arquivo de texto, remova qualquer quebra de linha e cole os comandos na CLI no nível de [edit]
hierarquia.
set interfaces so-1/0/0 unit 0 family inet address 192.168.1.1/24 set interfaces so-1/0/0 unit 0 family vpls set interfaces so-1/0/0 unit 1 family mpls set class-of-service forwarding-classes class fc0 queue-num 0 priority high policing-priority premium set class-of-service forwarding-classes class fc1 queue-num 1 priority low policing-priority normal set class-of-service forwarding-classes class fc2 queue-num 2 priority low policing-priority normal set class-of-service forwarding-classes class fc3 queue-num 3 priority low policing-priority normal set firewall hierarchical-policer policer1 aggregate if-exceeding bandwidth-limit 300m burst-size-limit 30k set firewall hierarchical-policer policer1 aggregate then forwarding-class fc1 set firewall hierarchical-policer policer1 premium if-exceeding bandwidth-limit 100m burst-size-limit 50k set firewall hierarchical-policer policer1 premium then discard set interfaces so-1/0/0 unit 0 layer2-policer input-hierarchical-policer policer1
Definir as interfaces
Procedimento passo a passo
Para definir as interfaces:
Habilite a configuração da interface física.
[edit] user@host# edit interfaces so-1/0/0
Configure a unidade lógica 0.
[edit interfaces so-1/0/0] user@host# set unit 0 family inet address 192.168.1.1/24 user@host# set unit 0 family vpls
Se você aplicar um policiador de Camada 2 a essa interface lógica, você deve configurar pelo menos uma família de protocolo.
Configure a unidade lógica 1.
[edit interfaces so-1/0/0] user@host# set unit 1 family mpls
Resultados
Confirme a configuração das interfaces entrando no comando de show interfaces
configuração. Se a saída de comando não exibir a configuração pretendida, repita as instruções neste procedimento para corrigir a configuração.
[edit] user@host# show interfaces so-1/0/0 { unit 0 { family inet { address 192.168.1.1/24; } family vpls; } unit 1 { family mpls; } }
Definindo as aulas de encaminhamento
Procedimento passo a passo
Para definir as aulas de encaminhamento mencionadas como ações agregadas de policiais:
Habilite a configuração das aulas de encaminhamento.
[edit] user@host# edit class-of-service forwarding-classes
Definir as aulas de encaminhamento.
[edit class-of-service forwarding-classes] user@host# set class fc0 queue-num 0 priority high policing-priority premium user@host# set class fc1 queue-num 1 priority low policing-priority normal user@host# set class fc2 queue-num 2 priority low policing-priority normal user@host# set class fc3 queue-num 3 priority low policing-priority normal
Resultados
Confirme a configuração das aulas de encaminhamento mencionadas como ações agregadas de policiais entrando no comando de show class-of-service
configuração. Se a saída de comando não exibir a configuração pretendida, repita as instruções neste procedimento para corrigir a configuração.
[edit] user@host# show class-of-service forwarding-classes { class fc0 queue-num 0 priority high policing-priority premium; class fc1 queue-num 1 priority low policing-priority normal; class fc2 queue-num 2 priority low policing-priority normal; class fc3 queue-num 3 priority low policing-priority normal; }
Configurando o Policiador Hierárquico
Procedimento passo a passo
Para configurar um policial hierárquico:
Habilite a configuração do policial hierárquico.
[edit] user@host# edit firewall hierarchical-policer policer1
Configure o policiador agregado.
[edit firewall hierarchical-policer policer1] user@host# set aggregate if-exceeding bandwidth-limit 300m burst-size-limit 30k user@host# set aggregate then forwarding-class fc1
Para o policiador agregado, as ações configuráveis para um pacote em um fluxo sem conformidade são descartar o pacote, alterar a prioridade de perda ou mudar a classe de encaminhamento.
Configure o policiador premium.
[edit firewall hierarchical-policer policer1] user@host# set premium if-exceeding bandwidth-limit 100m burst-size-limit 50k user@host# set premium then discard
O limite de largura de banda para o policiador premium não deve ser maior do que o do policiador agregado.
Para o policiador premium, a única ação configurável para um pacote em um fluxo de tráfego sem conformidade é descartar o pacote.
Resultados
Confirme a configuração do policial hierárquico entrando no comando de show firewall
configuração. Se a saída de comando não exibir a configuração pretendida, repita as instruções neste procedimento para corrigir a configuração.
[edit] user@host# show firewall hierarchical-policer policer1 { aggregate { if-exceeding { bandwidth-limit 300m; burst-size-limit 30k; } then { forwarding-class fc1; } } premium { if-exceeding { bandwidth-limit 100m; burst-size-limit 50k; } then { discard; } } }
Aplicar o policiador hierárquico no tráfego de entrada de camada 2 em uma interface física ou lógica
Procedimento passo a passo
Para limitar hierarquicamente o tráfego de entrada de Camada 2 para tráfego IPv4 e VPLS apenas em interface so-1/0/0.0lógica, faça referência ao policiador a partir da configuração lógica da interface:
Habilite a configuração da interface lógica.
[edit] user@host# edit interfaces so-1/0/0 unit 0
Quando você aplica um policial ao tráfego de Camada 2 em uma interface lógica, você deve definir pelo menos uma família de protocolo para a interface lógica.
Aplique o policiador na interface lógica.
[edit] user@host# set layer2-policer input-hierarchical-policer policer1
Alternativamente, para limitar hierarquicamente o tráfego de entrada de Camada 2 para todas as famílias de protocolo e para todas as interfaces lógicas configuradas em interface
so-1/0/0
física, você pode consultar o policial a partir da configuração da interface física.
Resultados
Confirme a configuração do policial hierárquico entrando no comando de show interfaces
configuração. Se a saída de comando não exibir a configuração pretendida, repita as instruções neste procedimento para corrigir a configuração.
[edit] user@host# show interfaces so-1/0/0 { unit 0 { layer2-policer { input-hierarchical-policer policer1; } family inet { address 192.168.1.1/24; } family vpls; } unit 1 { family mpls; } }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
- Exibindo estatísticas de tráfego e policiais para a interface lógica
- Exibindo estatísticas para o policial
Exibindo estatísticas de tráfego e policiais para a interface lógica
Propósito
Verifique o fluxo de tráfego através da interface lógica e se o policiador é avaliado quando os pacotes são recebidos na interface lógica.
Ação
Use o comando de show interfaces
modo operacional para interface so-1/0/0.0
lógica, e inclua a ou extensive
opçãodetail
. A seção de saída de comando lista Traffic statistics o número de bytes e pacotes recebidos e transmitidos na interface lógica, e a Protocol inet seção contém um Policer campo que listaria o policial policer1
como um policial de entrada ou saída da seguinte forma:
Input: policer1-so-1/0/0.0-inet-i
Output: policer1-so-1/0/0.0-inet-o
Neste exemplo, o policiador é aplicado apenas ao tráfego de interface lógica na direção de entrada.
Exibindo estatísticas para o policial
Propósito
Verifique o número de pacotes avaliados pelo policial.
Ação
Use o comando do show policer
modo operacional e especifique opcionalmente o nome do policiador. A saída de comando exibe o número de pacotes avaliados por cada policiador configurado (ou pelo policiador especificado), em cada direção. Para o policiador policer1
, os nomes dos policiais de entrada e saída são exibidos da seguinte forma:
policer1-so-1/0/0.0-inet-i
policer1-so-1/0/0.0-inet-o
O -inet-i sufixo denota um policial aplicado ao tráfego de entrada IPv4, enquanto o -inet-o sufixo denota um policial aplicado ao tráfego de saída IPv4. Neste exemplo, o policial é aplicado apenas ao tráfego de entrada.
Exemplo: Configurando um policiador hierárquico para firewall de serviços de assinantes (dispositivos ACX7100-48L)
Este exemplo mostra como configurar um policial hierárquico e aplicar o policial para integrar o tráfego em uma interface de assinante em uma plataforma suportada (ACX7100-48L).
Visão geral
Iniciando a versão Junos Evolved 23.4R1, você pode configurar policiais hierárquicos e aplicar os policiais para liberar tráfego em uma interface de assinante. Esse recurso é compatível com dispositivos ACX7100-48L.
-
O policiador hierárquico de serviços assinantes tem as seguintes limitações:
-
Você pode configurar apenas quatro níveis de policiais hierárquicos com cada nível com configuração agregada e premium.
-
Os policiais de interface lógica e os policiais agregados não têm suporte para serviços de assinantes.
- A prioridade de policiamento definida dentro da aula de encaminhamento não é suportada. Por exemplo:
class-of-service { forwarding-classes { class BestEffort queue-num 0 priority low policing-priority normal; } }
next term
só é permitido para policiais hierárquicos e não para filtros.- A anexação de policiais diretamente a uma interface ou família não é suportada. Os policiais só têm suporte por meio de ação de filtro de firewall.
- A ação
forwarding-class
do policial não é apoiada na entrada e saída.loss-priority high
A ação é apoiada na entrada. A únicadiscard
ação é apoiada na saída. - Uma única política não pode ter
loss-priority
epolicer
as ações configuradas. Apenas uma das duas ações é apoiada a qualquer momento. filter-specific
opção não é suportada na configuração do policiador.- Policiais hierárquicos e policiais tricolores não são apoiados na direção da saída.
-
O recurso de encadeamento de termos de filtro não está disponível.
-
Policiais tricolores e policiais hierárquicos não são apoiados na direção da saída.
-
Cenários de configuração
A seção a seguir fornece as diferentes configurações para várias opções hierárquicas de policiamento:
- Configuração do policiador de marcação de cores de taxa única duas Configuração do policial de marcação tri de taxa única
- Policial de marcação tri de duas taxas
- Policial hierárquico para DHCP e PPPoE
Configuração do policiador de marcação de cores de taxa única duas
Você pode configurar um policial de marcação de cores de taxa única dois nos modelos de acesso DHCP e PPPoE. A configuração é ativada durante o login de assinantes ou CoA. Veja a configuração entrando no show dynamic-profiles pppoe-client-policer-1-profile
comando. A configuração de uma amostra é a seguinte:
[edit] root@bng-controller# show dynamic-profiles pppoe-client-policer-1-profile variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-in"; accept; } } } filter "$upstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } } policer "$HPolicer-in" { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then discard; } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } }
Você pode configurar um policial de marcação tricolor de taxa única nos modelos de acesso DHCP e PPPoE. Ele é ativado durante o login de assinantes ou CoA. Veja a configuração entrando no show dynamic-profiles pppoe-client-policer-1-profile
comando. A configuração de uma amostra é a seguinte:
[edit] user@bng-controller# show dynamic-profiles pppoe-client-policer-2-profile | no-more variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } filter "$upstream-inet" { interface-specific; term t1 { from { source-port 80; } then { three-color-policer { single-rate "$HPolicer-in"; } count three-color-policer-count; accept; } } } } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } three-color-policer "$HPolicer-in" { action { loss-priority high then discard; } single-rate { color-blind; committed-information-rate 5m; committed-burst-size 5k; excess-burst-size 15k; } } }
Policial de marcação tri de duas taxas
Você pode configurar um policial de marcação tri de duas taxas nos modelos de acesso DHCP e PPPoE. Ele é ativado durante o login de assinantes ou CoA.
Nesta seção, você pode ver uma configuração dinâmica de perfil de amostra no ponto do controlador. Conteúdos de perfil dinâmico são propagados adiante durante o login do assinante para um perfil de cliente ou durante a ativação de serviços para um perfil de serviço. Veja a configuração entrando no show dynamic-profiles pppoe-client-policer-1-profile
comando. A configuração de uma amostra é a seguinte:
[edit] root@bng-controller# show dynamic-profiles pppoe-client-policer-3-profile | no-more variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } filter "$upstream-inet" { interface-specific; term t1 { from { source-port 80; } then { three-color-policer { two-rate "$HPolicer-in"; } count three-color-policer-count; accept; } } } } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } three-color-policer "$HPolicer-in" { action { loss-priority high then discard; } two-rate { color-blind; committed-information-rate 5m; committed-burst-size 5k; peak-information-rate 10m; peak-burst-size 10k; } } }
Policial hierárquico para DHCP e PPPoE
Nesta seção, você pode ver uma configuração de perfil dinâmico de amostra no ponto de controlador em modelos de acesso DHCP e PPPoE. Conteúdos de perfil dinâmico são propagados adiante durante o login do assinante para um perfil de cliente ou durante a ativação de serviços para um perfil de serviço. Veja a configuração entrando no show dynamic-profiles pppoe-client-policer-1-profile
comando. A configuração de uma amostra é a seguinte:
[edit] user@host# show dynamic-profiles pppoe-client-policer-4-profile variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; P0-IN uid; P1-IN uid; P2-IN uid; Session-IN uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } filter "$upstream-inet" { interface-specific; term P0-Aggregate { from { dscp 46; } then { hierarchical-policer "$P0-IN"; next term; } } term P1-Premium { from { dscp [ 46 22 ]; } then { force-premium; next term; } } term P1-Aggregate { from { dscp [ 46 22 ]; } then { hierarchical-policer "$P1-IN"; next term; } } term P2-Premium { from { dscp [ 46 22 56 ]; } then { force-premium; next term; } } term P2-Aggregate { from { dscp [ 46 22 56 ]; } then { hierarchical-policer "$P2-IN"; next term; } } term final-Premium { from { dscp [ 46 22 56 00 ]; } then { force-premium; next term; } } term final { then { hierarchical-policer "$Session-IN"; accept; } } } } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } hierarchical-policer "$HPolicer-in" { aggregate { if-exceeding { bandwidth-limit 30m; burst-size-limit 30k; } then { loss-priority high; } } premium { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then { discard; } } } hierarchical-policer "$P0-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } hierarchical-policer "$P1-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } hierarchical-policer "$P2-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } hierarchical-policer "$Session-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.