Dell Networking SONiC: Come configurare il routing basato su criteri

摘要: Questo articolo spiega come configurare il routing basato su policy in Dell Networking SONiC con un semplice esempio.

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

说明

Prerequisiti

Stiamo usando le denominazioni standard dell'interfaccia per dimostrare i concetti. Consultare l'articolo Dell Networking serie S: Basic Interface Configuration - SONiC 4.0 per ulteriori informazioni sulla denominazione delle interfacce


Indice

 

Che cos'è il Policy Based Routing?

Il Policy-Based Routing (PBR) fornisce un metodo per inoltrare i pacchetti ignorando le informazioni disponibili nella tabella di routing IP. È possibile implementare policy che selettivamente fanno sì che i pacchetti prendano percorsi diversi. Il routing IP tradizionale inoltra i pacchetti solo in base all'indirizzo IP di destinazione nel pacchetto. PBR può essere configurato per l'inoltro dei pacchetti in base ad altri criteri, come i numeri di porta TCP/UDP, l'indirizzo IP di origine, il valore DSCP e i flag TCP. Dell SONiC utilizza policy di servizio basate sul flusso per il routing basato su policy. I criteri di inoltro sono costituiti da mappe di classi che selezionano i pacchetti e impostano azioni che causano l'inoltro di un pacchetto a un hop o a un'interfaccia successiva predeterminata, ignorando il percorso determinato dalle tabelle di routing e inoltro. È possibile definire più valori di corrispondenza ed interfaccia di uscita o dell'hop successivo nella stessa policy. È possibile applicare criteri di inoltro al traffico commutato o instradato. Il traffico può essere instradato allo stesso VRF utilizzato dall'interfaccia di ingresso o a un VRF diverso.

Utilizzare il routing basato su policy per fornire parità di accesso, routing sensibile al protocollo, routing sensibile all'origine, routing basato sul confronto interattivo con il traffico batch e routing basato su link dedicati. Il routing basato su policy è un meccanismo più flessibile per il routing dei pacchetti rispetto al routing di destinazione.
 

Procedura per configurare il routing basato su criteri

Dell SONiC implementa PBR fornendo un framework modulare per classificare il traffico e applicare azioni di inoltro, come l'impostazione dell'hop successivo IP, sul traffico selezionato.

Per configurare PBR:

  1. Classificare (selezionare) il traffico per il routing basato su policy utilizzando gli ACL o i campi L2, L3 o L4 nelle intestazioni dei pacchetti.
  2. In una mappa delle policy, configurare le azioni di inoltro da eseguire su ogni flusso classificato.
  3. Applicare la policy di inoltro alle interfacce in ingresso, a livello globale su tutte le interfacce dello switch, su un'interfaccia specificata, su una VLAN o su un canale della porta
In sintesi:

Procedura per configurare il routing basato su policy


NOTA: In Dell SONiC:
  • Se un traffico in entrata non trova una corrispondenza in nessuna delle istruzioni applicate in una mappa delle policy in un'interfaccia/vlan/portchannel/global, inoltrerà in base alla tabella di route standard.
  • Una policy di inoltro è supportata solo sulle interfacce in ingresso.
  • I criteri di inoltro possono inoltrare solo il traffico selezionato; non possono intercettare, commutare o instradare il traffico verso la CPU.
  • Le policy di inoltro con azioni dell'hop successivo e del gruppo hop successivo si applicano solo al traffico L3 instradato.
  • Le policy di inoltro che utilizzano un'interfaccia Ethernet o di uscita del canale della porta si applicano solo al traffico L2 commutato.
  • I criteri di inoltro non si applicano al traffico destinato alla CPU (l'indirizzo IP di destinazione corrisponde all'indirizzo dello switch) o al traffico intrappolato nella CPU.
  • Quando si applica una policy di inoltro a livello globale a tutte le interfacce, gli hop successivi devono essere nel VRF predefinito, a meno che non si imposti un VRF non predefinito utilizzando il comando set {ip | ipv6} next-hop ip-address vrf vrf-name nella mappa delle policy.

 

Sintassi di configurazione

Configurare la mappa delle classi per classificare il traffico

