Dell Networking SONiC. Как настроить маршрутизацию на основе политик

摘要: В этой статье на простом примере объясняется, как настроить маршрутизацию на основе политик в Dell Networking SONiC.

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

说明

Предварительные условия

Для демонстрации концепций мы используем стандартные имена интерфейсов. См . статью Dell Networking серии S. Basic Interface Configuration — SONiC 4.0 для получения дополнительной информации об именовании интерфейсов


Указатель

 

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

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

Используйте маршрутизацию на основе политик для обеспечения равного доступа, маршрутизацию с учетом протокола, маршрутизацию с учетом источника, маршрутизацию на основе интерактивного сравнения с пакетным трафиком и маршрутизацию на основе выделенных каналов. Маршрутизация на основе политик является более гибким механизмом для маршрутизации пакетов, чем маршрутизация назначения.
 

Действия по настройке маршрутизации на основе политик

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

Чтобы настроить PBR, выполните следующие действия.

  1. Классифицируйте (выбирайте) трафик для маршрутизации на основе политик с помощью списков контроля доступа или полей L2, L3 или L4 в заголовках пакетов.
  2. На схеме политик настройте действия пересылки для каждого классифицированного потока.
  3. Применить политику переадресации к входящим интерфейсам глобально ко всем интерфейсам коммутатора, указанному интерфейсу, сети VLAN или агрегированному каналу
В двух словах:

Действия по настройке маршрутизации на основе политик


ПРИМЕЧАНИЕ. В Dell SONiC:
  • Если входящий трафик не находит совпадения ни в одной из инструкций, применяемых в сопоставлении политик в interface/vlan/portchannel/global, он будет перенаправлен в соответствии со стандартной таблицей маршрутизации.
  • Политика переадресации поддерживается только на интерфейсах входящего трафика.
  • Политики переадресации могут перенаправлять только выбранный трафик; они не могут улавливать, переключать или направлять трафик на ЦП.
  • Политики переадресации с действиями следующего перехода и следующей группы перехода применяются только к маршрутизируемому трафику L3.
  • Политики переадресации, использующие исходящий интерфейс Ethernet или агрегированного канала, применяются только к коммутируемому трафику L2.
  • Политики переадресации не применяются к трафику, предназначенному для ЦП (IP-адрес назначения совпадает с адресом коммутатора), или к трафику, захваченному ЦП.
  • Когда вы применяете политику перенаправления глобально на всех интерфейсах, следующие переходы должны находиться в VRF по умолчанию, если только вы не зададите VRF не по умолчанию с помощью команды set {ip | ipv6} next-hop ip-address vrf vrf-name на карте политик.

 

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

Настройка карты классов для классификации трафика

Мы можем классифицировать (сопоставлять) входящий трафик, следуя методам в карте классов.

  1. Использование списка доступа по IPv4, IPv6 или MAC-адресу
  2. Использование полей заголовков L2–L4

Синтаксис команды при использовании списка доступа для сопоставления трафика в сопоставлении классов.

Если мы настраиваем список доступа в соответствии с трафиком на карте классов, обязательно настройте список доступа.

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 определяет действия по пересылке, которые необходимо предпринять при сопоставлении трафика для маршрутизации на основе политик. Политика переадресации поддерживает следующие действия:

  • Установить следующий прыжок — маршрутизирует трафик IPv4 на следующий прыжок IPv4; Направляет трафик IPv6 в следующий транзитный узел IPv6.
  • Задать группу следующего перехода — указывает группу, из которой выбирается наилучший IPv4- или IPv6-адрес для следующего перехода.
  • Настройка интерфейса — перенаправление трафика L2 на указанный исходящий интерфейс.
  • Set interface null — отбрасывает соответствующий трафик, если задан интерфейс null, или если ни один из указанных следующих переходов не доступен, или если указанный исходящий интерфейс не является L2 и соединением.
  • Задать группу репликации — используется для репликации трафика на серверы произвольной адресации с целью устранения проблемы хеширования, как описано в разделе 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)#

Применим карту политик в качестве политики службы к интерфейсу 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#

 

Что делать, если следующий прыжок будет Down?

Предположим, что следующий прыжок 20.0.0.2 не работает. См. вывод ниже. Можно просмотреть интерфейс «сервис-политика» Eth 1/1 и показать карту политик-политики службы-политики FORWARD_TO_SERVER. В 20.0.0.2 отсутствует «(selected)», а в 30.0.0.2, который доступен, есть «(selected)».

Здесь счетчики (совпадение пакетов и кадр) будут увеличиваться, однако пакет будет отбрасываться, так как следующий переход будет недоступен.

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