Dell Networking SONiC: Konfigurieren von Policy-basiertem Routing

摘要: In diesem Artikel wird anhand eines einfachen Beispiels erläutert, wie Sie Policy-basiertes Routing in Dell Networking SONiC konfigurieren.

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

说明

Voraussetzungen

Wir verwenden Standard-Schnittstellenbenennungen, um die Konzepte zu demonstrieren. Weitere Informationen finden Sie im Artikel Dell Networking S-Serie: Grundlegende Schnittstellenkonfiguration – SONiC 4.0 für weitere Informationen zur Schnittstellenbenennung


Index

 

Was ist Policy-basiertes Routing?

Policy-basiertes Routing (PBR) bietet eine Methode zum Weiterleiten von Paketen, indem die in der IP-Routingtabelle verfügbaren Informationen überschrieben werden. Sie können Policies implementieren, die selektiv bewirken, dass Pakete unterschiedliche Pfade nehmen. Beim herkömmlichen IP-Routing werden Pakete nur basierend auf der Ziel-IP-Adresse im Paket weitergeleitet. PBR kann so konfiguriert werden, dass Pakete basierend auf anderen Kriterien weitergeleitet werden, z. B. TCP/UDP-Portnummern, Quell-IP-Adresse, DSCP-Wert und TCP-Flags. Dell SONiC verwendet flussbasierte Service-Policies für das Policy-basierte Routing. Weiterleitungsrichtlinien bestehen aus Klassenzuordnungen, die Pakete auswählen und Aktionen festlegen, die dazu führen, dass ein Paket an einen vorab festgelegten nächsten Hop oder eine Schnittstelle weitergeleitet wird, wobei der durch Routing- und Weiterleitungstabellen festgelegte Pfad umgangen wird. Sie können mehrere Werte für die Übereinstimmungs- und Ausgangsschnittstelle oder den nächsten Hop in derselben Policy definieren. Sie können Weiterleitungsrichtlinien auf weitergeleiteten oder weitergeleiteten Datenverkehr anwenden. Der Datenverkehr kann auf dieselbe VRF geroutet werden, die von der Eingangsschnittstelle verwendet wird, oder auf eine andere VRF.

Verwenden Sie Policy-basiertes Routing, um gleichen Zugriff, protokollabhängiges Routing, quellenbezogenes Routing, Routing basierend auf interaktivem Vergleich mit Batchdatenverkehr und Routing basierend auf dedizierten Links bereitzustellen. Policy-basiertes Routing ist ein flexiblerer Mechanismus für das Routing von Paketen als das Zielrouting.
 

Schritte zum Konfigurieren von Policy-basiertem Routing

Dell SONiC implementiert PBR durch die Bereitstellung eines modularen Frameworks zur Klassifizierung des Datenverkehrs und zur Anwendung von Weiterleitungsaktionen, wie z. B. dem Festlegen der IP für den nächsten Hop, für ausgewählten Datenverkehr.

So konfigurieren Sie PBR:

  1. Klassifizieren (selektieren) Sie den Datenverkehr für das Policy-basierte Routing mithilfe von ACLs oder den L2-, L3- oder L4-Feldern in Paketheadern.
  2. Konfigurieren Sie in einer Policy-Übersicht die Weiterleitungsaktionen, die für jeden klassifizierten Fluss durchgeführt werden sollen.
  3. Wenden Sie die Weiterleitungs-Policy auf Eingangsschnittstellen an – global auf alle Switchschnittstellen, eine bestimmte Schnittstelle, ein VLAN oder einen Portkanal
In kurzen Worten:

Schritte zum Konfigurieren von Policy-basiertem Routing


HINWEIS: In Dell SONiC:
  • Wenn ein eingehender Datenverkehr keine Übereinstimmung in einer der Anweisungen findet, die in einer Policy Map in einer interface/vlan/portchannel/globally angewendet werden, erfolgt die Weiterleitung gemäß der Standardroutingtabelle.
  • Eine Weiterleitungs-Policy wird nur auf Eingangsschnittstellen unterstützt.
  • Weiterleitungsrichtlinien können nur ausgewählten Datenverkehr weiterleiten. Sie können den Datenverkehr nicht einfangen, umschalten oder an die CPU weiterleiten.
  • Weiterleitungsrichtlinien mit Aktionen für den nächsten Hop und die nächste Hop-Gruppe gelten nur für gerouteten L3-Datenverkehr.
  • Weiterleitungsrichtlinien, die eine Ethernet- oder Portkanal-Ausgangsschnittstelle verwenden, gelten nur für geswitchten L2-Datenverkehr.
  • Weiterleitungsrichtlinien gelten nicht für Datenverkehr, der für die CPU bestimmt ist (die Ziel-IP-Adresse ist identisch mit der Switchadresse) oder Datenverkehr, der an der CPU festgebunden ist.
  • Wenn Sie eine Weiterleitungsrichtlinie global auf alle Schnittstellen anwenden, müssen sich die nächsten Hops in der Standard-VRF befinden, es sei denn, Sie legen eine nicht standardmäßige VRF mit dem Befehl set {ip | ipv6} next-hop ip-address vrf vrf-name in der Policy-Übersicht fest.

 

Konfigurationssyntax

