Dell Networking SONiC: Slik konfigurerer du policybasert ruting

摘要: Denne artikkelen forklarer hvordan du konfigurerer policybasert ruting i Dell Networking SONiC med et enkelt eksempel.

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

说明

Forhåndskrav

Vi bruker standard grensesnittnavn for å demonstrere konseptene. Se artikkelen Dell Networking i S-serien: Basic Interface Configuration – SONiC 4.0 for mer informasjon om grensesnittnavn


Indeks

 

Hva er policybasert ruting?

Policy-Based Routing (PBR) gir en metode for å videresende pakker ved å overstyre informasjonen som er tilgjengelig i IP-rutingstabellen. Du kan implementere policyer som selektivt fører til at pakker tar forskjellige baner. Tradisjonell IP-ruting videresender pakker basert bare på destinasjons-IP-adressen i pakken. PBR kan konfigureres til å videresende pakker basert på andre kriterier, for eksempel TCP/UDP-portnumre, kilde-IP-adresse, DSCP-verdi og TCP-flagg. Dell SONiC bruker flytbaserte tjenestepolicyer for policybasert ruting. Videresendingspolicyer består av klassekart som velger pakker og angir handlinger som fører til at en pakke videresendes til et forhåndsbestemt neste hopp eller grensesnitt, og omgår banen som bestemmes av ruting og videresendingstabeller. Du kan definere flere grensesnittverdier for samsvar og utgående eller neste hopp i samme policy. Du kan bruke videresendingspolicyer på svitsjet eller rutet trafikk. Trafikk kan rutes til samme VRF som brukes av inngangsgrensesnittet eller en annen VRF.

Bruk policybasert ruting for å gi lik tilgang, protokollsensitiv ruting, kildesensitiv ruting, ruting basert på interaktiv sammenligning med satsvis trafikk og ruting basert på dedikerte koblinger. Policybasert ruting er en mer fleksibel mekanisme for ruting av pakker enn målruting.
 

Trinn for å konfigurere policybasert ruting

Dell SONiC implementerer PBR ved å tilby et modulært rammeverk for å klassifisere trafikk og bruke videresendingshandlinger, for eksempel angi IP neste hopp, på valgt trafikk.

Slik konfigurerer du PBR:

  1. Klassifiser (velg) trafikk for policybasert ruting ved hjelp av tilgangskontrollister eller L2-, L3- eller L4-feltene i pakkehoder.
  2. I et policykart konfigurerer du videresendingshandlingene til å utføre hver klassifiserte flyt.
  3. Bruk videresendingspolicyen på inngangsgrensesnitt – globalt på alle svitsjgrensesnitt, et spesifisert grensesnitt, en VLAN eller en portkanal
I et nøtteskall:

Trinn for å konfigurere policybasert ruting


MERK: I Dell SONiC:
  • Hvis en innkommende trafikk ikke finner et treff i noen av utsagnene som brukes i et policykart i et grensesnitt / vlan / portchannel / globalt, vil den videresende i henhold til standard rutetabell.
  • En videresendingspolicy støttes bare på inngangsgrensesnitt.
  • Videresendingspolitikk kan bare videresende valgt trafikk; de kan ikke fange, bytte eller dirigere trafikk til CPU-en.
  • Videresendingsretningslinjer med nestehopp- og nestehoppgruppehandlinger gjelder bare for L3-trafikk på rute.
  • Videresendingspolicyer som bruker et Ethernet- eller portkanalgrensesnitt for utgående trafikk, gjelder bare for svitsjet L2-trafikk.
  • Videresendingspolicyer gjelder ikke for trafikk som skal til CPU-en (destinasjons-IP-adressen er den samme som bryteradressen) eller trafikk som er fanget til CPU-en.
  • Når du bruker en videresendingspolicy globalt på alle grensesnitt, må nestehoppene være i standard VRF, med mindre du angir en ikke-standard VRF ved hjelp av kommandoen set {ip | ipv6} next-hop ip-address vrf vrf-name i policykartet.

 

Syntaks for konfigurasjon

Konfigurere klassekart for å klassifisere trafikk

