Dell Networking SONiC: Konfigurowanie routingu opartego na zasadach
摘要: W tym artykule na prostym przykładzie wyjaśniono, jak skonfigurować routing oparty na zasadach w systemie SONiC sieci firmy Dell.
说明
Wymagania wstępneUżywamy standardowego nazewnictwa interfejsów, aby zademonstrować koncepcje. Zapoznaj się z artykułem Dell Networking z serii S: Podstawowa konfiguracja interfejsu — SONiC 4.0 , aby uzyskać więcej informacji na temat nazewnictwa interfejsów |
Indeks
- Co to jest routing oparty na zasadach?
- Kroki konfiguracji routingu opartego na zasadach.
- Składnia konfiguracji
- Przykładowa konfiguracja
Co to jest routing oparty na zasadach?
Routing oparty na zasadach (PBR) zapewnia metodę przesyłania dalej pakietów przez zastąpienie informacji dostępnych w tabeli routingu IP. Można zaimplementować zasady, które selektywnie powodują, że pakiety obierają różne ścieżki. Tradycyjny routing IP przekazuje pakiety tylko na podstawie docelowego adresu IP w pakiecie. PBR można skonfigurować do przekazywania pakietów na podstawie innych kryteriów, takich jak numery portów TCP/UDP, źródłowy adres IP, wartość DSCP i flagi TCP. Usługa Dell SONiC używa zasad usług opartych na przepływach do routingu opartego na zasadach. Zasady przekazywania składają się z map klas, które wybierają pakiety i ustawiają akcje, które powodują, że pakiet jest przekazywany do z góry określonego następnego przeskoku lub interfejsu, z pominięciem ścieżki określonej przez tabele routingu i przekazywania. W tych samych zasadach można zdefiniować wiele wartości interfejsu dopasowania i ruchu wychodzącego lub następnego przeskoku. Zasady przekazywania można zastosować do ruchu przełączanego lub kierowanego. Ruch może być kierowany do tego samego VRF, który jest używany przez interfejs ruchu przychodzącego, lub do innego VRF.
Użyj routingu opartego na zasadach, aby zapewnić równy dostęp, routing wrażliwy na protokół, routing wrażliwy na źródło, routing oparty na interaktywnym porównaniu z ruchem wsadowym i routing oparty na dedykowanych linkach. Routing oparty na zasadach jest bardziej elastycznym mechanizmem routingu pakietów niż routing docelowy.
Etapy konfigurowania routingu opartego na zasadach
Technologia Dell SONiC implementuje PBR, udostępniając modułową strukturę do klasyfikowania ruchu i stosowania działań przekazywania, takich jak ustawienie następnego przeskoku adresu IP dla wybranego ruchu.
Aby skonfigurować PBR:
- Klasyfikowanie (wybieranie) ruchu na potrzeby routingu opartego na zasadach przy użyciu list ACL lub pól L2, L3 lub L4 w nagłówkach pakietów.
- Na mapie zasad skonfiguruj akcje przekazywania, które mają być wykonywane w każdym sklasyfikowanym przepływie.
- Stosowanie zasad przekazywania na interfejsach przychodzących — globalnie na wszystkich interfejsach przełącznika, określonym interfejsie, sieci VLAN lub kanale portów

