Dell Networking SONiC: Cómo configurar el enrutamiento basado en políticas

摘要: En este artículo, se explica cómo configurar el enrutamiento basado en políticas en Dell Networking SONiC con un ejemplo simple.

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

说明

Requisitos previos

Utilizamos nomenclatura de interfaz estándar para demostrar los conceptos. Consulte el artículo Serie S de Dell Networking: Configuración básica de la interfaz: SONiC 4.0 para obtener más información sobre la asignación de nombres de interfaces


Índice

 

¿Qué es el enrutamiento basado en políticas?

El enrutamiento basado en políticas (PBR) proporciona un método para reenviar paquetes reemplazando la información disponible en la tabla de enrutamiento IP. Puede implementar políticas que selectivamente provoquen que los paquetes tomen rutas diferentes. El enrutamiento IP tradicional reenvía los paquetes solo en función de la dirección IP de destino en el paquete. PBR se puede configurar para reenviar paquetes en función de otros criterios, como los números de puerto TCP/UDP, la dirección IP de origen, el valor DSCP y las marcas TCP. Dell SONiC utiliza políticas de servicio basadas en el flujo para el enrutamiento basado en políticas. Las políticas de reenvío constan de mapas de clases que seleccionan paquetes y establecen acciones que hacen que un paquete se reenvíe a un próximo salto o interfaz predeterminados, omitiendo la ruta determinada por las tablas de enrutamiento y reenvío. Puede definir varias interfaces de coincidencia y salida o valores de próximo salto en la misma política. Puede aplicar políticas de reenvío al tráfico conmutado o enrutado. El tráfico se puede enrutar al mismo VRF utilizado por la interfaz de entrada o a un VRF diferente.

Utilice el enrutamiento basado en políticas para proporcionar igual acceso, enrutamiento sensible a protocolos, enrutamiento sensible al origen, enrutamiento basado en la comparación interactiva con el tráfico por lotes y enrutamiento basado en enlaces dedicados. El enrutamiento basado en políticas es un mecanismo más flexible para enrutar paquetes que el enrutamiento de destino.
 

Pasos para configurar el enrutamiento basado en políticas

Dell SONiC implementa PBR mediante una infraestructura modular para clasificar el tráfico y aplicar acciones de reenvío, como establecer el próximo salto de IP, en el tráfico seleccionado.

Para configurar el PBR:

  1. Clasifique (seleccione) el tráfico para el enrutamiento basado en políticas mediante ACL o los campos L2, L3 o L4 en los encabezados de paquetes.
  2. En un mapa de políticas, configure las acciones de reenvío que se llevarán a cabo en cada flujo clasificado.
  3. Aplique la política de reenvío en las interfaces de entrada: globalmente en todas las interfaces de switch, una interfaz especificada, una VLAN o un canal de puerto
En pocas palabras:

Pasos para configurar el enrutamiento basado en políticas


NOTA: En Dell SONiC:
  • Si un tráfico entrante no encuentra una coincidencia en ninguna de las instrucciones aplicadas en un mapa de políticas en una interfaz/VLAN/portchannel/globalmente, se reenviará según la tabla de rutas estándar.
  • Una política de reenvío solo se admite en interfaces de entrada.
  • Las políticas de reenvío solo pueden reenviar el tráfico seleccionado; no pueden capturar, cambiar ni enrutar el tráfico a la CPU.
  • Las políticas de reenvío con acciones de próximo salto y grupo de próximo salto se aplican solo en el tráfico L3 enrutado.
  • Las políticas de reenvío que utilizan una interfaz de salida de canal de puerto o Ethernet se aplican solo en el tráfico L2 conmutado.
  • Las políticas de reenvío no se aplican al tráfico destinado a la CPU (la dirección IP de destino es la misma que la dirección del switch) ni al tráfico atrapado en la CPU.
  • Cuando aplica una política de reenvío globalmente en todas las interfaces, los próximos saltos deben estar en el VRF predeterminado, a menos que configure un VRF no predeterminado mediante el comando set {ip | ipv6} next-hop ip-address vrf vrf-name en el mapa de políticas.

 