Vi kan klassifisere (matche) innkommende trafikk ved å følge metoder i et klassekart.

  1. Bruke IPv4 eller IPv6 eller MAC Tilgangsliste
  2. Bruke L2–L4-hodefelt

Kommandosyntaks mens du bruker Access-listen for å samsvare med trafikken på klassekartet.

Hvis vi konfigurerer tilgangslisten slik at den samsvarer med trafikken i klassekartet, må du sørge for å konfigurere tilgangslisten.

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}

Kommandosyntaks ved bruk av L2–L4-overskriftsfelt

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

 

Konfigurere policykart

En PBR-videresendingspolicy spesifiserer videresendingshandlingene som skal utføres mot samsvarende trafikk for policybasert ruting. En videresendingspolicy støtter følgende handlinger:

  • Sett neste hopp - Ruter IPv4-trafikk til et IPv4 neste-hopp; ruter IPv6-trafikk til en IPv6 next-hop.
  • Angi nestehoppgruppe – Angir gruppen som den beste IPv4- eller IPv6-adressen velges fra.
  • Angi grensesnitt – Videresend L2-trafikk til et spesifisert utgående grensesnitt.
  • Angi grensesnitt null - Dropper samsvarende trafikk hvis nullgrensesnittet er angitt, eller hvis ingen av de angitte nestehoppene kan nås, eller hvis det angitte utgående grensesnittet ikke er L2 og koble til.
  • Angi replikeringsgruppe – Brukes til å replikere trafikk til anycast-servere, utformet for å løse hash-problemet som beskrevet i RFC7690.

Kommandosyntaks

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}

 

Konfigurere tjenestepolicy (Bruk policykart i grensesnittet)

På et grensesnitt eller undergrensesnitt:

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-grensesnitt:

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å portkanalgrensesnitt,

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 på alle svitsjgrensesnitt

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}

 

Bekreft

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

 

Eksempel på konfigurasjon

La oss se på følgende topologi.

Topologi

Vi har ingen rute til 50.0.0.0/24 og 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:

Trafikk til serverfarm 50.0.0.0/24 skal rutes til neste hopp 20.0.0.2. Trafikk til serverfarm 60.0.0.0/24 skal rutes til neste hopp 30.0.0.2.
 

Konfigurasjon

La oss konfigurere klassekartet. Her klassifiserer vi trafikken basert på ulike parametere.
Klassekart MATCH_IP_OF_SERVER-1 Samsvarskriteriene er DST-IP 50.0.0.0/24.
I klassekartet MATCH_IP_OF_SERVER-2, er samsvarskriteriene 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#

La oss konfigurere policykartet.
Her definerer vi hva som er neste handling som skal utføres hvis trafikken samsvarer med et vilkår. I dette tilfellet, hvis trafikken samsvarer med en bestemt destinasjons-IP-adresse, videresend til en bestemt neste hopp-IP.

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

La oss bruke policykartet som tjenestepolicy for å grensesnitt 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


Kontroller konfigurasjonen

La oss sjekke klassekartkonfigurasjonen. Her ser vi etter MATCH_IP_OF_SERVER-1 Samsvarskriteriene er DST-IP 50.0.0.0/24. I klassekartet MATCH_IP_OF_SERVER-2, er samsvarskriteriene 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#

Policykartet definerer hva som er neste hopp for en trafikk klassifisert under et klassekart.

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#

Tjenestepolicyen definerer hvor policykartet skal brukes.

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#

 

Hva om neste hopp er nede.

Tenk på at neste hopp 20.0.0.2 er nede. Se nedenfor utgang. Vi kan se fra show service-policy grensesnittet eth 1 / 1 og vise service-policy policy-kart FORWARD_TO_SERVER. 20.0.0.2 mangler "(valgt)", mens 30.0.0.2 som er tilgjengelig er å ha "(valgt)."

Her vil tellerne (pakkekamp og ramme) øke, men pakken vil falle ettersom neste hopp ikke 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 er tilgjengelig og valgt. 20.0.0.2 kan ikke nås og er derfor valgt mangler.

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