Dell Networking SONiC: Käytäntöpohjaisen reitityksen määrittäminen
摘要: Tässä artikkelissa selitetään, miten käytäntöpohjainen reititys määritetään Dell Networking SONiC:ssa yksinkertaisen esimerkin avulla.
说明
EdellytyksetKäytämme vakiorajapintojen nimityksiä käsitteiden havainnollistamiseen. Katso artikkeli Dell Networking S-Series: Basic Interface Configuration - SONiC 4.0 tarjoaa lisätietoja liittymien nimeämisestä |
Indeksi
- Mikä on käytäntöpohjainen reititys?
- Käytäntöpohjaisen reitityksen määritysohjeet:
- Konfiguraation syntaksi
- Esimerkkimääritys
Mikä on käytäntöpohjainen reititys?
Policy-Based Routing (PBR) tarjoaa menetelmän pakettien välittämiseen ohittamalla IP-reititystaulukossa olevat tiedot. Voit ottaa käyttöön käytäntöjä, jotka valikoivasti saavat paketit kulkemaan eri polkuja. Perinteinen IP-reititys välittää paketit vain paketin kohde-IP-osoitteen perusteella. PBR voidaan määrittää välittämään paketteja muiden ehtojen, kuten TCP/UDP-porttinumeroiden, lähteen IP-osoitteen, DSCP-arvon ja TCP-lippujen perusteella. Dell SONiC käyttää käytäntöpohjaiseen reititykseen työnkulkupohjaisia palvelukäytäntöjä. Edelleenlähetyskäytännöt koostuvat luokkakartoista, jotka valitsevat paketit ja asettavat toimintoja, jotka aiheuttavat paketin välittämisen ennalta määrättyyn seuraavaan hyppyyn tai käyttöliittymään ohittaen reititys- ja edelleenlähetystaulukoiden määrittämän polun. Voit määrittää useita vastaavuuden ja lähtevän liittymän tai seuraavan hypyn arvoja samassa käytännössä. Voit käyttää edelleenlähetyskäytäntöjä vaihdetulle tai reititetylle liikenteelle. Liikenne voidaan reitittää samaan VRF:ään, jota sisääntulorajapinta käyttää, tai eri VRF:ään.
Käytäntöihin perustuvan reitityksen avulla voit tarjota yhtäläiset käyttöoikeudet, protokollasidonnaisen reitityksen, lähteen huomioon ottavan reitityksen, vuorovaikutteiseen eräliikenteeseen vertaamisen ja erillisiin linkkeihin perustuvan reitityksen. Käytäntöpohjainen reititys on joustavampi mekanismi pakettien reitittämiseen kuin määränpään reititys.
Käytäntöpohjaisen reitityksen määritysohjeet
Dell SONiC toteuttaa PBR:n tarjoamalla modulaarisen kehyksen liikenteen luokitteluun ja edelleenlähetystoimintojen, kuten seuraavan IP-osoitteen siirron, käyttöönottoon valitussa liikenteessä.
PBR:n määrittäminen:
- Luokittele (valitse) käytäntöpohjaisen reitityksen liikenne käyttöoikeusluetteloiden tai pakettiotsikoiden L2-, L3- tai L4-kenttien avulla.
- Määritä käytäntökartassa kullekin luokitellulle työnkululle suoritettavat edelleenlähetystoiminnot.
- Käytä edelleenlähetyskäytäntöä sisääntuloliitännöissä – yleisesti kaikissa kytkinliitännöissä, määritetyssä liittymässä, VLAN-verkossa tai porttikanavassa