Sintaxis de configuración

Configurar el mapa de clases para clasificar el tráfico

Podemos clasificar (coincidir) el tráfico entrante siguiendo los métodos de un mapa de clases.

  1. Uso de IPv4, IPv6 o MAC Lista de acceso
  2. Uso de campos de encabezado L2-L4

Sintaxis del comando durante el uso de la lista de acceso para que coincida con el tráfico en el mapa de clase.

Si estamos configurando la lista de acceso para que coincida con el tráfico en el mapa de clase, asegúrese de configurar la lista de acceso.

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}

Sintaxis del comando durante el uso de campos de encabezado 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 el mapa de políticas

Una política de reenvío PBR especifica las acciones de reenvío que se deben realizar en el tráfico coincidente para el enrutamiento basado en políticas. Una política de reenvío admite las siguientes acciones:

  • Establecer próximo salto: enruta el tráfico IPv4 a un próximo salto IPv4; enruta el tráfico IPv6 a un próximo salto IPv6.
  • Set next-hop group: especifica el grupo desde el cual se elige la mejor dirección IPv4 o IPv6 del próximo salto.
  • Set interface: reenvía el tráfico L2 a una interfaz de salida especificada.
  • Set interface null: descarta el tráfico coincidente si la interfaz nula está configurada, si no se puede acceder a ninguno de los próximos saltos especificados o si la interfaz de egreso especificada no es L2 y no está activa.
  • Set replication group: se utiliza para replicar el tráfico a servidores anycast, diseñado para resolver el problema de hash como se describe en RFC7690.

Sintaxis de comandos

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 la política de servicio (aplicar el mapa de políticas en la interfaz)

En una interfaz o subinterfaz:

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}

En 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}

En las interfaces de canal de puerto,

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 en todas las 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}

 

Verificar

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

 

Configuración de muestra

Consideremos la siguiente topología.

Topología

No tenemos una ruta a 50.0.0.0/24 y 60.0.0.0/24 en 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:

El tráfico a la granja de servidores 50.0.0.0/24 se enrutará al siguiente salto 20.0.0.2. El tráfico a la granja de servidores 60.0.0.0/24 se enrutará al siguiente salto 30.0.0.2.
 

Configuración

Configuremos el mapa de clase. Aquí clasificamos el tráfico en función de varios parámetros.
Mapa de clases MATCH_IP_OF_SERVER-1 El criterio de coincidencia es DST-IP 50.0.0.0/24.
En el mapa de clases MATCH_IP_OF_SERVER-2, los criterios de coincidencia son 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#

Configuremos el mapa de políticas.
Aquí definimos cuál es la siguiente acción que se debe realizar si el tráfico coincide con una condición. En este caso, si el tráfico coincide con una dirección IP de destino específica, reenvíe a una IP de próximo salto específica.

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)#

Apliquemos Policy map como política de servicio a la interfaz 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


Verificar configuración

Comprobemos la configuración del mapa de clase. Aquí podemos ver MATCH_IP_OF_SERVER-1 Los criterios de coincidencia son DST-IP 50.0.0.0/24. En el mapa de clases MATCH_IP_OF_SERVER-2, los criterios de coincidencia son 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#

El mapa de políticas define cuál es el siguiente salto para un tráfico clasificado en un mapa de clase.

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#

La política de servicio define dónde se aplicará el mapa de políticas.

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#

 

¿Qué sucede si el siguiente salto es Down?

Considere que el próximo salto 20.0.0.2 está inactivo. Consulte el resultado que aparece a continuación. Podemos ver en show the service-policy interface Eth 1/1 y show service-policy policy-map FORWARD_TO_SERVER. Falta "(seleccionado)" en 20.0.0.2, mientras que en 30.0.0.2, al que se puede acceder, aparece "(seleccionado)".

Aquí, los contadores (coincidencia de paquetes y trama) aumentarán; sin embargo, el paquete disminuirá a medida que no se pueda acceder al siguiente salto.

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á accesible y seleccionado. No se puede acceder a 20.0.0.2 y, por lo tanto, falta la opción seleccionada.

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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。