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åndskravVi 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?
- Trinn for å konfigurere policybasert ruting.
- Syntaks for konfigurasjon
- Eksempel på konfigurasjon
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:
- Klassifiser (velg) trafikk for policybasert ruting ved hjelp av tilgangskontrollister eller L2-, L3- eller L4-feltene i pakkehoder.
- I et policykart konfigurerer du videresendingshandlingene til å utføre hver klassifiserte flyt.
- Bruk videresendingspolicyen på inngangsgrensesnitt – globalt på alle svitsjgrensesnitt, et spesifisert grensesnitt, en VLAN eller en portkanal

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.
- Bruke IPv4 eller IPv6 eller MAC Tilgangsliste
- 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.

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