HUOMAUTUS: In Dell SONiC:
- Jos saapuva liikenne ei löydä vastinetta jostakin käytäntökartan lausekkeesta liittymässä/vlan/portchannel/global, se välitetään vakioreittitaulukon mukaisesti.
- Edelleenlähetyskäytäntöä tuetaan vain sisääntuloliittymissä.
- Edelleenlähetyskäytännöt voivat välittää vain valittua liikennettä; ne eivät voi vangita, vaihtaa tai reitittää liikennettä suorittimeen.
- Edelleenlähetyskäytännöt, joissa on next hop- ja next-hop-group-toimintoja, koskevat vain reititettyä L3-liikennettä.
- Ethernet- tai porttikanavan uloskäyntiliitäntää käyttävät edelleenlähetyskäytännöt koskevat vain kytkettyä L2-liikennettä.
- Edelleenlähetyskäytännöt eivät koske suorittimeen suuntautuvaa liikennettä (IP-kohdeosoite on sama kuin kytkimen osoite) tai suorittimeen loukkuun jäänyttä liikennettä.
- Kun käytät edelleenlähetyskäytäntöä yleisesti kaikissa liittymissä, seuraavan hypyn on oltava oletusarvoisessa VRF:ssä, ellet määritä muuta kuin oletusarvoista VRF:ää käytäntökartan komennolla set {ip | ipv6} next-hop ip-address vrf vrf-name.
Konfiguraation syntaksi
Luokkakartan määrittäminen liikenteen luokittelua varten
Voimme luokitella (sovittaa) saapuvan liikenteen seuraamalla luokkakartan menetelmiä.
- IPv4:n, IPv6:n tai MAC:n käyttäminen Käyttöoikeusluettelo
- L2–L4-otsikkokenttien käyttäminen
Komennon syntaksi Access-luetteloa käytettäessä luokkakartan liikenteen täsmäämiseksi.
Jos määritämme käyttöoikeusluettelon vastaamaan luokkakartan liikennettä, varmista, että määrität käyttöoikeusluettelon.
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}
Komennon syntaksi L2–L4-otsikkokenttiä käytettäessä
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
Käytäntökartan määrittäminen
PBR-edelleenlähetyskäytäntö määrittää edelleenlähetystoiminnot, joilla liikenne täsmäytetään käytäntöpohjaiseen reititykseen. Edelleenlähetyskäytäntö tukee seuraavia toimintoja:
- Aseta seuraava hyppy - Reitittää IPv4-liikenteen seuraavaan IPv4-hyppyyn; reitittää IPv6-liikenteen seuraavaan IPv6-siirtoon.
- Aseta seuraavan hypyn ryhmä – Määrittää ryhmän, josta paras seuraavan hypyn IPv4- tai IPv6-osoite valitaan.
- Aseta liittymä - Välitä L2-liikenne määritettyyn lähtevään liitäntään.
- Aseta käyttöliittymän null - Pudottaa vastaavan liikenteen, jos null-liitäntä on asetettu tai jos mikään määritetyistä seuraavista hypyistä ei ole tavoitettavissa tai jos määritetty lähtevä rajapinta ei ole L2 ja linkitä ylös.
- Aseta replikointiryhmä - Käytetään liikenteen replikointiin anycast-palvelimiin, suunniteltu ratkaisemaan hajautusongelma kohdassa RFC7690 kuvatulla tavalla.
Komennon syntaksi
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}
Palvelukäytännön määrittäminen (käytäntökartan käyttäminen liittymässä)
Rajapinnassa tai alirajapinnassa:
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}
VLAN-liitännöissä:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface Vlan {vlan-id}
DELLSONiC(conf-if-Vlan)# service-policy type forwarding in {policy-map-name}
Porttikanavien liitännöissä,
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface PortChannel {portchannel-number}
DELLSONiC(conf-if-po)# service-policy type forwarding in {policy-map-name}
Maailmanlaajuisesti kaikissa kytkinliitännöissä
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}
Tarkista
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
Esimerkkimääritys
Tarkastellaan seuraavaa topologiaa.

DELLSONiC:llä ei ole reittejä 50.0.0.0/24- ja 60.0.0.0/24-versioihin.
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
Tavoite:
Liikenne palvelinklusteriin 50.0.0.0/24 reititetään seuraavaan 20.0.0.2-siirtoon. Liikenne palvelinklusteriin 60.0.0.0/24 reititetään seuraavaan 30.0.0.2-siirtoon.
Määritys
Määritetään luokkakartta. Tässä luokittelemme liikenteen eri parametrien perusteella.
Luokan kartta MATCH_IP_OF_SERVER-1 Vastaavuuskriteeri on DST-IP 50.0.0.0/24.
Luokkakartalla MATCH_IP_OF_SERVER-2, vastaavuuskriteerit ovat 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#
Määritetään käytäntökartta.
Tässä määritetään, miten seuraavaksi on toimittava, jos liikenne vastaa tilannetta. Tässä tapauksessa, jos liikenne vastaa tiettyä kohde-IP-osoitetta, välitä tiettyyn seuraavan hypyn IP-osoitteeseen.
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)#
Sovelletaan käytäntökarttaa palvelukäytäntönä Eth 1/1:n käyttöliittymään.
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
Määritysten tarkistaminen
Tarkistetaan luokkakartan kokoonpano. Tässä voimme nähdä MATCH_IP_OF_SERVER-1 Vastaavuuskriteerit ovat DST-IP 50.0.0.0/24. Luokkakartalla MATCH_IP_OF_SERVER-2, vastaavuuskriteerit ovat 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#
Käytäntökartta määrittää, mikä on luokkakartan alle luokitellun liikenteen seuraava hypy.
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#
Palvelukäytäntö määrittää, missä käytäntökarttaa käytetään.
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#
Entä jos seuraava hyppy on Down.
Harkitse, että seuraava hyppy 20.0.0.2 on Down. Katso alla oleva tuotos. Voimme nähdä palvelukäytäntöliittymän Eth 1/1 ja näyttää palvelukäytäntökäytäntökartan FORWARD_TO_SERVER. 20.0.0.2 puuttuu "(valittu)", kun taas 30.0.0.2, joka on tavoitettavissa, on "(valittu)".
Tässä laskurit (pakettiottelu ja kehys) kasvavat, mutta paketti putoaa, koska seuraava hyppy ei ole tavoitettavissa.
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 on tavoitettavissa ja valittu. 20.0.0.2 ei ole tavoitettavissa, joten valittu puuttuu.
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