Dell Networking SONiC: Så här konfigurerar du principbaserad routning

摘要: I den här artikeln förklaras hur du konfigurerar policybaserad routning i Dell Networking SONiC med ett enkelt exempel.

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

说明

Förutsättningar

Vi använder standardgränssnittsnamn för att demonstrera begreppen. Se artikeln Dell Networking S-serien: Grundläggande gränssnittskonfiguration – SONiC 4.0 för mer information om gränssnittsnamngivning


Index

 

Vad är principbaserad routning?

PBR (Policy-Based Routing) är en metod för att vidarebefordra paket genom att åsidosätta den information som är tillgänglig i IP-routningstabellen. Du kan implementera principer som selektivt gör att paket tar olika vägar. Traditionell IP-routning vidarebefordrar paket endast baserat på målets IP-adress i paketet. PBR kan konfigureras för att vidarebefordra paket baserat på andra kriterier, till exempel TCP/UDP-portnummer, källans IP-adress, DSCP-värde och TCP-flaggor. Dell SONiC använder flödesbaserade tjänstpolicyer för policybaserad routning. Vidarebefordringsprinciper består av klassmappningar som väljer paket och anger åtgärder som gör att ett paket vidarebefordras till ett förutbestämt nästa hopp eller gränssnitt, och kringgår den sökväg som bestäms av routnings- och vidarebefordringstabeller. Du kan definiera flera matchnings- och utgående gränssnitts- eller next-hop-värden i samma princip. Du kan tillämpa vidarebefordringsprinciper på växlad eller dirigerad trafik. Trafik kan dirigeras till samma VRF som används av ingressgränssnittet eller en annan VRF.

Använd principbaserad routning för att ge lika åtkomst, protokollkänslig routning, källkänslig routning, routning baserad på interaktiv jämförelse med batchtrafik och routning baserad på dedikerade länkar. Principbaserad routning är en mer flexibel mekanism för routning av paket än målroutning.
 

Steg för att konfigurera policybaserad routning

Dell SONiC implementerar PBR genom att tillhandahålla ett modulärt ramverk för att klassificera trafik och tillämpa vidarebefordringsåtgärder, som att ställa in IP nästa hopp, på vald trafik.

Så här konfigurerar du PBR:

  1. Klassificera (välj) trafik för principbaserad routning med hjälp av ACL:er eller fälten L2, L3 eller L4 i pakethuvuden.
  2. I en principkarta konfigurerar du de vidarebefordringsåtgärder som ska vidtas för varje klassificerat flöde.
  3. Tillämpa vidarebefordringsprincipen på ingressgränssnitt – globalt på alla växelgränssnitt, ett angivet gränssnitt, ett VLAN eller en portkanal
I ett nötskal:

Steg för att konfigurera principbaserad routning


Obs! I Dell SONiC:
  • Om en inkommande trafik inte hittar en matchning i någon av de instruktioner som tillämpas i en principmappning i ett gränssnitt/vlan/portchannel/globalt vidarebefordras den enligt standardroutningstabellen.
  • En vidarebefordringsprincip stöds endast i ingressgränssnitt.
  • Vidarebefordringsprinciper kan bara vidarebefordra vald trafik. De kan inte fånga, växla eller dirigera trafik till processorn.
  • Vidarebefordringsprinciper med next-hop- och next-hop-group-åtgärder gäller endast för dirigerad L3-trafik.
  • Vidarebefordringsprinciper som använder ett Ethernet- eller portkanalgränssnitt gäller endast för växlad L2-trafik.
  • Vidarebefordringsprinciper gäller inte för trafik som är avsedd för processorn (mål-IP-adressen är samma som växeladressen) eller trafik som fångas till processorn.
  • När du tillämpar en vidarebefordringsprincip globalt på alla gränssnitt måste next-hoppen finnas i standard-VRF om du inte anger en VRF som inte är standard med hjälp av kommandot set {ip | ipv6} next-hop ip-address vrf vrf-name i principkartan.

 

Konfigurationssyntax

Konfigurera klassmappning för att klassificera trafik