UWAGA: W systemie Dell SONiC:
- Jeśli ruch przychodzący nie znajdzie dopasowania w żadnej z instrukcji zastosowanych w mapie zasad w interfejsie/vlan/portchannel/globally, przekaże dalej zgodnie z tabelą tras standardowych.
- Zasady przekazywania są obsługiwane tylko na interfejsach ruchu przychodzącego.
- Zasady przekazywania mogą przekazywać tylko wybrany ruch; nie mogą przechwytywać, przełączać ani kierować ruchu do procesora.
- Zasady przekazywania z akcjami następnego przeskoku i następnej grupy mają zastosowanie tylko do kierowanego ruchu L3.
- Zasady przekazywania korzystające z interfejsu wychodzącego Ethernet lub kanału portów mają zastosowanie tylko do przełączanego ruchu L2.
- Zasady przekazywania nie mają zastosowania do ruchu kierowanego do procesora (docelowy adres IP jest taki sam jak adres przełącznika) ani ruchu, który jest uwięziony w procesorze.
- W przypadku stosowania zasad przekazywania globalnie na wszystkich interfejsach następne przeskoki muszą znajdować się w domyślnym VRF, chyba że ustawiono niedomyślny VRF za pomocą polecenia set {ip | ipv6} next-hop ip-address vrf vrf-name na mapie zasad.
Składnia konfiguracji
Konfigurowanie mapy klas w celu klasyfikowania ruchu
Możemy sklasyfikować (dopasować) ruch przychodzący za pomocą metod na mapie klas.
- Korzystanie z IPv4, IPv6 lub MAC Lista dostępu
- Korzystanie z pól nagłówka L2–L4
Składnia poleceń podczas korzystania z listy programu Access w celu dopasowania ruchu na mapie klas.
Jeśli konfigurujemy listę dostępu tak, aby odpowiadała ruchowi na mapie klas, pamiętaj o skonfigurowaniu listy dostępu.
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}
Składnia polecenia podczas korzystania z pól nagłówka L2–L4
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
Konfiguracja mapy zasad
Zasady przekazywania PBR określają akcje przekazywania, które mają być wykonywane w przypadku pasowania ruchu do routingu opartego na zasadach. Zasady przekazywania obsługują następujące akcje:
- Ustaw następny przeskok — kieruje ruch IPv4 do następnego przeskoku IPv4; kieruje ruch IPv6 do następnego przeskoku IPv6.
- Ustaw grupę następnego przeskoku — określa grupę, z której jest wybierany najlepszy adres IPv4 lub IPv6 następnego przeskoku.
- Ustawianie interfejsu — przekazywanie ruchu L2 do określonego interfejsu ruchu wychodzącego.
- Set interface null — porzuca pasujący ruch, jeśli interfejs o wartości null jest ustawiony lub jeśli żaden z określonych następnych przeskoków nie jest osiągalny lub jeśli określony interfejs ruchu wychodzącego nie jest L2 i łączy się.
- Ustawianie grupy replikacji — służy do replikowania ruchu do serwerów emisji dowolnej w celu rozwiązania problemu z mieszaniem zgodnie z opisem w RFC7690.
Składnia polecenia
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}
Konfiguracja zasad serwisowych (stosowanie mapy zasad w interfejsie)
W interfejsie lub podinterfejsie:
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}
Na interfejsach VLAN:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface Vlan {vlan-id}
DELLSONiC(conf-if-Vlan)# service-policy type forwarding in {policy-map-name}
Interfejsy kanałów portowych,
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface PortChannel {portchannel-number}
DELLSONiC(conf-if-po)# service-policy type forwarding in {policy-map-name}
Globalnie na wszystkich interfejsach przełącznika
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}
Weryfikacja
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
Przykładowa konfiguracja
Rozważmy następującą topologię.

Nie mamy trasy do 50.0.0.0/24 i 60.0.0.0/24 w systemie 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
Cel:
Ruch do farmy serwerów 50.0.0.0/24 ma być kierowany do następnego przeskoku 20.0.0.2. Ruch do farmy serwerów 60.0.0.0/24 ma być kierowany do następnego przeskoku 30.0.0.2.
Konfiguracja
Skonfigurujmy mapę klas. Tutaj klasyfikujemy ruch na podstawie różnych parametrów.
Mapa klas MATCH_IP_OF_SERVER-1 Kryterium dopasowania to DST-IP 50.0.0.0/24.
Na mapie klasy MATCH_IP_OF_SERVER-2, kryteria dopasowania to 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#
Skonfigurujmy mapę zasad.
W tym miejscu określamy, jaka jest następna akcja, która ma zostać podjęta, jeśli ruch spełnia warunek. W takim przypadku, jeśli ruch jest zgodny z określonym docelowym adresem IP, przekaż do określonego adresu IP następnego przeskoku.
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)#
Zastosujmy mapę polityki jako politykę usługi do interfejsu 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
Weryfikacja konfiguracji
Sprawdźmy konfigurację mapy klas. Tutaj możemy zobaczyć dla MATCH_IP_OF_SERVER-1 Kryteria dopasowania to: DST-IP 50.0.0.0/24. Na mapie klasy MATCH_IP_OF_SERVER-2, kryteria dopasowania to 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#
Mapa zasad definiuje, jaki jest następny przeskok dla ruchu sklasyfikowanego w ramach mapy klas.
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#
Zasady usługi definiują miejsce, w którym ma zostać zastosowana mapa zasad.
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#
Co zrobić, jeśli następny przeskok to Down.
Weź pod uwagę, że następny przeskok 20.0.0.2 nie działa. Zobacz poniższe dane wyjściowe. Możemy zobaczyć z show interfejs service-policy Eth 1/1 i show service-policy policy-map FORWARD_TO_SERVER. W wersji 20.0.0.2 brakuje "(selected)", a w wersji 30.0.0.2, która jest osiągalna, brakuje "(selected)".
Tutaj liczniki (dopasowanie pakietu i ramka) będą się zwiększać, jednak pakiet zostanie odrzucony, ponieważ następny przeskok nie jest osiągalny.
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
Wersja 30.0.0.2 jest osiągalna i wybrana. Wersja 20.0.0.2 jest nieosiągalna i dlatego brakuje wybranych.
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