Filtragem seletiva baseada em classe em roteadores PTX
Filtragem seletiva baseada em classe em roteadores PTX
Para roteadores e placas de linha da Série PTX suportados, você pode filtrar o tráfego IPv4 e IPv6 com base na classificação de origem ou destino (Uso de classe fonte, SCU) e (Uso de classe de destino, DCU). Isso é útil porque significa que você pode aplicar um filtro seletivamente, em um subconjunto de pacotes em uma classe, em vez de todos os pacotes da classe. Além disso, o fluxo de pacotes pelo mecanismo de encaminhamento de pacotes (PFE) é otimizado, e a filtragem é mais eficiente.
Para provedores de serviços, a filtragem baseada em classe permite que você forneça serviços avançados como:
-
Manipulação de comportamento por salto ajustando a classe de encaminhamento do pacote com base na classe de pacotes de origem ou destino e outros critérios de filtro.
-
Taxa de tráfego limitando para determinadas interfaces de clientes, com alto volume de tráfego a cair (por exemplo, sob ataque DDoS). Normalmente, você implantaria um filtro de interface de saída para avaliar o tráfego. No entanto, isso pode ser ineficiente porque o tráfego ainda atravessa a malha em sistemas distribuídos e consome largura de banda de malha limitada. A ineficiência se torna ainda mais visível em um sistema de fila de saída virtual, como o PTX, onde a admissão na fila de saída está acontecendo antes que o filtro de saída seja executado e qualquer ação subsequente de queda no filtro de saída requer compensação – mais tráfego precisa ser admitido na fila, o que requer mais largura de banda de malha e mais espaço buffer de saída no chip (que é um recurso limitado). Os filtros baseados em classe são executados no pipeline de entrada antes da admissão dos pacotes na fila de saída. Esse mecanismo é recomendado por filtros de interface de saída regulares, caso você espere lançar grandes volumes de tráfego em direção a determinados destinos.
A filtragem baseada em classe também é eficaz para ataques DoS "baixo e lento" que visam recursos de aplicativos e servidores imitando padrões de tráfego normais.
Para oferecer suporte à filtragem baseada em classe, dois novos pontos de vinculação são introduzidos na tabela de encaminhamento para roteadores PTX: source-class e destination-class...
A hierarquia da CLI é mostrada aqui, onde o nome da classe src ou nome de primeira classe é o nome do filtro que você definiu na política correspondente.
routing-options forwarding-table source-class src-class-name family [inet | inet6] filter <filter-name>
routing-options forwarding-table destination-class dest-class-name family [inet | inet6] filter <filter-name>
Você também pode configurar filtros específicos de instâncias em várias classes de SCU e DCU. Por padrão, apenas um conjunto de contadores e policiais é instanciado para um filtro. No filtro específico de instâncias, um conjunto separado de contadores e policiais é criado para cada ponto de acoplamento de filtro.
firewall family [inet | inet6] filter <filter name> instance-specific
Entendendo a filtragem baseada em classe em roteadores PTX
Inicialmente, o recurso de uso de classe fonte (SCU) foi introduzido para fornecer estatísticas de detalhamento do tráfego enviado para interface específica por prefixo de origem (identificado pela classe de origem). O uso de classe de destino (DCU) foi originalmente introduzido para fornecer estatísticas de detalhamento do tráfego recebido em uma interface por prefixo de destino (identificado pela classe de destino).
As aulas de origem ou destino são atribuídas ao pacote no processo de busca de origem ou destino. Portanto, as condições de correspondência de filtro de origem e destino só podem ser avaliadas se o filtro for executado após a pesquisa.
Os roteadores Juniper oferecem suporte a vários pontos de vinculação de filtros, aqueles que podem aproveitar o resultado da classificação de origem e destino estão listados abaixo, com diretrizes de uso:
-
Filtro de interface de saída (definir interfaces <interface> taxa < de > do filtro de inet da família. Suportado em qualquer plataforma PTX, mas não recomendado se é esperado descartar grandes volumes de tráfego em um estado estável (por exemplo, ao implementar um filtro de mitigação de ataque DDoS). O tráfego de ataque DDoS descartado pode não ser compensado por outro tráfego que não corresponda aos critérios de ataque DDoS devido à largura de banda de malha limitada e espaço de buffer de saída limitado no chip.
-
Filtrar após encaminhar a pesquisa do filtro de tabela (definir opções de encaminhamento da família de inet filter < nome do filtro> saída). Suporte nas plataformas Express 2 (PE) e Express 3 (ZX). No entanto, os filtros são instanciados no pipeline de saída, portanto, o comportamento de descarte é semelhante ao filtro de interface de saída regular.
-
Ponto de ligação específico da classe de origem ou de destino (definir opções de roteamento família de nome de classe src de classe src de classe fonte [inet | inet6] filtro <filtro>). Suporte nas plataformas Express 2 (PE), Express 3 (ZX) e Express 4 (BT). Este filtro é instanciado no pipeline de entrada. Esta é a opção recomendada para descartar grandes volumes de tráfego. Essa opção também é recomendada se você precisar substituir a classe de encaminhamento e, posteriormente, a atribuição da fila de saída. Em um sistema de fila de saída virtual, a fila é selecionada no pipeline de entrada e qualquer substituição também deve acontecer no pipeline de entrada.
-
Observe que essas ações de filtro não são suportadas no filtro vinculado ao ponto de vinculação específico da classe de origem ou destino:
-
instância de roteamento
-
próximo ip
-
próxima interface
-
descapsulado
-
encapsular
-
-
Os filtros seletivos baseados em classe não podem ser aplicados em pacotes vinculados ao host.
-
Os pacotes que falham nas buscas de uRPF, mas são restauradas por filtros de falha uRPF não estão sujeitos a buscas de SCU/DCU. Assim, os filtros seletivos baseados em classe não podem ser aplicados nesses pacotes.
-
Os filtros são aplicados apenas à entrada de pacotes em interfaces que têm o recurso SCU/DCU habilitado. Isso significa que os filtros seriam aplicados independentemente de o SCU estar configurado em interfaces de saída ou não.
-
Os pacotes para os quais o filtro seletivo baseado em classe precisa ser aplicado podem causar queda no desempenho. A queda de desempenho seria função da taxa de tráfego de entrada, tamanho médio dos pacotes e quantidade de tráfego submetida aos filtros. No entanto, os pacotes nos quais os filtros seletivos baseados em classe não são aplicados, não afetam o desempenho.
-
A contabilidade de DCU é aplicável a pacotes descartados por filtros.
-
A contabilidade de saída de SCU não é aplicável para pacotes descartados por filtros.
-
Os filtros seletivos baseados em classe não podem ser usados com botão específico da interface, pois este botão só é aplicável a filtros conectados por interface.
-
Listas (listas de entrada/saída) de filtros seletivos baseados em classe não são suportadas.
-
Sistemas lógicos não são suportados.
-
Apenas IPv4 e IPv6 são os protocolos de carga suportados. O MPLS não é compatível.
-
Se um pacote corresponde a filtros de classe seletivos de SCU e DCU, então apenas o último filtro (ou seja, filtro DCU) é aplicado ao pacote e, mas não a ambos os filtros.
Exemplo: Filtragem baseada em classe seletiva (roteadores PTX)
Este exemplo mostra como aplicar ações de firewall (descartar, rejeitar ou policiar) aos fluxos de tráfego IPv4 e IPv6 com base na classificação de origem ou destino. Aplica-se a PTX10001-36MR, PTX10003-160C, PTX10003-80C, PTX10004 e PTX10008 roteadores que executam o Junos Evolved OS versão 21.2, PTX10016 roteadores que executam o JUNOS Evolved OS versão 21.4, ou PTX3000, PTX-5000, PTX1000, PTX10002, PTX10008, PTX10016 roteadores que executam o software Junos OS 21.2 ou posterior.
Requisitos
Este exemplo usa BGP porque o BGP pode ser usado para trocar rotas entre dispositivos em uma topologia de rede que consiste em roteadores de borda do cliente, de borda de provedores e de provedores. Consulte a visão geral da configuração do BGP para saber mais.
Visão geral
Este exemplo usa três dispositivos de roteamento: um dispositivo de borda do cliente (CE), um dispositivo de borda (PE) de provedor e um dispositivo de núcleo (P) de provedor. A configuração para tráfego IPv4 é mostrada e inclui dois conjuntos de aulas de SCU e DCU, além dos filtros de firewall. No número a seguir, os prefixos de IP /32 representam hosts conectados aos roteadores de borda do cliente (CE) e provedor (P), respectivamente.

Neste exemplo, definimos duas classes de tráfego: scu-1 e scu-2, o primeiro é atribuído a prefixos na sub-rede 172.16.2.0/24 e o segundo é atribuído a prefixos na sub-rede 172.16.3.0/24. Outros prefixos não têm atribuições de classe. Como mostrado no seguinte trecho de CLI, a política de roteamento é definida no roteador PE para atribuir prefixos ao scu-1 de classe fonte e scu-2 de classe fonte.
show policy-options
policy-statement scu-class {
term gold {
from {
route-filter 172.16.2.0/24 orlonger;
}
then source-class scu-1;
accept;
term silver {
from {
route-filter 172.16.3.0/24 orlonger;
}
then source-class scu-2;
accept;
}
Para explicar a entrada de tráfego das interfaces de PE da CE, a política chamada classe dcu definida no roteador PE usa filtros de rota para colocar o tráfego no dcu-1, outros prefixos não têm atribuições de classe.
show policy-options
policy-statement dcu-class {
term gold {
from {
route-filter 172.16.5.0/24 orlonger;
}
then destination-class dcu-1;
accept;
}
As políticas são então aplicadas à tabela de encaminhamento.
forwarding-table {
export [ dcu_class scu_class ];
}
Na próxima etapa, configuramos um filtro no roteador PE.
show firewall {
family inet {
filter f1 {
term t1 {
from {
protocol icmp;
}
then {
count c1;
}
}
}
}
}
E conecte esse filtro aos pontos de ligação de classe de origem e destino específicos no roteador PE.
show routing-options forwarding-table
source-class scu-1 {
family inet {
filter {
f1;
}
}
}
destination-class dcu-1 {
family inet {
filter {
f1;
}
}
}
Configuração
Procedimento
Configuração rápida da CLI
Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos na CLI.
O exemplo usa rotas estáticas para fornecer endereços de conectividade e interface de loopback para testar a operação.
Dispositivo CE
set interfaces et-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set interfaces lo0 unit 0 family inet address 172.16.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options static route 10.1.0.0/30 next-hop 10.0.0.2 set routing-options autonomous-system 100
Pe do dispositivo
set interfaces et-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces et-1/2/1 unit 0 family inet accounting source-class-usage input set interfaces et-1/2/1 unit 0 family inet accounting destination-class-usage set interfaces et-1/2/1 unit 0 family inet address 10.1.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols bgp group ext neighbor 10.1.0.2 peer-as 300 set policy-options policy-statement dcu_class term gold from route-filter 172.16.5.0/24 orlonger set policy-options policy-statement dcu_class term gold then destination-class dcu-1 set policy-options policy-statement scu_class term gold from route-filter 172.16.2.0/24 orlonger set policy-options policy-statement scu_class term gold then source-class scu-1 set policy-options policy-statement scu_class term silver from route-filter 172.16.3.0/24 orlonger set policy-options policy-statement scu_class term silver then source-class scu-1 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set firewall family inet filter f1 term 0 from protocol icmp set firewall family inet filter f1 term 0 then count c1 set firewall family inet filter f1 term 0 then accept set routing-options autonomous-system 200 set routing-options forwarding-table export dcu_class set routing-options forwarding-table export scu_class
Dispositivo P
set interfaces et-1/2/1 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set interfaces lo0 unit 0 family inet address 172.16.0.3/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.1.0.1 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options static route 10.0.0.0/30 next-hop 10.1.0.1 set routing-options static route 172.16.2.0/24 discard set routing-options static route 172.16.3.0/24 discard set routing-options static route 172.16.4.0/24 discard set routing-options static route 172.16.5.0/24 discard set routing-options static route 172.16.6.0/24 discard set routing-options static route 172.16.7.0/24 discard set routing-options autonomous-system 300
Procedimento passo a passo
Para prefixos de origem e destino de grupo em uma classe de encaminhamento:
-
Crie as interfaces do roteador no roteador PE.
[edit interfaces] set et-1/2/0 unit 0 family inet accounting source-class-usage output set et-1/2/0 unit 0 family inet address 10.0.0.2/30 set et-1/2/1 unit 0 family inet accounting source-class-usage input set et-1/2/1 unit 0 family inet accounting destination-class-usage set et-1/2/1 unit 0 family inet address 10.1.0.1/30 set lo0 unit 0 family inet address 192.168.0.2/32
-
Configure o BGP no roteador PE.
[edit] set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols bgp group ext neighbor 10.1.0.2 peer-as 300
-
Configure o número do sistema autônomo (AS) do roteador PE.
[edit] set routing-options autonomous-system 200
-
Configure a política de DCU no roteador PE.
[edit] set policy-options policy-statement dcu_class term class-1 from route-filter 172.16.5.0/24 orlonger set policy-options policy-statement dcu_class term class-1 then destination-class dcu-1
-
Configure a política de SCU no roteador PE.
[edit] set policy-options policy-statement scu_class term class-1 from route-filter 172.16.2.0/24 orlonger set policy-options policy-statement scu_class term class-1 then source-class scu-1
-
Aplique as políticas na tabela de encaminhamento no roteador PE.
[edit] set routing-options forwarding-table export dcu_class set routing-options forwarding-table export scu_class
-
Crie o filtro no roteador PE.
[edit] set firewall family inet filter f1 from protocol icmp then count c1
-
Vincule o filtro à classe de origem e aos pontos de vinculação da classe de destino no roteador PE.
Vinculando o filtro à utilização da classe de destino.
[edit] set routing-options forwarding-table destination-class dcu-1 family inet filter f1
Vinculando o filtro à utilização da classe de origem.
[edit] set routing-options forwarding-table source-class scu-1 family inet filter f1
-
(Opcional) Configure uma política de roteamento que anuncia rotas diretas no roteador PE.
[edit] set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept
Resultados
A partir do modo de configuração, confirme sua configuração emitindo oshow interfaces, show protocolsshow policy-optionse show routing-options comandos no roteador PE. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
show interfaces
et-1/2/0 {
unit 0 {
family inet {
address 10.0.0.2/30;
}
}
}
et-1/2/1 {
unit 0 {
family inet {
accounting {
source-class-usage { input;
}
}
address 10.1.0.1/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.2/32;
}
}
}
show interface statistics et-1/2/0
Physical interface: et-1/2/0:0, Enabled, Physical link is Up
Interface index: 1087, SNMP ifIndex: 622
Link-level type: Ethernet, MTU: 1514, LAN-PHY mode, Speed: 10Gbps, BPDU Error: None, Loop Detect PDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled,
Source filtering: Disabled, Flow control: Enabled, Media type: Fiber Device flags : Present Running
Interface flags: SNMP-Traps
CoS queues : 8 supported, 8 maximum usable queues
Current address: e4:5d:37:4e:e8:40, Hardware address: e4:5d:37:4e:e8:40 Last flapped : 2021-03-16 09:33:43 PDT (03:39:51 ago)
Statistics last cleared: 2021-03-16 13:13:01 PDT (00:00:33 ago) Input rate : 0 bps (0 pps)
Output rate : 0 bps (0 pps) Input errors: 0, Output errors: 0 Active alarms : None
Active defects : None
PCS statistics Seconds
Bit errors 0
Errored blocks 0
PRBS Mode : Disabled
Interface transmit statistics: Disabled Link Degrade :
Link Monitoring : Disable
Logical interface et-1/2/0:0.0 (Index 1047) (SNMP ifIndex 673)
Flags: Up SNMP-Traps
Encapsulation: ENET2
Input packets : 14
Output packets: 6
Protocol inet, MTU: 1500
Flags: Sendbcast-pkt-to-re, SCU-out
Packets Bytes
Source class (packet-per-second) (bits-per-second)
scu-1 6 504
( 0)( 0)
Addresses, Flags: Is-Preferred Is-Primary
Destination: 44.4.4/24, Local: 44.4.4.4, Broadcast: 44.4.4.255
Protocol inet6, MTU: 1500
Flags: None, SCU-out
Packets Bytes
Source class (packet-per-second) (bits-per-second)
scu-1 0 0
( 0) ( 0)
Addresses, Flags: Is-Preferred Is-Primary
Destination: 4001::/64, Local: 4001::4001
Addresses, Flags: Is-Preferred
Destination: fe80::/64, Local: fe80::e65d:37ff:fe4e:e840
Protocol multiservice, MTU: Unlimited
Flags: None
show firewall Filter: f1 Counters: Name Bytes Packets c1 0 0 Filter: v4_instance_new-scu-scu-1 Counters: Name Bytes Packets c_v4_instance_new-scu-scu-1 504 6 Filter: v6_instance_new-scu-scu-1 Counters: Name Bytes Packets c_v6_instance_new-scu-scu-1 0 0
show policy-options
policy-statement dcu_class {
term class-1 {
from {
route-filter 172.16.5.0/24 orlonger;
}
then destination-class dcu-1;
}
}
policy-statement scu_class {
term class-1 {
from {
route-filter 172.16.2.0/24 orlonger;
}
then source-class scu-1;
}
}
policy-statement send-direct {
term 1 {
from protocol direct;
then accept;
}
}
show routing-options
autonomous-system 200;
forwarding-table {
export [ dcu_class scu_class ];
}Se você terminar de configurar o dispositivo, insira o commit a partir do modo de configuração.