Vi kan klassificera (matcha) den inkommande trafiken genom att följa metoder i en klasskarta.

  1. Använda IPv4 eller IPv6 eller MAC-åtkomstlista
  2. Använda L2-L4-huvudfält

Kommandosyntax vid användning av åtkomstlista för att matcha trafiken i klasskartan.

Om vi konfigurerar åtkomstlistan så att den matchar trafiken i klasskartan måste du konfigurera åtkomstlistan.

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}

Kommandosyntax vid användning av L2-L4-huvudfält

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

 

Konfigurera principkarta

En PBR-vidarebefordringsprincip anger de vidarebefordringsåtgärder som ska vidtas för matchande trafik för principbaserad routning. En vidarebefordringsprincip stöder följande åtgärder:

  • Ange nästa hopp – Dirigerar IPv4-trafik till ett IPv4-nästa hopp. dirigerar IPv6-trafik till nästa IPv6-hopp.
  • Ange nästa hoppgrupp – Anger den grupp från vilken den bästa IPv4- eller IPv6-adressen för nästa hopp väljs.
  • Ange gränssnitt – Vidarebefordra L2-trafik till ett angivet utgående gränssnitt.
  • Ange gränssnitt null – Tar bort matchande trafik om null-gränssnittet har angetts eller om inget av de angivna next-hoppen kan nås eller om det angivna utgående gränssnittet inte är L2 och länkar upp.
  • Ange replikeringsgrupp – Används för att replikera trafik till anycast-servrar som är utformade för att lösa hash-problemet enligt beskrivningen i RFC7690.

Kommandosyntax

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}

 

Konfigurera tjänstpolicy (tillämpa policykartan i gränssnittet)

I ett gränssnitt eller delgränssnitt:

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}

På VLAN-gränssnitt:

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

På portkanalgränssnitt,

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

Globalt för alla switchgränssnitt

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}

 

Verifiera

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

 

Exempelkonfiguration

Låt oss titta på följande topologi.

Topologi

Vi har ingen väg till 50.0.0.0/24 och 60.0.0.0/24 i 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

 

Mål:

Trafik till servergrupp 50.0.0.0/24 ska dirigeras till nästa hopp 20.0.0.2. Trafik till servergrupp 60.0.0.0/24 ska dirigeras till nästa hopp 30.0.0.2.
 

Konfiguration

Nu ska vi konfigurera klasskartan. Här klassificerar vi trafiken utifrån olika parametrar.
Klasskarta MATCH_IP_OF_SERVER-1 Matchningskriterierna är DST-IP 50.0.0.0/24.
I klasskartan MATCH_IP_OF_SERVER-2är matchningskriterierna 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#

Vi ska nu konfigurera principkartan.
Här definierar vi vad som är nästa åtgärd som ska vidtas om trafiken matchar ett villkor. I det här fallet, om trafiken matchar en specifik mål-IP-adress, vidarebefordrar du till en specifik IP-adress för nästa hopp.

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

Nu ska vi tillämpa policyn Policy map as service på gränssnittet 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


Kontrollera konfiguration

Låt oss kontrollera konfigurationen av klasskartan. Här kan vi se för MATCH_IP_OF_SERVER-1 Matchningskriterierna är DST-IP 50.0.0.0/24. I klasskartan MATCH_IP_OF_SERVER-2är matchningskriterierna 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#

Principkartan definierar vad som är nästa hopp för en trafik som klassificeras under en klasskarta.

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#

Tjänstprincipen definierar var principkartan ska tillämpas.

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#

 

Vad händer om nästa hopp är Ner.

Tänk på att nästa hopp 20.0.0.2 är nere. Se utdata nedan. Vi kan se från att visa servicepolicygränssnittet Eth 1/1 och visa service-policy policy-map FORWARD_TO_SERVER. 20.0.0.2 saknar "(selected)", medan 30.0.0.2 som kan nås har "(selected)".

Här ökar räknarna (paketmatchning och ram), men paketet tas bort eftersom nästa hopp inte kan nås.

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 kan nås och är vald. 20.0.0.2 kan inte nås och därför saknas den valda.

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