Dell Networking SONiC: Como configurar o roteamento baseado em política

摘要: Este artigo explica como configurar o roteamento baseado em políticas no Dell Networking SONiC com um exemplo simples.

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

Pré-requisitos

Estamos usando nomenclaturas de interface padrão para demonstrar os conceitos. Consulte o artigo Dell Networking série S: Configuração básica da interface — SONiC 4.0 para obter mais informações sobre nomenclatura de interface


Índice

 

O que é roteamento baseado em política?

O roteamento baseado em política (PBR) fornece um método para encaminhar pacotes, substituindo as informações disponíveis na tabela de roteamento IP. Você pode implementar políticas que seletivamente fazem com que os pacotes tomem caminhos diferentes. O roteamento IP tradicional encaminha pacotes com base apenas no endereço IP de destino no pacote. PBR pode ser configurado para encaminhar pacotes com base em outros critérios, como números de porta TCP/UDP, endereço IP de origem, valor DSCP e indicadores TCP. O Dell SONiC usa políticas de serviço baseadas em fluxo para roteamento baseado em políticas. As políticas de encaminhamento consistem em mapas de classes que selecionam pacotes e definem ações que fazem com que um pacote seja encaminhado para um próximo salto ou interface predeterminado, ignorando o caminho determinado pelas tabelas de roteamento e encaminhamento. Você pode definir vários valores de interface de correspondência e saída ou de próximo salto na mesma política. Você pode aplicar políticas de encaminhamento ao tráfego comutado ou roteado. O tráfego pode ser roteado para o mesmo VRF usado pela interface de entrada ou para um VRF diferente.

Use roteamento baseado em política para fornecer acesso igual, roteamento sensível a protocolo, roteamento sensível à origem, roteamento baseado em comparação interativa com tráfego em lote e roteamento baseado em links dedicados. O roteamento baseado em política é um mecanismo mais flexível para roteamento de pacotes do que o roteamento de destino.
 

Etapas para configurar o Roteamento Baseado em Políticas

O Dell SONiC implementa PBR fornecendo uma estrutura modular para classificar o tráfego e aplicar ações de encaminhamento, como definir o próximo salto de IP, no tráfego selecionado.

Para configurar o PBR:

  1. Classificar (selecionar) o tráfego para roteamento baseado em política usando ACLs ou os campos L2, L3 ou L4 nos cabeçalhos de pacote.
  2. Em um mapa de políticas, configure as ações de encaminhamento a serem executadas em cada fluxo classificado.
  3. Aplicar a política de encaminhamento em interfaces de entrada – globalmente em todas as interfaces de switch, uma interface especificada, uma VLAN ou um port channel
Em poucas palavras:

Etapas para configurar o Roteamento baseado em política


Nota: No Dell SONiC:
  • Se um tráfego de entrada não encontrar uma correspondência em nenhuma das declarações aplicadas em um mapa de políticas em uma interface/vlan/portchannel/global, ele será encaminhado de acordo com a tabela de rota padrão.
  • Uma política de encaminhamento é compatível somente em interfaces de entrada.
  • As políticas de encaminhamento só podem encaminhar o tráfego selecionado; eles não podem interceptar, alternar ou rotear o tráfego para a CPU.
  • As políticas de encaminhamento com ações de grupo de próximo salto e próximo salto se aplicam somente ao tráfego de L3 roteado.
  • As políticas de encaminhamento que usam uma interface de saída Ethernet ou de port channel aplicam-se somente ao tráfego de L2 comutado.
  • As políticas de encaminhamento não se aplicam ao tráfego destinado à CPU (o endereço IP de destino é o mesmo que o endereço do switch) ou ao tráfego preso à CPU.
  • Quando você aplica uma política de encaminhamento globalmente em todas as interfaces, os próximos saltos devem estar no VRF padrão, a menos que você defina um VRF não padrão usando o comando set {ip | ipv6} next-hop ip-address vrf vrf-name no mapa de políticas.

 

Sintaxe de configuração

Configurar o mapa de classe para classificar o tráfego

Podemos classificar (corresponder) o tráfego de entrada seguindo métodos em um mapa de classes.

  1. Usando a lista de acesso IPv4, IPv6 ou MAC
  2. Usando campos de cabeçalho L2-L4

Sintaxe do comando ao usar a lista de acesso para corresponder ao tráfego no mapa de classes.

Se estivermos configurando a lista de acesso para corresponder ao tráfego no mapa de classes, certifique-se de configurar a lista de acesso.

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# class-map {CLASSMAP-NAME} match-type acl 
DELLSONiC(config-class-map)# match access-group {ip, ipv6, mac} {Access-List-name}

