Dell Networking SONiC: Op beleid gebaseerde routering configureren
摘要: In dit artikel wordt aan de hand van een eenvoudig voorbeeld uitgelegd hoe u op beleid gebaseerde routering in Dell Networking SONiC kunt configureren.
说明
VereistenWe gebruiken standaard interface-naamgevingen om de concepten te demonstreren. Lees het artikel Dell Networking S-serie: Basic Interface Configuration - SONiC 4.0 voor meer informatie over interfacenaamgeving |
Index
- Wat is op beleid gebaseerde routering?
- Stappen voor het configureren van op beleid gebaseerde routering.
- Configuratiesyntaxis
- Voorbeeldconfiguratie
Wat is op beleid gebaseerde routering?
Policy-Based Routing (PBR) biedt een methode om pakketten door te sturen door de informatie in de IP-routeringstabel te overschrijven. U kunt beleidsregels implementeren die er selectief voor zorgen dat pakketten verschillende paden nemen. Traditionele IP-routering stuurt pakketten alleen door op basis van het doel-IP-adres in het pakket. PBR kan worden geconfigureerd om pakketten door te sturen op basis van andere criteria, zoals TCP/UDP-poortnummers, bron-IP-adres, DSCP-waarde en TCP-vlaggen. Dell SONiC maakt gebruik van op stromen gebaseerd servicebeleid voor op beleid gebaseerde routering. Doorstuurbeleid bestaat uit klassetoewijzingen die pakketten selecteren en acties instellen die ervoor zorgen dat een pakket wordt doorgestuurd naar een vooraf bepaalde volgende hop of interface, waarbij het pad wordt omzeild dat wordt bepaald door routerings- en doorstuurtabellen. U kunt meerdere overeenkomende interface- en uitgangsinterface- of next-hop-waarden in hetzelfde beleid definiëren. U kunt doorstuurbeleid toepassen op omgeschakeld of gerouteerd verkeer. Verkeer kan worden gerouteerd naar dezelfde VRF die wordt gebruikt door de ingangsinterface of naar een andere VRF.
Gebruik op beleid gebaseerde routering om gelijke toegang, protocolgevoelige routering, brongevoelige routering, routering op basis van interactieve vergelijking met batchverkeer en routering op basis van speciale koppelingen te bieden. Op beleid gebaseerde routering is een flexibeler mechanisme voor het routeren van pakketten dan bestemmingsroutering.
Stappen voor het configureren van op beleid gebaseerde routering
Dell SONiC implementeert PBR door een modulair framework te bieden voor het classificeren van verkeer en het toepassen van doorstuuracties, zoals IP next hop instellen, op geselecteerd verkeer.
PBR configureren:
- Classificeer (selecteer) verkeer voor op beleid gebaseerde routering met behulp van ACL's of de L2-, L3- of L4-velden in pakketkoppen.
- Configureer in een beleidskaart de doorstuuracties die moeten worden uitgevoerd voor elke geclassificeerde stroom.
- Pas het doorstuurbeleid toe op inkomende interfaces - globaal op alle switchinterfaces, een opgegeven interface, een VLAN of een poortkanaal

