Dell Networking SONiC: Politika tabanlı yönlendirmeyi yapılandırma
摘要: Bu makalede, basit bir örnekle Dell Networking SONIC te Politika Tabanlı Yönlendirmenin nasıl yapılandırılacağı açıklanmaktadır.
说明
ÖnkoşullarKavramları göstermek için standart arabirim adlandırmaları kullanıyoruz. Dell Networking S Serisi: Arayüz adlandırma hakkında daha fazla bilgi için Temel Arayüz Yapılandırması - SONiC 4.0 |
Dizin
- Politika Tabanlı Yönlendirme Nedir?
- İlke Tabanlı Yönlendirmeyi yapılandırma adımları.
- Yapılandırma Söz Dizimi
- Örnek Yapılandırma
Politika Tabanlı Yönlendirme Nedir?
İlke Tabanlı Yönlendirme (PBR), IP yönlendirme tablosunda bulunan bilgileri geçersiz kılarak paketleri iletmek için bir yöntem sağlar. Paketlerin farklı yollar izlemesine seçici olarak neden olan ilkeler uygulayabilirsiniz. Geleneksel IP yönlendirme, paketleri yalnızca paketteki hedef IP adresine göre iletir. PBR, TCP/UDP bağlantı noktası numaraları, kaynak IP adresi, DSCP değeri ve TCP bayrakları gibi diğer kriterlere göre paketleri iletmek üzere yapılandırılabilir. Dell SONiC, ilke tabanlı yönlendirme için akış tabanlı servis ilkeleri kullanır. İletme ilkeleri, paketleri seçen ve yönlendirme ve iletme tabloları tarafından belirlenen yolu atlayarak bir paketin önceden belirlenmiş bir sonraki atlama veya arabirime iletilmesine neden olan eylemleri ayarlayan sınıf eşlemelerinden oluşur. Aynı politikada birden fazla eşleşme ve çıkış arayüzü veya sonraki atlama değeri tanımlayabilirsiniz. Yönlendirilen veya yönlendirilen trafiğe yönlendirme politikaları uygulayabilirsiniz. Trafik, giriş arayüzü tarafından kullanılan aynı VRF'ye veya farklı bir VRF'ye yönlendirilebilir.
Eşit erişim, protokole duyarlı yönlendirme, kaynağa duyarlı yönlendirme, toplu trafikle etkileşimli karşılaştırmaya dayalı yönlendirme ve özel bağlantılara dayalı yönlendirme sağlamak için ilke tabanlı yönlendirmeyi kullanın. İlke tabanlı yönlendirme, paketleri yönlendirmek için hedef yönlendirmeye göre daha esnek bir mekanizmadır.
Politika Tabanlı Yönlendirmeyi yapılandırma adımları
Dell SONiC, trafiği sınıflandırmak ve seçilen trafiğe IP sonraki atlamayı ayarlama gibi iletme eylemleri uygulamak için modüler bir çerçeve sağlayarak PBR yi uygular.
PBR'yi yapılandırmak için:
- Paket başlıklarında ACL'leri veya L2, L3 veya L4 alanlarını kullanarak politika tabanlı yönlendirme için trafiği sınıflandırın (seçin).
- Bir ilke haritasında, sınıflandırılmış her akış üzerinde gerçekleştirilecek iletme eylemlerini yapılandırın.
- İletim politikasını giriş arayüzlerine - genel olarak tüm anahtar arayüzlerinde, belirli bir arayüzde, bir VLAN veya bir bağlantı noktası kanalında uygulayın