Sintaxe do comando ao usar campos de cabeçalho L2-L4

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# class-map {CLASSMAP-NAME} match-type fields match-all
DELLSONiC(config-class-map)# match {MATCH-CRITERIA}
 
The following is the Match Criteria

  dei                  Match packets using DEI value
  destination-address  Match packets using destination address
  dscp                 Match packets using DSCP value
  ethertype            Match packets using ethertype
  ip                   Match packets using IP/IPv6 protocol
  l4-port              Match packets using TCP/UDP port
  pcp                  Match packets using PCP
  source-address       Match packets using source address
  tcp-flags            Match packets using TCP flags
  vlan                 Match packets using VLAN ID

 

Configurar o mapa de políticas

Uma política de encaminhamento PBR especifica as ações de encaminhamento a serem realizadas em relação ao tráfego correspondente para roteamento baseado em política. Uma política de encaminhamento é compatível com as seguintes ações:

  • Set next hop - Roteia o tráfego IPv4 para um próximo salto IPv4; roteia o tráfego IPv6 para um próximo salto IPv6.
  • Set next-hop group - Especifica o grupo do qual é escolhido o melhor endereço IPv4 ou IPv6 do próximo salto.
  • Set interface – encaminha o tráfego L2 para uma interface de saída especificada.
  • Set interface null - Descarta o tráfego correspondente se a interface nula estiver definida ou se nenhum dos próximos saltos especificados estiver acessível ou se a interface de saída especificada não for L2 e se conectar.
  • Set replication group - Usado para replicar o tráfego para servidores anycast, projetado para resolver o problema de hash conforme descrito em RFC7690.

Sintaxe de comando

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# policy-map {POLICYMAP-NAME} type forwarding  
DELLSONiC(config-policy-map)# 
DELLSONiC(config-policy-map)# class {CLASS-MAP-NAME} priority {Priority-value}

Enter a priority number (0-4095) to specify the order in which a class map is applied in the policy map to match traffic in the flow. A higher priority class map is processed before a lower priority.


If next hop is a IP address

DELLSONiC(config-policy-map-flow)# set ip next-hop {IP-ADDRESS}


If next hop is a IPv6 address

DELLSONiC(config-policy-map-flow)# set ipv6 next-hop {IPv6 Address}


If we need a specific interface where the traffic is to be forwarded

DELLSONiC(config-policy-map-flow)# set interface {Eth, Null, PortChannel } {interface number}


If we have a IPv4/IPv6 Next Hop Group

DELLSONiC(config-policy-map-flow)# set ip next-hop-group {IPv4 Next Hop Group}
DELLSONiC(config-policy-map-flow)# set ipv6 next-hop-group {IPv6 Next Hop Group}


If we have a IPv4/IPv6 Replication Group

DELLSONiC(config-policy-map-flow)# set ip replication-group {Ipv4 Replication Group}
DELLSONiC(config-policy-map-flow)# set ipv6 replication-group {Ipv4 Replication Group}

 

Configurar política de serviço (aplicar mapa de política na interface)

Em uma interface ou subinterface:

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface {Eth slot/port[/breakout-port] [.subinterface]}
DELLSONiC(config-if-Eth)# service-policy type forwarding in {policy-map-name}

Em interfaces VLAN:

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface Vlan {vlan-id}
DELLSONiC(conf-if-Vlan)# service-policy type forwarding in {policy-map-name}

Nas interfaces de port channel,

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface PortChannel {portchannel-number}
DELLSONiC(conf-if-po)# service-policy type forwarding in {policy-map-name}

Globalmente em todas as interfaces de switch

When you apply a forwarding policy globally on all interfaces, the next-hops must be in the default VRF unless you set a non-default VRF using the set {ip | ipv6} next-hop ip-address vrf vrf-name command in the policy map.

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# service-policy type forwarding in {policy-map-name}

 

Verificação

Use the Following commands to verify Class Map

DELLSONiC# show class-map {class-map-name}

Use the Following commands to verify policy map

DELLSONiC# show policy-map {POLICY-MAP-NAME}


Use the Following commands to service Policy

DELLSONiC# show policy-map type forwarding

DELLSONiC# show service-policy interface {Interface}

DELLSONiC# show service-policy summary

 

Exemplo de configuração

Vamos considerar a topologia a seguir.

Topologia

Não temos uma rota para 50.0.0.0/24 e 60.0.0.0/24 no DELLSONiC.

