Dell Networking SONiC: Як налаштувати маршрутизацію на основі політик

摘要: У цій статті пояснюється, як налаштувати маршрутизацію на основі політик у Dell Networking SONiC на простому прикладі.

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

说明

Передумови

Ми використовуємо стандартні імена інтерфейсів для демонстрації концепцій. Дивіться статтю Dell Networking S-Series: Базова конфігурація інтерфейсу - SONiC 4.0 для отримання додаткової інформації про іменування інтерфейсів


Індекс

 

Що таке маршрутизація на основі правил?

Маршрутизація на основі політик (PBR) надає метод пересилання пакетів, перевизначаючи інформацію, доступну в таблиці маршрутизації IP. Ви можете впровадити політики, які вибірково змушують пакети йти різними шляхами. Традиційна IP-маршрутизація пересилає пакети лише на основі IP-адреси призначення в пакеті. PBR можна налаштувати для пересилання пакетів на основі інших критеріїв, таких як номери портів TCP/UDP, IP-адреса джерела, значення DSCP і прапорці TCP. Dell SONiC використовує сервісні політики на основі потоків для маршрутизації на основі політик. Політики пересилання складаються з карт класів, які вибирають пакети і встановлюють дії, які призводять до пересилання пакета в заздалегідь визначений наступний перехід або інтерфейс, минаючи шлях, визначений таблицями маршрутизації та пересилання. Ви можете визначити декілька значень інтерфейсу відповідності та виходу або наступного переходу в одній політиці. Ви можете застосувати правила переадресації до комутованого або маршрутизованого трафіку. Трафік може бути спрямований на ту саму VRF, яка використовується інтерфейсом проникнення, або на іншу VRF.

Використовуйте маршрутизацію на основі політик, щоб забезпечити рівний доступ, маршрутизацію з урахуванням протоколу, маршрутизацію з урахуванням джерела, маршрутизацію на основі інтерактивного порівняння з пакетним трафіком і маршрутизацію на основі виділених посилань. Маршрутизація на основі політик є більш гнучким механізмом маршрутизації пакетів, ніж маршрутизація призначення.
 

Кроки для налаштування маршрутизації на основі політик

Dell SONiC реалізує PBR, надаючи модульну структуру для класифікації трафіку та застосування дій переадресації, таких як встановлення IP-адреси наступного переходу, для вибраного трафіку.

Щоб налаштувати PBR:

  1. Класифікуйте (вибирайте) трафік для маршрутизації на основі політик за допомогою списків керування доступом (ACL) або полів L2, L3 або L4 у заголовках пакетів.
  2. На карті правил налаштуйте дії пересилання для кожного класифікованого потоку.
  3. Застосовуйте політику переадресації до інтерфейсів вхідних даних — глобально для всіх інтерфейсів комутаторів, визначеного інтерфейсу, VLAN або каналу портів
У двох словах:

Кроки для налаштування маршрутизації на основі політик


ПРИМІТКА: У Dell SONiC:
  • Якщо вхідний трафік не знаходить збігу в жодному з тверджень, застосованих на карті правил в інтерфейсі/vlan/portchannel/глобально, він переспрямовується відповідно до стандартної таблиці маршрутів.
  • Політика пересилання підтримується лише на інтерфейсах вхідних даних.
  • Правила переадресації можуть пересилати лише вибраний трафік. вони не можуть перехоплювати, перемикати або направляти трафік до центрального процесора.
  • Правила переадресації з діями «наступний перехід» і «наступна група переходів» застосовуються лише до маршрутизованого трафіку L3.
  • Політики переадресації, які використовують інтерфейс виходу з каналу Ethernet або порту, застосовуються лише до комутованого трафіку L2.
  • Політики переадресації не застосовуються до трафіку, призначеного для центрального процесора (IP-адреса призначення збігається з адресою комутатора) або трафіку, який перехоплюється на центральний процесор.
  • Якщо ви застосовуєте політику пересилання глобально для всіх інтерфейсів, наступні переходи мають бути у типовій VRF, якщо ви не встановите нетиповий VRF за допомогою команди set {ip | ipv6} next-hop ip-address vrf vrf-name на карті правил.

 

