Spec-Zone.ru › Ansible

Модуль dellemc.enterprise_sonic.sonic_route_maps — управление конфигурацией карт маршрутизации для SONiC

Примечание

Этот модуль входит в коллекцию dellemc.enterprise_sonic (версия 3.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install dellemc.enterprise_sonic.

Чтобы использовать её в плейбуке, укажите: dellemc.enterprise_sonic.sonic_route_maps.

Добавлено в dellemc.enterprise_sonic 2.1.0

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль управляет конфигурацией параметров карт маршрутизации на устройствах под управлением SONiC.

Параметры

Параметр

Комментарии

config

list / elements=dictionary

Задает список словарей конфигурации карты маршрутов

action

string

Тип действия для карты маршрутов (permit или deny)

Это значение требуется для создания и изменения карты

маршрутов или ее атрибутов, а также для удаления атрибутов

карты маршрутов. Его можно опустить только при запросе на

удаление оператора карты маршрутов или всех операторов карты

маршрутов для указанной карты маршрутов map_name.

Варианты:

  • "permit"
  • "deny"

call

string

Имя карты маршрутов, к которой выполняется переход после выполнения операторов ‘match’ и ‘set’ для текущей карты маршрутов.

map_name

string / обязательный

Имя карты маршрутов

match

dictionary

Критерии сопоставления карты маршрутов с маршрутом

as_path

string

Имя настроенного списка путей BGP AS, который проверяется

на соответствие целевому маршруту

community

string

Имя настроенного «сообщества» BGP, которое проверяется

на соответствие целевому маршруту

evpn

dictionary

Ethernet VPN BGP, проверяемый

на соответствие целевому маршруту

default_route

boolean

Маршрут EVPN типа 5 по умолчанию

Варианты:

  • false
  • true

route_type

string

Тип маршрута, отличный от типа по умолчанию. Одно из следующих значений:

маршрут mac-ip, маршрут EVPN типа 3 Inclusive Multicast Ethernet

Tag (IMET) или маршрут префикса

Варианты:

  • "macip"
  • "multicast"
  • "prefix"

vni

integer

ID VNI для проверки на соответствие; задается значением в

диапазоне 1-16777215

ext_comm

string

Имя настроенного «расширенного сообщества» BGP, которое проверяется

на соответствие целевому маршруту

interface

string

Имя интерфейса следующего узла (тип и номер), проверяемое на

соответствие целевому маршруту. Тип интерфейса может быть

одним из следующих: интерфейс или подинтерфейс ‘Ethernet/Eth’,

интерфейс ‘Loopback’, интерфейс или подинтерфейс

‘PortChannel’, интерфейс ‘Vlan’.

ip

dictionary

IP-адреса или IP-адреса следующих узлов, проверяемые на соответствие

целевому маршруту

address

string

имя списка префиксов IPv4, содержащего список префиксов

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

next_hop

string

имя списка префиксов, содержащего список префиксов

следующих узлов для проверки на соответствие целевому маршруту

ipv6

dictionary

IPv6-адреса для проверки на соответствие

целевому маршруту

address

string / обязательный

имя списка префиксов IPv6, содержащего список префиксов

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

local_preference

integer

Значение local-preference для проверки на соответствие

целевому маршруту. Значение должно находиться в диапазоне 0-4294967295.

metric

integer

Значение метрики для проверки на соответствие целевому маршруту.

Значение должно находиться в диапазоне 0-4294967295.

origin

string

Источник BGP для проверки на соответствие целевому маршруту

Варианты:

  • "egp"
  • "igp"
  • "incomplete"

peer

dictionary

Пир/сосед маршрутизации BGP, необходимый для соответствия маршруту

ip, ipv6 и interface являются взаимоисключающими.

interface

string

Имя (тип и номер) интерфейса пира BGP

Допустимые типы интерфейсов: Ethernet или Eth (в зависимости

от настроенного режима именования интерфейсов),

Vlan и Portchannel

ip

string

IPv4-адрес пира BGP

ipv6

string

IPv6-адрес пира BGP

source_protocol

string

Исходный протокол, необходимый для соответствия маршруту

Варианты:

  • "bgp"
  • "connected"
  • "ospf"
  • "static"

source_vrf

string

Имя исходной VRF, необходимой для соответствия маршруту

tag

integer

Значение тега, необходимое для соответствия маршруту

Значение должно находиться в диапазоне 1-4294967295

sequence_num

integer

Уникальный номер в диапазоне 1-66535, задающий приоритет карты

Это значение требуется для создания и изменения карты

маршрутов или ее атрибутов, а также для удаления атрибутов

карты маршрутов. Его можно опустить только при запросе на удаление всех

«операторов» карты маршрутов для указанного «map_name» карты маршрутов.

set

dictionary

Данные, задаваемые для соответствующего маршрута при повторном распространении

ars_object

string

добавлено в dellemc.enterprise_sonic 3.1.0

Объект адаптивной маршрутизации и коммутации

as_path_prepend

string

Строка с разделенным запятыми списком номеров AS-путей,

добавляемых в начало атрибута AS-path BGP соответствующего маршрута.

Значения AS-path в списке должны находиться в диапазоне

1-4294967295; например, 2000,3000

comm_list_delete

string

Строка с именем списка сообществ BGP, содержащего

значения сообществ BGP для удаления из соответствующих маршрутов.

community

dictionary

Атрибуты сообщества BGP, добавляемые к атрибутам

сообщества BGP соответствующего маршрута или заменяющие их. Указание

атрибута ‘additive’ допускается только при указании одного из

других атрибутов (кроме ‘none’).

Он приводит к добавлению указанных атрибутов ‘set community’

к уже существующим атрибутам сообщества

в соответствующем маршруте. Если атрибут ‘additive’

не указан, ранее существовавшие атрибуты сообщества

в соответствующем маршруте заменяются настроенными

атрибутами ‘set community’. Указание атрибута ‘set community’

со значением ‘none’ взаимоисключает настройку других атрибутов

сообщества и приводит к удалению всех атрибутов сообщества

из соответствующего маршрута.

community_attributes

list / elements=string

Список из одного или нескольких атрибутов сообщества BGP. Допустимы

следующие значения:

local_as

Не отправлять за пределы локальной AS (общеизвестное сообщество)

no_advertise

Не объявлять ни одному пиру (общеизвестное сообщество)

no_export

Не экспортировать в следующую AS (общеизвестное сообщество)

no_peer

Маршрут не требуется объявлять пирам.

(Объявление маршрута может быть подавлено

на основании других критериев.)

additive

Добавить настроенные атрибуты ‘set community’ к

соответствующему маршруту (если задано значение ‘true’); ранее существовавшие

атрибуты соответствующего маршрута вместо этого заменяются

настроенными атрибутами, если этот атрибут

не указан или имеет значение ‘false’.

none

Не отправлять атрибуты сообщества. Этот атрибут

взаимоисключает все остальные атрибуты ‘set community’

и приводит к удалению всех атрибутов

из соответствующего маршрута.

none взаимоисключает все остальные атрибуты:

local_as, no_advertise, no_export, no_peer, additive,

и additive.

Варианты:

  • "local_as"
  • "no_advertise"
  • "no_export"
  • "no_peer"
  • "additive"
  • "none"

community_number

list / elements=string

Список из одного или нескольких номеров сообщества BGP в

формате AA:NN, где AA и NN — целые числа в диапазоне

0-65535.

Примечание: каждый номер сообщества в списке должен быть заключен

в двойные кавычки, чтобы избежать ошибок разбора YAML из-за

наличия символа ‘:’ в значениях списка.

extcommunity

dictionary

Расширенные атрибуты сообщества BGP, задаваемые для соответствующего маршрута.

bandwidth

dictionary

добавлено в dellemc.enterprise_sonic 3.1.0

Расширенное сообщество пропускной способности канала

bandwidth_value

string / обязательный

Допустимо одно из следующих значений

<1..4294967295> Совокупная пропускная способность всех путей с балансировкой нагрузки (только для исходящего направления)

num-multipaths Пропускная способность, вычисляемая внутри системы на основе числа путей с балансировкой нагрузки (только для исходящего направления)

transitive_value

boolean

Рабочее значение по умолчанию — false, если этот параметр не указан.

True — транзитивный атрибут, false — нетранзитивный. Если задано значение true, включать

расширенное сообщество пропускной способности канала в объявления маршрутов, отправляемые

соседям через границы AS (соседям eBGP). Если задано значение false,

удалять расширенное сообщество пропускной способности канала из объявлений маршрутов,

отправляемых через границы AS.

Варианты:

  • false
  • true

rt

list / elements=string

Расширенные сообщества VPN Route Target в формате

ASN:NN или IP-ADDRESS:NN

Примечание: каждое значение rt в списке должно быть заключено

в двойные кавычки, чтобы избежать ошибок разбора YAML из-за

наличия символа ‘:’ в значениях списка.

soo

list / elements=string

Расширенные сообщества VPN Site-of-Origin в формате

ASN:NN или IP-ADDRESS:NN

Примечание: каждое значение rt в списке должно быть заключено

в двойные кавычки, чтобы избежать ошибок разбора YAML из-за

наличия символа ‘:’ в значениях списка.

ip_next_hop

dictionary

Атрибуты IPv4-адреса следующего узла, задаваемые для соответствующего маршрута

address

string

IPv4-адрес следующего узла, задаваемый для соответствующего маршрута в

формате с точечной десятичной записью A.B.C.D

native

boolean

Задать собственный или базовый следующий узел

Варианты:

  • false
  • true

ipv6_next_hop

dictionary

Атрибуты IPv6-адреса следующего узла, задаваемые для соответствующего маршрута

global_addr

string

Глобальный IPv6-адрес следующего узла, задаваемый для соответствующего

маршрута в формате A::B

native

boolean

Задать собственный или базовый следующий узел

Варианты:

  • false
  • true

prefer_global

boolean

Задать соответствующий атрибут для соответствующего маршрута,

если значение этого атрибута Ansible равно ‘true’.

Атрибут указывает, что алгоритм маршрутизации должен

отдавать предпочтение глобальному адресу следующего узла перед локальным адресом канала,

если доступны оба адреса.

Варианты:

  • false
  • true

local_preference

integer

Атрибут пути локального предпочтения BGP; целое значение в

диапазоне 0-4294967295

metric

dictionary

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

value и rtt_action являются взаимоисключающими.

rtt_action

string

Действие по изменению метрики соответствующего

маршрута с использованием времени кругового обхода (rtt);

set задает для метрики маршрута значение

rtt.

add прибавляет значение rtt

к метрике маршрута.

subtract вычитает значение rtt

из метрики маршрута.

Варианты:

  • "set"
  • "add"
  • "subtract"

value

integer

значение метрики, которое будет задано для соответствующего маршрута;

значение в диапазоне 0-4294967295

origin

string

Происхождение маршрута BGP; необходимо выбрать один из следующих вариантов.

egp (внешний; удалённый EGP)

igp (внутренний; локальный IGP)

incomplete (неизвестное происхождение)

Варианты:

  • "egp"
  • "igp"
  • "incomplete"

tag

integer

Значение тега, которое будет задано для соответствующего маршрута

Значение должно находиться в диапазоне 1-4294967295

weight

integer

Вес BGP, который будет задан для соответствующего маршрута: вес должен быть

целым числом в диапазоне 0-4294967295

state

string

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

Для merged объединяет указанные атрибуты с существующими настроенными атрибутами.

Для deleted удаляет указанные атрибуты из существующей конфигурации.

Для replaced заменяет каждый изменённый список или словарь

указанными элементами.

Для overridden заменяет всю текущую конфигурацию этого ресурса

модуля указанной конфигурацией.

Варианты:

  • "merged" ← (по умолчанию)
  • "deleted"
  • "replaced"
  • "overridden"

Примечания

Примечание

  • Поддерживает check_mode.

Примеры

# Using "merged" state to create initial configuration
#
# Before state:
# -------------
#
# sonic# show running-configuration route-map
# sonic#
# (No configuration present)
#
# -------------
#
- name: Merge initial route_maps configuration
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        action: permit
        sequence_num: 80
        match:
          as_path: bgp_as1
          community: bgp_comm_list1
          evpn:
            default_route: true
            vni: 735
          ext_comm: bgp_ext_comm1
          interface: Ethernet4
          ip:
            address: ip_pfx_list1
          ipv6:
            address: ipv6_pfx_list1
          local_preference: 8000
          metric: 400
          origin: egp
          peer:
            ip: 10.20.30.40
          source_protocol: bgp
          source_vrf: Vrf1
          tag: 7284
        set:
          as_path_prepend: 200,315,7135
          comm_list_delete: bgp_comm_list2
          community:
            community_number:
              - "35:58"
              - "79:150"
              - "308:650"
            community_attributes:
              - local_as
              - no_advertise
              - no_export
              - no_peer
              - additive
          extcommunity:
            rt:
              - "30:40"
            soo:
              - "10.73.14.9:78"
          ip_next_hop:
            address: 10.48.16.18
            native: true
          ipv6_next_hop:
            global_addr: 30::30
            prefer_global: true
            native: true
          local_preference: 635
          metric:
            metric_value: 870
          origin: egp
          weight: 93471
          tag: 65
      - map_name: rm1
        action: deny
        sequence_num: 3047
        match:
          evpn:
            route_type: multicast
          origin: incomplete
          peer:
            interface: Ethernet6
          source_protocol: ospf
        set:
          metric:
            rtt_action: add
          origin: incomplete
      - map_name: rm3
        action: deny
        sequence_num: 285
        match:
          evpn:
            route_type: macip
          origin: igp
          peer:
            ipv6: 87:95:15::53
          source_protocol: connected
        set:
          community:
            community_attributes:
              - none
          metric:
            rtt_action: set
          origin: igp
        call: rm1
      - map_name: rm4
        action: permit
        sequence_num: 480
        match:
          evpn:
            route_type: prefix
          source_protocol: static
        set:
          metric:
            rtt_action: subtract
    state: merged

# After state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as1
#  match evpn default-route
#  match evpn vni 735
#  match ip address prefix-list ip_pfx_list1
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Ethernet4
#  match community bgp_comm_list1
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match peer 10.20.30.40
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 200,315,7135
#  set community 35:58 79:150 308:650 local-AS no-advertise no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric 870
#  set ip next-hop 10.48.16.18
#  set ip next-hop native true
#  set ipv6 next-hop global 30::30
#  set ipv6 next-hop prefer-global
# set ipv6 next-hop native true
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match evpn route-type multicast
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin incomplete
#  set metric +rtt
#  set origin incomplete
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol connected
#  match origin igp
#  set community none
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt
# ------------


# Using "merged" state to update and add configuration
#
# Before state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as1
#  match evpn default-route
#  match evpn vni 735
#  match ip address prefix-list ip_pfx_list1
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Ethernet4
#  match community bgp_comm_list1
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match peer 10.20.30.40
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 200,315,7135
#  set community 35:58 79:150 308:650 local-AS no-advertise no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric 870
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set ipv6 next-hop prefer-global
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match evpn route-type multicast
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin incomplete
#  set metric +rtt
#  set origin incomplete
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol connected
#  match origin igp
#  set community none
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt
# ------------
#
- name: Merge additional and modified route map configuration
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        action: permit
        sequence_num: 80
        match:
          as_path: bgp_as2
          community: bgp_comm_list3
          evpn:
            route_type: prefix
            vni: 850
          interface: Vlan7
          ip:
            address: ip_pfx_list2
            next_hop: ip_pfx_list3
          peer:
            interface: Portchannel14
        set:
          as_path_prepend: 188,257
          community:
            community_number:
              - "45:736"
          ipv6_next_hop:
            prefer_global: false
          metric:
            rtt_action: add
      - map_name: rm1
        action: deny
        sequence_num: 3047
        match:
          as_path: bgp_as3
          ext_comm: bgp_ext_comm2
          origin: igp
        set:
          metric:
            rtt_action: subtract
      - map_name: rm2
        action: permit
        sequence_num: 100
        match:
          interface: Ethernet16
        set:
          as_path_prepend: 200,300,400
          ipv6_next_hop:
            global_addr: 37::58
            prefer_global: true
          metric: 8000
      - map_name: rm3
        action: deny
        sequence_num: 285
        match:
          local_preference: 14783
          source_protocol: bgp
        set:
          community:
            community_attributes:
              - no_advertise
    state: merged

# After state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn default-route
#  match evpn route-type prefix
#  match evpn vni 850
#  match ip address prefix-list ip_pfx_list2
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community 35:58 79:150 308:650 45:736 local-AS no-advertise no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match as-path bgp_as3
#  match evpn route-type multicast
#  match ext-community bgp_ext_comm2
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin igp
#  set metric -rtt
#  set origin incomplete
# !
# route-map rm2 permit 100
#  match interface Ethernet16
#  set as-path prepend 200,300,400
#  set ipv6 next-hop global 37::58
#  set ipv6 next-hop prefer-global
#  set metric 8000
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt


# Using "replaced" state to replace the contents of a list
#
# Before state:
# ------------
#
# sonic(config-route-map)# do show running-configuration route-map rm1 80
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn default-route
#  match evpn route-type prefix
#  match evpn vni 850
#  match ip address prefix-list ip_pfx_list2
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community 35:58 79:150 308:650 45:736 local-AS no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# ------------
- name: Replace a list
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        action: permit
        sequence_num: 80
        set:
          community:
            community_number:
              - "15:30"
              - "26:54"
    state: replaced

# After state:
# ------------
#
# sonic#show running-configuration route-map rm1 80
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn default-route
#  match evpn route-type prefix
#  match evpn vni 850
#  match ip address prefix-list ip_pfx_list2
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community 15:30 26:54 local-AS no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65


# Using "replaced" state to replace the contents of dictionaries
#
# Before state:
# ------------
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn default-route
#  match evpn route-type prefix
#  match evpn vni 850
#  match ip address prefix-list ip_pfx_list2
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community 15:30 26:54 local-AS no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match as-path bgp_as3
#  match evpn route-type multicast
#  match ext-community bgp_ext_comm2
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin igp
#  set metric -rtt
#  set origin incomplete
# !
# route-map rm2 permit 100
#  match interface Ethernet16
#  set as-path prepend 200,300,400
#  set ipv6 next-hop global 37::58
#  set ipv6 next-hop prefer-global
#  set metric 8000
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt
# ------------
- name: Replace dictionaries
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        action: permit
        sequence_num: 80
        match:
          evpn:
            route_type: multicast
          ip:
            address: ip_pfx_list1
        set:
          community:
            community_attributes:
              - no_advertise
          extcommunity:
            rt:
              - "20:20"
      - map_name: rm2
        action: permit
        sequence_num: 100
        set:
          ipv6_next_hop:
            global_addr: 45::90
            native: true
    state: replaced

# After state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn route-type multicast
#  match ip address prefix-list ip_pfx_list1
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community no-advertise
#  set extcommunity rt 20:20
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match as-path bgp_as3
#  match evpn route-type multicast
#  match ext-community bgp_ext_comm2
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin igp
#  set metric -rtt
#  set origin incomplete
# !
# route-map rm2 permit 100
#  match interface Ethernet16
#  set as-path prepend 200,300,400
#  set metric 8000
#  set ipv6 next-hop global 45::90
# set ipv6 next-hop native true
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt


# Using "overridden" state to override all existing configuration with new
# configuration
#
# Before state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn route-type multicast
#  match ip address prefix-list ip_pfx_list1
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community no-advertise
#  set extcommunity rt 30:40
#  set extcommunity rt 20:20
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match as-path bgp_as3
#  match evpn route-type multicast
#  match ext-community bgp_ext_comm2
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin igp
#  set metric -rtt
#  set origin incomplete
# !
# route-map rm2 permit 100
#  match interface Ethernet16
#  set as-path prepend 200,300,400
#  set metric 8000
#  set ipv6 next-hop global 45::90
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt
# ------------
- name: Override all route map configuration with new configuration
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm5
        action: permit
        sequence_num: 250
        match:
          interface: Ethernet28
        set:
          as_path_prepend: 150,275
          metric: 7249
    state: overridden

# After state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm5 permit 250
#  match interface Ethernet28
#  set as-path prepend 150,275
#  set metric 7249


# Using "overridden" state to override all existing configuration with new
# configuration. (Restore previous configuration.)
#
# Before state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm5 permit 250
#  match interface Ethernet28
#  set as-path prepend 150,275
#  set metric 7249
# ------------
- name: Override (restore) all route map configuration with older configuration
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        action: permit
        sequence_num: 80
        match:
          as_path: bgp_as2
          community: bgp_comm_list3
          evpn:
            default_route: true
            route_type: prefix
            vni: 850
          ext_comm: bgp_ext_comm1
          interface: Vlan7
          ip:
            address: ip_pfx_list2
            next_hop: ip_pfx_list3
          ipv6:
            address: ipv6_pfx_list1
          local_preference: 8000
          metric: 400
          origin: egp
          peer:
            interface: Portchannel14
          source_protocol: bgp
          source_vrf: Vrf1
          tag: 7284
        set:
          as_path_prepend: 188,257
          comm_list_delete: bgp_comm_list2
          community:
            community_number:
              - "35:58"
              - "79:150"
              - "308:650"
              - "45:736"
            community_attributes:
              - local_as
              - no_export
              - no_peer
              - additive
          extcommunity:
            rt:
              - "30:40"
            soo:
              - "10.73.14.9:78"
          ip_next_hop:
            address: 10.48.16.18
            native: false
          ipv6_next_hop:
            global_addr: 30::30
            native: false
          local_preference: 635
          metric:
            rtt_action: add
          origin: egp
          weight: 93471
          tag: 65
      - map_name: rm1
        action: deny
        sequence_num: 3047
        match:
          as_path: bgp_as3
          evpn:
            route_type: multicast
          ext_comm: bgp_ext_comm2
          origin: igp
          peer:
            interface: Ethernet6
          source_protocol: ospf
        set:
          metric:
            rtt_action: subtract
          origin: incomplete
      - map_name: rm2
        action: permit
        sequence_num: 100
        match:
          interface: Ethernet16
        set:
          as_path_prepend: 200,300,400
          ipv6_next_hop:
            global_addr: 37::58
            prefer_global: true
          metric: 8000
      - map_name: rm3
        action: deny
        sequence_num: 285
        match:
          evpn:
            route_type: macip
          origin: igp
          peer:
            ipv6: 87:95:15::53
          local_preference: 14783
          source_protocol: bgp
        set:
          community:
            community_attributes:
              - no_advertise
          metric:
            rtt_action: set
          origin: igp
        call: rm1
      - map_name: rm4
        action: permit
        sequence_num: 480
        match:
          evpn:
            route_type: prefix
          source_protocol: static
        set:
          metric:
            rtt_action: subtract
    state: overridden

# After state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn default-route
#  match evpn route-type prefix
#  match evpn vni 850
#  match ip address prefix-list ip_pfx_list2
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community 35:58 79:150 308:650 45:736 local-AS no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ip next-hop native false
#  set ipv6 next-hop global 30::30
#  set ipv6 next-hop native false
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match as-path bgp_as3
#  match evpn route-type multicast
#  match ext-community bgp_ext_comm2
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin igp
#  set metric -rtt
#  set origin incomplete
# !
# route-map rm2 permit 100
#  match interface Ethernet16
#  set as-path prepend 200,300,400
#  set ipv6 next-hop global 37::58
#  set ipv6 next-hop prefer-global
#  set metric 8000
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt


# Using "deleted" state to remove configuration
#
# Before state:
# ------------
#
# sonic# show running-configuration route-map rm1 80
# !
# route-map rm1 permit 80
#  match as-path bgp_as2
#  match evpn default-route
#  match evpn route-type prefix
#  match evpn vni 850
#  match ip address prefix-list ip_pfx_list2
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match community bgp_comm_list3
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set as-path prepend 188,257
#  set community 35:58 79:150 308:650 45:736 local-AS no-export no-peer additive
#  set extcommunity rt 30:40
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ip next-hop native true
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# ------------
- name: Delete selected route map configuration
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        action: permit
        sequence_num: 80
        match:
          as_path: bgp_as2
          community: bgp_comm_list3
          evpn:
            vni: 850
          ip:
            address: ip_pfx_list2
        set:
          as_path_prepend: 188,257
          ip_next_hop:
          address: 10.48.16.18
          native: true
          ipv6_next_hop:
            native: true
          community:
            community_number:
              - "35:58"
            community_attributes:
              - local_as
          extcommunity:
            rt:
              - "30:40"
    state: deleted

# After state:
# ------------
#
# sonic# show running-configuration route-map rm1 80
# !
# route-map rm1 permit 80
#  match evpn default-route
#  match evpn route-type prefix
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set community 79:150 308:650 45:736 no-export no-peer additive
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65


# Using "deleted" state to remove a route map or route map subset
#
# Before state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match evpn default-route
#  match evpn route-type prefix
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set community 79:150 308:650 45:736 no-export no-peer additive
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm1 deny 3047
#  match as-path bgp_as3
#  match evpn route-type multicast
#  match ext-community bgp_ext_comm2
#  match peer Ethernet6
#  match source-protocol ospf
#  match origin igp
#  set metric -rtt
#  set origin incomplete
# !
# route-map rm2 permit 100
#  match interface Ethernet16
#  set as-path prepend 200,300,400
#  set metric 8000
#  set ipv6 next-hop prefer-global
#  set ipv6 next-hop global 37::58
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt
# ------------
- name: Delete a route map subset or a route map
  dellemc.enterprise_sonic.sonic_route_maps:
    config:
      - map_name: rm1
        sequence_num: 3047
      - map_name: rm2
    state: deleted

# After state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match evpn default-route
#  match evpn route-type prefix
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set community 79:150 308:650 45:736 no-export no-peer additive
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt


# Using "deleted" state to remove all route map configuration
#
# Before state:
# ------------
#
# sonic# show running-configuration route-map
# !
# route-map rm1 permit 80
#  match evpn default-route
#  match evpn route-type prefix
#  match ipv6 address prefix-list ipv6_pfx_list1
#  match interface Vlan7
#  match ext-community bgp_ext_comm1
#  match tag 7284
#  match local-preference 8000
#  match source-vrf Vrf1
#  match ip next-hop prefix-list ip_pfx_list3
#  match peer PortChannel 14
#  match source-protocol bgp
#  match metric 400
#  match origin egp
#  set community 79:150 308:650 45:736 no-export no-peer additive
#  set extcommunity soo 10.73.14.9:78
#  set comm-list bgp_comm_list2 delete
#  set metric +rtt
#  set ip next-hop 10.48.16.18
#  set ipv6 next-hop global 30::30
#  set local-preference 635
#  set origin egp
#  set weight 93471
#  set tag 65
# !
# route-map rm3 deny 285
#  match evpn route-type macip
#  match local-preference 14783
#  call rm1
#  match peer 87:95:15::53
#  match source-protocol bgp
#  match origin igp
#  set community no-advertise
#  set metric rtt
#  set origin igp
# !
# route-map rm4 permit 480
#  match evpn route-type prefix
#  match source-protocol static
#  set metric -rtt
# ------------
- name: Delete all route map configuration
  dellemc.enterprise_sonic.sonic_route_maps:
    config: []
    state: deleted

# After state:
# ------------
#
# sonic# show running-configuration route-map
# sonic#
# (no route map configuration present)

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:

Ключ

Описание

after

list / elements=string

Конфигурация, полученная в результате вызова модуля.

Возвращается: при изменении

Пример: ["The configuration returned will always be in the same format\n as the parameters above.\n"]

after(generated)

list / elements=string

Сгенерированная конфигурация при вызове модуля.

Возвращается: когда check_mode

Пример: ["The configuration returned will always be in the same format as the parameters above.\n"]

before

list / elements=string

Конфигурация до вызова модуля.

Возвращается: всегда

Пример: ["The configuration returned will always be in the same format\n as the parameters above.\n"]

commands

list / elements=string

Набор команд, отправленных на удалённое устройство.

Возвращается: всегда

Пример: ["command 1", "command 2", "command 3"]

Авторы

  • Kerry Meyer (@kerry-meyer)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/dellemc/enterprise_sonic/sonic_route_maps_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API