NOT: Dell SONiC'de:
- Gelen trafik, interface/vlan/portchannel/global içindeki bir politika haritasında uygulanan ifadelerin hiçbirinde eşleşme bulamazsa standart yönlendirme tablosuna göre iletir.
- İletim politikası yalnızca giriş arayüzlerinde desteklenir.
- Yönlendirme politikaları yalnızca seçili trafiği yönlendirebilir; CPU'ya giden trafiği yakalayamaz, değiştiremez veya yönlendiremezler.
- Sonraki atlama ve sonraki atlama grubu işlemlerine sahip yönlendirme politikaları yalnızca yönlendirilmiş L3 trafiğinde geçerlidir.
- Ethernet veya bağlantı noktası kanalı çıkış arayüzü kullanan yönlendirme politikaları yalnızca anahtarlamalı L2 trafiğinde geçerlidir.
- İletme ilkeleri, CPU'yu hedefleyen trafiğe (hedef IP adresi, anahtar adresiyle aynıdır) veya CPU'ya hapsolmuş trafiğe uygulanmaz.
- Bir iletme ilkesini tüm arayüzlere genel olarak uyguladığınızda ilke eşlemesinde set {ip | ipv6} next-hop ip-address vrf vrf-name komutunu kullanarak varsayılan olmayan bir VRF ayarlamadığınız sürece, sonraki atlamalar varsayılan VRF'de olmalıdır.
Yapılandırma Söz Dizimi
Trafiği sınıflandırmak için sınıf eşlemesini yapılandırma
Gelen trafiği bir sınıf haritasında aşağıdaki yöntemlerle sınıflandırabiliriz (eşleştirebiliriz).
- IPv4 veya IPv6 veya MAC Erişim listesini kullanma
- L2-L4 başlık alanlarını kullanma
Sınıf haritasındaki trafikle eşleştirmek için Access listesini kullanırken komut söz dizimi.
Erişim listesini Sınıf haritasındaki trafikle eşleşecek şekilde yapılandırıyorsak erişim listesini yapılandırdığımızdan emin olun.
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}
L2-L4 başlık alanlarını kullanırken komut söz dizimi
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
Politika Eşlemesini Yapılandırma
PBR iletme politikası, politika tabanlı yönlendirme için eşleşen trafik üzerinde gerçekleştirilecek iletme eylemlerini belirtir. İletim politikası aşağıdaki eylemleri destekler:
- Sonraki atlamayı ayarla - IPv4 trafiğini bir IPv4 sonraki atlamaya yönlendirir; IPv6 trafiğini bir IPv6 sonraki atlamaya yönlendirir.
- Sonraki atlama grubunu ayarla - En iyi sonraki atlama IPv4 veya IPv6 adresinin seçildiği grubu belirtir.
- Arayüzü ayarla - L2 trafiğini belirli bir çıkış arayüzüne iletir.
- Set interface null - Null arabirim ayarlanmışsa veya belirtilen sonraki atlamalardan hiçbirine erişilemiyorsa ya da belirtilen çıkış arayüzü L2 ve bağlantı çalışmıyorsa eşleşen trafiği bırakır.
- Çoğaltma grubunu ayarla - RFC7690'de açıklandığı gibi karma sorununu çözmek için tasarlanmış, herhangi bir noktaya yayın sunucularına giden trafiği çoğaltmak için kullanılır.
Komut Söz Dizimi
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}
Servis İlkesini Yapılandırma (Politika eşlemesini arayüzde uygulama)
Bir arayüzde veya alt arayüzde:
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 arayüzlerinde:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# interface Vlan {vlan-id}
DELLSONiC(conf-if-Vlan)# service-policy type forwarding in {policy-map-name}
Port kanalı arayüzlerinde,
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 olarak tüm anahtar arayüzlerinde
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}
Doğrulama
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
Örnek Yapılandırma
Aşağıdaki topolojiyi ele alalım.

DELLSONiC'de 50.0.0.0/24 ve 60.0.0.0/24 için bir rotamız yok.
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
Amaç:
50.0.0.0/24 sunucu grubuna gelen trafik, bir sonraki atlama 20.0.0.2'ye yönlendirilmelidir. 60.0.0.0/24 sunucu grubuna gelen trafik, bir sonraki atlama 30.0.0.2'ye yönlendirilmelidir.
Yapılandırma
Sınıf Haritasını yapılandıralım. Burada trafiği çeşitli parametrelere göre sınıflandırıyoruz.
Sınıf Haritası MATCH_IP_OF_SERVER-1 Eşleşme kriterleri DST-IP 50.0.0.0/24'tür.
Sınıf haritasında MATCH_IP_OF_SERVER-2, eşleşme kriterleri DST-IP 60.0.0.0/24'tür.
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#
Politika Haritasını yapılandıralım.
Burada, trafik bir koşulla eşleşirse yapılacak bir sonraki eylemin ne olduğunu tanımlarız. Bu durumda, trafik belirli bir hedef IP adresiyle eşleşiyorsa belirli bir sonraki atlama IP'sine iletin.
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)#
Eth 1/1 arayüzünü oluşturmak için Policy map'i hizmet politikası olarak uygulayalım.
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
Yapılandırma Doğrulama
Sınıf eşlemesi yapılandırmasını kontrol edelim. Burada şunları görebiliriz MATCH_IP_OF_SERVER-1 Eşleşme kriterleri DST-IP 50.0.0.0/24'tür. Sınıf haritasında MATCH_IP_OF_SERVER-2, eşleşme kriterleri DST-IP 60.0.0.0/24'tür.
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#
İlke haritası, bir sınıf haritası altında sınıflandırılan bir trafik için bir sonraki atlamanın ne olduğunu tanımlar.
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#
Hizmet politikası, politika eşlemesinin uygulanacağı yeri tanımlar.
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#
Bir sonraki atlama Down ise ne olur?
Bir sonraki atlama 20.0.0.2'nin Aşağı olduğunu düşünün. Aşağıdaki çıktıya bakın. service-policy interface Eth 1/1 ve show service-policy policy-map bölümlerinden bunu görebiliriz FORWARD_TO_SERVER. 20.0.0.2'de "(seçili)" eksikken, ulaşılabilir olan 30.0.0.2'de "(seçili)" ifadesi var.
Burada sayaçlar (paket eşleşmesi ve çerçeve) artar, ancak bir sonraki atlamaya ulaşılamadığı için paket düşer.
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'ye ulaşılabilir ve seçilebilir. 20.0.0.2'ye ulaşılamıyor ve bu nedenle seçili eksik.
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