OPMERKING: In Dell SONiC:
- Als binnenkomend verkeer geen overeenkomst vindt in een van de instructies die worden toegepast in een beleidskaart in een interface/vlan/portchannel/globaal, wordt het doorgestuurd volgens de standaardroutetabel.
- Een doorstuurbeleid wordt alleen ondersteund op ingangsinterfaces.
- Doorstuurbeleid kan alleen geselecteerd verkeer doorsturen; ze kunnen geen verkeer vangen, schakelen of routeren naar de CPU.
- Doorstuurbeleid met acties voor volgende hop- en volgende hopgroep is alleen van toepassing op gerouteerd L3-verkeer.
- Doorstuurbeleid dat gebruikmaakt van een ethernet- of poortkanaalinterface is alleen van toepassing op geschakeld L2-verkeer.
- Het doorstuurbeleid is niet van toepassing op verkeer dat bestemd is voor de CPU (het doel-IP-adres is hetzelfde als het switchadres) of verkeer dat vastzit aan de CPU.
- Wanneer u een doorstuurbeleid globaal toepast op alle interfaces, moeten de volgende hops in de standaard VRF staan, tenzij u een niet-standaard VRF instelt met behulp van de opdracht set {ip | ipv6} next-hop ip-address vrf vrf-name in de beleidskaart.
Configuratiesyntaxis
Klassenkaart configureren om verkeer te classificeren
We kunnen het inkomende verkeer classificeren (matchen) door methoden in een klassenkaart te volgen.
- IPv4-, IPv6- of MAC-toegangslijst gebruiken
- L2-L4-headervelden gebruiken
Voer de syntaxis van de opdracht tijdens het gebruik van de toegangslijst uit om overeen te komen met het verkeer in de klassenkaart.
Als we de toegangslijst configureren zodat deze overeenkomt met het verkeer in de klassenkaart, moet u ervoor zorgen dat de toegangslijst wordt geconfigureerd.
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}
Opdrachtsyntaxis bij gebruik van L2-L4-headervelden
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
Beleidskaart configureren
Een PBR-doorstuurbeleid specificeert de doorstuuracties die moeten worden uitgevoerd bij overeenkomend verkeer voor op beleid gebaseerde routering. Een doorstuurbeleid ondersteunt de volgende acties:
- Volgende hop instellen - Routeert IPv4-verkeer naar een IPv4 volgende hop; routeert IPv6-verkeer naar een IPv6 next-hop.
- Next-Hop-groep instellen - Specificeert de groep waaruit het beste Next-Hop IPv4- of IPv6-adres wordt gekozen.
- Interface instellen - Stuur L2-verkeer door naar een gespecificeerde uitgangsinterface.
- Interface null instellen: hiermee wordt overeenkomend verkeer verwijderd als de null-interface is ingesteld of als geen van de opgegeven next-hops bereikbaar is of als de opgegeven uitgangsinterface niet L2 is en verbinding maakt.
- Set replication group - Wordt gebruikt om verkeer naar anycast-servers te repliceren, ontworpen om het hashing-probleem op te lossen zoals beschreven in RFC7690.
Opdrachtsyntaxis
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}
Servicebeleid configureren (beleidskaart toepassen in interface)
Op een interface of subinterface:
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}
Op VLAN-interfaces:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface Vlan {vlan-id}
DELLSONiC(conf-if-Vlan)# service-policy type forwarding in {policy-map-name}
Kanaalinterfaces op de poort,
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface PortChannel {portchannel-number}
DELLSONiC(conf-if-po)# service-policy type forwarding in {policy-map-name}
Wereldwijd op alle switchinterfaces
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}
Verifiëren
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
Voorbeeldconfiguratie
Laten we eens kijken naar de volgende topologie.

We hebben geen route naar 50.0.0.0/24 en 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
Doelstelling:
Het verkeer naar serverfarm 50.0.0.0/24 moet worden gerouteerd naar de volgende hop 20.0.0.2. Het verkeer naar serverfarm 60.0.0.0/24 moet worden gerouteerd naar de volgende hop 30.0.0.2.
Configuratie
Laten we de klassenkaart configureren. Hier classificeren we het verkeer op basis van verschillende parameters.
Plattegrond van de klasse MATCH_IP_OF_SERVER-1 De overeenkomstcriteria zijn DST-IP 50.0.0.0/24.
In het klassenoverzicht MATCH_IP_OF_SERVER-2, zijn de matchcriteria 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#
Laten we de beleidskaart configureren.
Hier definiëren we wat de volgende actie is die moet worden ondernomen als het verkeer overeenkomt met een conditie. In dit geval, als het verkeer overeenkomt met een specifiek doel-IP-adres, wordt het doorgestuurd naar een specifiek IP-adres voor de volgende hop.
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)#
Laten we de Policy map als servicebeleid toepassen op interface 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
Configuratie controleren
Laten we de configuratie van de klassenkaart controleren. Hier kunnen we zien voor MATCH_IP_OF_SERVER-1 De overeenkomstcriteria zijn DST-IP 50.0.0.0/24. In het klassenoverzicht MATCH_IP_OF_SERVER-2, zijn de matchcriteria 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#
De beleidskaart definieert wat de volgende hop is voor een verkeer dat is geclassificeerd onder een klassekaart.
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#
Het servicebeleid definieert waar de beleidskaart moet worden toegepast.
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#
Wat als de volgende hop Down is.
Bedenk dat de volgende hop 20.0.0.2 down is. Zie onderstaande uitvoer. We kunnen zien van toon de service-beleid-interface Eth 1/1 en toon service-policy policy-map FORWARD_TO_SERVERte installeren. In 20.0.0.2 ontbreekt '(geselecteerd)', terwijl 30.0.0.2, dat bereikbaar is, '(geselecteerd)' heeft.
Hier zullen de tellers (packet match en frame) toenemen, maar het pakket zal dalen omdat de volgende hop niet bereikbaar is.
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 is bereikbaar en geselecteerd. 20.0.0.2 is niet bereikbaar en daarom ontbreekt de selectie.
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