DELLSONiC# show ip route 
Codes:  K - kernel route, C - connected, S - static, B - BGP, O - OSPF
        > - selected route, * - FIB route, q - queued route, r - rejected route
       Destination        Gateway                                                                    Dist/Metric   Last Update 
--------------------------------------------------------------------------------------------------------------------------------
 C>*   1.1.1.1/32         Direct                          Loopback0                                  0/0           09:18:16 ago
 C>*   10.0.0.0/24        Direct                          Eth1/1                                     0/0           09:17:56 ago
 C>*   20.0.0.0/24        Direct                          Eth1/2                                     0/0           01:58:41 ago
 C>*   30.0.0.0/24        Direct                          Eth1/3                                     0/0           09:14:38 ago

 

Objetivo:

O tráfego para o farm de servidores 50.0.0.0/24 deve ser roteado para o próximo hop 20.0.0.2. O tráfego para o farm de servidores 60.0.0.0/24 deve ser roteado para o próximo hop 30.0.0.2.
 

Configuração

Vamos configurar o mapa de classes. Aqui classificamos o tráfego com base em vários parâmetros.
Mapa da classe MATCH_IP_OF_SERVER-1 O critério de correspondência é DST-IP 50.0.0.0/24.
No mapa de classe MATCH_IP_OF_SERVER-2, os critérios de correspondência são DST-IP 60.0.0.0/24.

admin@DELLSONiC:~$ sonic-cli
DELLSONiC#
DELLSONiC# configure
DELLSONiC(config)# class-map MATCH_IP_OF_SERVER-1 match-type fields match-all
DELLSONiC(config-class-map)# description "MATCH IP ADDRESS of SERVER FARM 1"
DELLSONiC(config-class-map)# match destination-address ip 50.0.0.0/24
DELLSONiC(config-class-map)# exit
DELLSONiC(config)#
DELLSONiC(config)# class-map MATCH_IP_OF_SERVER-2 match-type fields match-all
DELLSONiC(config-class-map)# description "MATCH IP ADDRESS of SERVER FARM 2"
DELLSONiC(config-class-map)# match destination-address ip 60.0.0.0/24
DELLSONiC(config-class-map)# exit
DELLSONiC(config)# exit
DELLSONiC#

Vamos configurar o mapa de políticas.
Aqui definimos qual é a próxima ação a ser tomada se o tráfego corresponder a uma condição. Nesse caso, se o tráfego corresponder a um endereço IP de destino específico, encaminhe para um IP específico do próximo salto.

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# policy-map FORWARD_TO_SERVER type forwarding
DELLSONiC(config-policy-map)# class MATCH_IP_OF_SERVER-2 priority 100
DELLSONiC(config-policy-map-flow)# set ip next-hop 30.0.0.2
DELLSONiC(config-policy-map-flow)# exit
DELLSONiC(config-policy-map-flow)#
DELLSONiC(config-policy-map)# class MATCH_IP_OF_SERVER-1 priority 100
DELLSONiC(config-policy-map-flow)# set ip next-hop 20.0.0.2
DELLSONiC(config-policy-map-flow)# exit
DELLSONiC(config-policy-map)# exit
DELLSONiC(config)#

Vamos aplicar o mapa de política como política de serviço à interface Eth 1/1.

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface Eth 1/1
DELLSONiC(config-if-Eth1/1)# service-policy type forwarding in FORWARD_TO_SERVER
DELLSONiC(config-if-Eth1/1)# end


Verificação da configuração

Vamos verificar a configuração do mapa de classes. Aqui podemos ver por MATCH_IP_OF_SERVER-1 Os critérios de correspondência são DST-IP 50.0.0.0/24. No mapa de classe MATCH_IP_OF_SERVER-2, os critérios de correspondência são DST-IP 60.0.0.0/24.

DELLSONiC# show class-map MATCH_IP_OF_SERVER-1
Class-map MATCH_IP_OF_SERVER-1 match-type fields
  Description: "MATCH IP ADDRESS of SERVER FARM 1"
  Match:
    dst-ip 50.0.0.0/24
  Referenced in flows:
    policy FORWARD_TO_SERVER at priority 100
DELLSONiC#

 

DELLSONiC# show class-map MATCH_IP_OF_SERVER-2
Class-map MATCH_IP_OF_SERVER-2 match-type fields
  Description: "MATCH IP ADDRESS of SERVER FARM 2"
  Match:
    dst-ip 60.0.0.0/24
  Referenced in flows:
    policy FORWARD_TO_SERVER at priority 100
DELLSONiC#

O mapa de políticas define qual é o próximo salto para um tráfego classificado em um mapa de classes.