Konfigurieren der Klassenzuordnung zum Klassifizieren des Datenverkehrs

Wir können den eingehenden Datenverkehr klassifizieren (abgleichen), indem wir den Methoden in einer Klassenzuordnung folgen.

  1. Verwenden von IPv4 oder IPv6 oder MAC-Zugriffsliste
  2. Verwenden von L2-L4-Kopfzeilenfeldern

Befehlssyntax bei Verwendung der Zugriffsliste, um den Datenverkehr in der Klassenzuordnung abzugleichen.

Wenn wir die Zugriffsliste so konfigurieren, dass sie mit dem Datenverkehr in der Klassenzuordnung übereinstimmt, stellen Sie sicher, dass Sie die Zugriffsliste konfigurieren.

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}

Befehlssyntax bei Verwendung von L2-L4-Kopfzeilenfeldern

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

 

Konfigurieren der Richtlinienzuordnung

Eine PBR-Weiterleitungsrichtlinie gibt die Weiterleitungsaktionen an, die bei übereinstimmendem Datenverkehr für richtlinienbasiertes Routing durchgeführt werden sollen. Eine Weiterleitungsrichtlinie unterstützt die folgenden Aktionen:

  • Set next hop: Leitet IPv4-Datenverkehr an einen IPv4-Next-Hop weiter. leitet IPv6-Datenverkehr an einen IPv6-Next-Hop weiter.
  • Set next-hop group: Gibt die Gruppe an, aus der die beste IPv4- oder IPv6-Adresse für den nächsten Hop ausgewählt wird.
  • Set interface: Weiterleiten des L2-Datenverkehrs an eine angegebene Ausgangsschnittstelle.
  • Set interface null: Löscht übereinstimmenden Datenverkehr, wenn die Nullschnittstelle festgelegt ist oder wenn keiner der angegebenen nächsten Hops erreichbar ist oder wenn die angegebene Ausgangsschnittstelle nicht L2 ist und eine Verbindung hergestellt wird.
  • Set replication group – Wird verwendet, um Datenverkehr an Anycast-Server zu replizieren, um das Hashing-Problem zu beheben, wie in RFC7690 beschrieben.

Befehlssyntax

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}

 

Konfigurieren der Servicerichtlinie (Anwenden der Richtlinienzuordnung in der Schnittstelle)

Auf einer Schnittstelle oder Unterschnittstelle:

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}

Auf VLAN-Schnittstellen:

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

Auf Portkanalschnittstellen

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

Global auf allen Switchschnittstellen

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}

 

Prüfen

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

 

Beispielkonfiguration

Betrachten wir die folgende Topologie.

Topologie

Wir haben keine Route zu 50.0.0.0/24 und 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

 

Ziel:

Der Datenverkehr zur Serverfarm 50.0.0.0/24 soll an den nächsten Hop 20.0.0.2 weitergeleitet werden. Der Datenverkehr zur Serverfarm 60.0.0.0/24 soll an den nächsten Hop 30.0.0.2 weitergeleitet werden.
 

Konfiguration

Lassen Sie uns die Class Map konfigurieren. Hier klassifizieren wir den Traffic anhand verschiedener Parameter.
Klassenübersicht MATCH_IP_OF_SERVER-1 Das Übereinstimmungskriterium ist DST-IP 50.0.0.0/24.
In der Klassenübersicht MATCH_IP_OF_SERVER-2, die Übereinstimmungskriterien lauten 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#

Lassen Sie uns die Policy Map konfigurieren.
Hier definieren wir, was als nächstes zu tun ist, wenn der Datenverkehr einer Bedingung entspricht. Wenn der Datenverkehr in diesem Fall mit einer bestimmten Ziel-IP-Adresse übereinstimmt, leiten Sie an eine bestimmte IP-Adresse des nächsten Hops weiter.

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

Lassen Sie uns die Policy map als Service-Policy auf die Schnittstelle Eth 1/1 anwenden.

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


Überprüfen Sie die Konfiguration

Schauen wir uns die Konfiguration der Klassenzuordnung an. Hier sehen wir für MATCH_IP_OF_SERVER-1 Die Übereinstimmungskriterien sind DST-IP 50.0.0.0/24. In der Klassenübersicht MATCH_IP_OF_SERVER-2, die Übereinstimmungskriterien lauten 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#

Die Policy Map definiert, was der nächste Hop für einen Datenverkehr ist, der unter einer Klassenzuordnung klassifiziert ist.

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#

Die Service-Policy definiert, wo die Policy Map angewendet werden soll.

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#

 

Was passiert, wenn der nächste Hop "Down" ist?

Angenommen, der nächste Hop 20.0.0.2 ist ausgefallen. Siehe Ausgabe unten. Wir können in show the service-policy interface Eth 1/1 und show service-policy policy-map sehen FORWARD_TO_SERVER. 20.0.0.2 fehlt "(selected)", während 30.0.0.2, das erreichbar ist, "(selected)" aufweist.

Hier werden die Zähler (Paketübereinstimmung und Frame) inkrementiert, aber das Paket wird verworfen, da der nächste Hop nicht erreichbar ist.

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 ist erreichbar und ausgewählt. 20.0.0.2 ist nicht erreichbar und daher fehlt die Auswahl.

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