Синтаксис конфігурації

Налаштуйте карту класів для класифікації трафіку

Ми можемо класифікувати (зіставити) вхідний трафік, дотримуючись методів у карті класів.

  1. Використання IPv4 або IPv6 або списку доступу до MAC
  2. Використання полів заголовка L2-L4

Синтаксис команд під час використання списку Access для узгодження трафіку на карті класів.

Якщо ми налаштовуємо список Access так, щоб він відповідав трафіку на карті Class, переконайтеся, що ви налаштували список доступу.

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

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

 

Налаштування карти політик

Політика переадресації PBR визначає, які дії з пересилання мають бути виконані для узгодження трафіку для маршрутизації на основі правил. Політика пересилання підтримується наведеними нижче діями.

  • Set next hop - спрямовує трафік IPv4 на наступний перехід IPv4; спрямовує трафік IPv6 до наступного переходу IPv6.
  • Set next-hop group - Визначає групу, з якої буде вибрано найкращу адресу IPv4 або IPv6 наступного переходу.
  • Встановити інтерфейс - переспрямовувати трафік L2 на вказаний інтерфейс виходу.
  • Встановити інтерфейс null - Скидає відповідний трафік, якщо встановлено нульовий інтерфейс, або якщо жоден із вказаних переходів не є доступним, або якщо вказаний інтерфейс виходу не є L2 і з'єднується.
  • Встановити групу реплікації – використовується для реплікації трафіку на сервери anycast, призначений для вирішення проблеми хешування, як описано в RFC7690.

Синтаксис команд

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}

 

Налаштувати політику обслуговування (Застосувати карту політики в інтерфейсі)

На інтерфейсі або підінтерфейсі:

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:

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

На інтерфейсах каналів портів,

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

Глобально на всіх інтерфейсах комутаторів

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}

 

Перевірити

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

 

Приклад конфігурації

Розглянемо наступну топологію.

Топологія

У нас немає маршруту до 50.0.0.0/24 і 60.0.0.0/24 в 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

 

Мета:

Трафік на ферму сервера 50.0.0.0/24 буде спрямовано на наступний перехід 20.0.0.2. Трафік на ферму сервера 60.0.0.0/24 буде спрямовано на наступний перехід 30.0.0.2.
 

Конфігурація

Давайте налаштуємо Карту Класів. Тут ми класифікуємо трафік за різними параметрами.
Карта класів MATCH_IP_OF_SERVER-1 Критерій відповідності: DST-IP 50.0.0.0/24.
У карті класу MATCH_IP_OF_SERVER-2, критерії відповідності: 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#

Давайте налаштуємо Карту правил.
Тут ми визначаємо, яку наступну дію потрібно виконати, якщо трафік відповідає умові. У такому разі, якщо трафік збігається з певною IP-адресою призначення, переспрямуйте його на конкретну наступну IP-адресу переходу.

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

Застосуємо карту Policy як сервісну політику до інтерфейсу 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


Перевірка конфігурації

Давайте перевіримо конфігурацію карти класів. Тут ми можемо побачити MATCH_IP_OF_SERVER-1 Критерії відповідності: DST-IP 50.0.0.0/24. У карті класу MATCH_IP_OF_SERVER-2, критерії відповідності: 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#

Карта правил визначає, яким буде наступний перехід для трафіку, віднесеного до мапи класів.

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#

Політика обслуговування визначає, де має застосовуватися карта правил.

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#

 

Що робити, якщо наступний стрибок буде вниз.

Розглянемо, що наступним стрибком 20.0.0.2 є Down. Див. Ми можемо побачити, як показати інтерфейс service-policy Eth 1/1 і показати карту політик service-policy FORWARD_TO_SERVER. У версії 20.0.0.2 пропущено «(вибране)», а у версії 30.0.0.2, яка доступна, є «(вибране)».

Тут лічильники (збіг пакетів і кадр) збільшаться, однак пакет відкинеться, оскільки наступний перехід буде недоступним.

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 є доступним і вибраним. 20.0.0.2 є недосяжним, а отже, вибраний відсутній.

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