DELLSONiC# show policy-map type forwarding
Policy FORWARD_TO_SERVER Type forwarding
  Description:
  Flow MATCH_IP_OF_SERVER-2 at priority 100
    Description:
    set ip nexthop 30.0.0.2
  Flow MATCH_IP_OF_SERVER-1 at priority 100
    Description:
    set ip nexthop 20.0.0.2
  Applied to:
    Eth1/1 at Ingress

 

DELLSONiC# show policy-map FORWARD_TO_SERVER
Policy FORWARD_TO_SERVER Type forwarding
  Description:
  Flow MATCH_IP_OF_SERVER-2 at priority 100
    Description:
    set ip nexthop 30.0.0.2
  Flow MATCH_IP_OF_SERVER-1 at priority 100
    Description:
    set ip nexthop 20.0.0.2
  Applied to:
    Eth1/1 at Ingress
DELLSONiC#

A política de serviço define onde o mapa de políticas deve ser aplicado.

DELLSONiC# show service-policy summary
Eth1/1
    forwarding policy FORWARD_TO_SERVER at ingress
CtrlPlane
    qos policy oob-qos-policy at ingress

 

DELLSONiC# show service-policy interface Eth 1/1
Eth1/1
  Policy FORWARD_TO_SERVER type forwarding at ingress
  Description:
    Flow MATCH_IP_OF_SERVER-2 at priority 100 (Active)
      Description:
      set ip nexthop 30.0.0.2 (Selected)
      Packet matches: 616 frames 62832 bytes
    Flow MATCH_IP_OF_SERVER-1 at priority 100 (Active)
      Description:
      set ip nexthop 20.0.0.2 (Selected)
      Packet matches: 50 frames 5100 bytes
DELLSONiC#

 

DELLSONiC# show service-policy policy-map FORWARD_TO_SERVER
Eth1/1
  Policy FORWARD_TO_SERVER type forwarding at ingress
  Description:
    Flow MATCH_IP_OF_SERVER-2 at priority 100 (Active)
      Description:
      set ip nexthop 30.0.0.2 (Selected)
      Packet matches: 616 frames 62832 bytes
    Flow MATCH_IP_OF_SERVER-1 at priority 100 (Active)
      Description:
      set ip nexthop 20.0.0.2 (Selected)
      Packet matches: 50 frames 5100 bytes
DELLSONiC#

 

E se o próximo salto estiver inativo?

Considere que o próximo salto 20.0.0.2 está inativo. Veja a saída abaixo. Podemos ver em show the service-policy interface Eth 1/1 e show service-policy policy-map FORWARD_TO_SERVER. O 20.0.0.2 não tem "(selecionado)", enquanto o 30.0.0.2, que está acessível, tem "(selecionado)".

Aqui, os contadores (correspondência de pacote e quadro) aumentarão, no entanto, o pacote será solto, pois o próximo salto não está acessível.

DELLSONiC# show service-policy policy-map FORWARD_TO_SERVER
Eth1/1
  Policy FORWARD_TO_SERVER type forwarding at ingress
  Description:
    Flow MATCH_IP_OF_SERVER-2 at priority 100 (Active)
      Description:
      set ip nexthop 30.0.0.2 (Selected)
      Packet matches: 616 frames 62832 bytes
    Flow MATCH_IP_OF_SERVER-1 at priority 100 (Active)
      Description:
      set ip nexthop 20.0.0.2                          ====>Selected missing
      Packet matches: 50 frames 5100 bytes

30.0.0.2 está acessível e selecionado. A versão 20.0.0.2 não pode ser acessada e, portanto, a opção selecionada está ausente.

DELLSONiC# show service-policy interface Eth 1/1
Eth1/1
  Policy FORWARD_TO_SERVER type forwarding at ingress
  Description:
    Flow MATCH_IP_OF_SERVER-2 at priority 100 (Active)
      Description:
      set ip nexthop 30.0.0.2 (Selected)
      Packet matches: 616 frames 62832 bytes
    Flow MATCH_IP_OF_SERVER-1 at priority 100 (Active)
      Description:
      set ip nexthop 20.0.0.2                          ====>Selected missing
      Packet matches: 50 frames 5100 bytes

受影响的产品

Enterprise SONiC Distribution, PowerSwitch S5212F-ON, PowerSwitch S5224F-ON, PowerSwitch S5232F-ON, PowerSwitch S5248F-ON, PowerSwitch S5296F-ON, PowerSwitch Z9264F-ON, PowerSwitch Z9432F-ON
文章属性
文章编号: 000222385
文章类型: How To
上次修改时间: 07 3月 2024
版本:  4
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。