Possiamo classificare (abbinare) il traffico in entrata seguendo i metodi in una mappa di classe.

  1. Utilizzo di IPv4 o IPv6 o dell'elenco di accesso MAC
  2. Utilizzo dei campi di intestazione L2-L4

Sintassi dei comandi durante l'utilizzo dell'elenco di accesso in modo che corrisponda al traffico nella mappa classi.

Se si sta configurando l'elenco degli accessi in modo che corrisponda al traffico nella mappa classi, assicurarsi di configurare l'elenco degli accessi.

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}

Sintassi dei comandi durante l'utilizzo dei campi di intestazione 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

 

Configura mappa criteri

Una policy di inoltro PBR specifica le azioni di inoltro da eseguire sul traffico corrispondente per il routing basato su policy. Una policy di inoltro supporta le seguenti azioni:

  • Imposta hop successivo: instrada il traffico IPv4 a un hop successivo IPv4; instrada il traffico IPv6 a un hop successivo IPv6.
  • Set next-hop group: specifica il gruppo da cui viene scelto l'indirizzo IPv4 o IPv6 dell'hop successivo migliore.
  • Set interface: inoltra il traffico L2 a un'interfaccia in uscita specificata.
  • Set interface null: elimina il traffico corrispondente se l'interfaccia null è impostata o se nessuno degli hop successivi specificati è raggiungibile o se l'interfaccia di uscita specificata non è L2 e si collega attivamente.
  • Set replication group: utilizzato per replicare il traffico verso i server anycast, progettato per risolvere il problema di hashing come descritto nella RFC7690.

Sintassi dei comandi

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}

 

Configurazione dei criteri di servizio (applicazione della mappa dei criteri nell'interfaccia)

Su un'interfaccia o una sottointerfaccia:

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}

Sulle interfacce 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}

Sulle interfacce dei canali delle porte,

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

A livello globale su tutte le interfacce degli 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

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

 

Configurazione di esempio

Consideriamo la seguente topologia.

Topologia

Non è disponibile una route per 50.0.0.0/24 e 60.0.0.0/24 in 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

 

Obiettivo:

Il traffico verso la server farm 50.0.0.0/24 deve essere instradato all'hop successivo 20.0.0.2. Il traffico verso la server farm 60.0.0.0/24 deve essere instradato all'hop successivo 30.0.0.2.
 

Configurazione

Configuriamo la mappa delle classi. Qui classifichiamo il traffico in base a vari parametri.
Mappa delle classi MATCH_IP_OF_SERVER-1 Il criterio di corrispondenza è DST-IP 50.0.0.0/24.
Nella mappa delle classi MATCH_IP_OF_SERVER-2, i criteri di corrispondenza sono 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#

Procediamo con la configurazione della Policy Map.
Qui definiamo qual è l'azione successiva da intraprendere se il traffico corrisponde a una condizione. In questo caso, se il traffico corrisponde a un indirizzo IP di destinazione specifico, eseguire l'inoltro a un IP specifico dell hop successivo.

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

Applichiamo la mappa delle policy come policy di servizio all'interfaccia 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 della configurazione

Controlliamo la configurazione della mappa delle classi. Qui possiamo vedere per MATCH_IP_OF_SERVER-1 I criteri di corrispondenza sono DST-IP 50.0.0.0/24. Nella mappa delle classi MATCH_IP_OF_SERVER-2, i criteri di corrispondenza sono 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#

La mappa delle policy definisce qual è l'hop successivo per un traffico classificato in una mappa delle classi.

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 policy di servizio definisce dove deve essere applicata la mappa delle policy.

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 l'hop successivo è Down?

Si consideri che l'hop successivo 20.0.0.2 sia Down. Vedere l'output riportato di seguito. Si può vedere da show the service-policy interface Eth 1/1 e show service-policy policy-map FORWARD_TO_SERVER. In 20.0.0.2 manca "(selezionato)", mentre in 30.0.0.2, raggiungibile c'è "(selezionato)".

Qui i contatori (corrispondenza e frame dei pacchetti) aumenteranno, tuttavia il pacchetto diminuirà quando l'hop successivo non è raggiungibile.

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 è raggiungibile e selezionato. 20.0.0.2 non è raggiungibile e quindi selezionato è mancante.

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