Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Нет скина)
  • Нет скина
Collapse

Networks Engineering

  1. Главная
  2. Сети (Routing & Switching)
  3. Статьи / База знаний
  4. Скрипт EEM — автоматическое описание порта с помощью cdp neighbor

Скрипт EEM — автоматическое описание порта с помощью cdp neighbor

Запланировано Прикреплена Закрыта Перенесена Статьи / База знаний
2 Сообщения 0 Posters 0 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • S Не в сети
    S Не в сети
    ssingh13
    написал в отредактировано
    #1

    Это скрипт апплета Cisco Embedded Event Manager (EEM), предназначенный для автоматического обновления описаний интерфейсов на коммутаторе/маршрутизаторе на основе информации о соседях CDP (Cisco Discovery Protocol). Позвольте мне разъяснить это шаг за шагом:
    Что делает
    скрипт Триггер: запускается при обнаружении нового соседа CDP на интерфейсе (event neighbor-discovery interface regexp .E[0-9/]+$ cdp add).
    Проверка соседа: он проверяет, является ли соседнее устройство платформой Cisco (маршрутизатор, коммутатор, UCS, Nexus и т. д.), используя регулярное выражение в строке платформы CDP.
    Обработка имени хоста: сокращает DNS-имя соседа до имени хоста (удаляет суффикс домена).
    Анализ типа интерфейса: извлекает тип интерфейса соседа (например, GigabitEthernet, TenGigabitEthernet, FortyGigabitEthernet и т. д.) и преобразует его в короткий формат (Gi, Te, Fo и т. д.) с номером порта.
    Классификация локального интерфейса: проверяет конфигурацию локального интерфейса на наличие:
    Root guard → помечает как «DOWNLINK»
    Политика QoS → помечает как «UPLINK»
    Создание описания: создает новую строку описания в формате:
    <UPLINK/DOWNLINK> - <NeighborHostname> - <NeighborInterface>
    Проверка изменений: если текущее описание уже соответствует новому, ничего не делается (в syslog записывается сообщение о том, что изменения не требуются).
    Действие по обновлению: если описание отличается, входит в режим настройки интерфейса и обновляет описание, а затем регистрирует изменение в syslog.
    Пример результата
    Предположим, что интерфейс GigabitEthernet1/0/1 подключается к соседнему коммутатору с именем SW1 через порт GigabitEthernet0/24.
    Локальный интерфейс имеет root guard → «DOWNLINK»
    Новое описание становится:
    DOWNLINK - SW1 - Gi0/24
    Скрипт автоматически применяет это описание.
    апплет диспетчера событий auto-update-host-description авторизация обход
    описания «Автоматическое обновление описания порта на основе информации о соседях CDP»
    событие neighbor-discovery интерфейс regexp .E[0-9/]+$ cdp add
    действие 0.0 комментарий «Регулярное выражение строки события: Решение, для какого интерфейса автоматически обновлять описание»
    действие 1.0 комментарий «Проверка соседа CDP на предмет того, является ли он коммутатором или маршрутизатором»
    действие 1.1 комментарий «Скрипт автоматического описания порта версии 001»
    действие 1.2 regexp «(cisco|AIR|UCS|N5K|N9K)» "$_nd_cdp_platform"
    action 1.3 if $_regexp_result eq "1"
    action 1.4 comment "Обрезать доменное имя"
    action 1.5 regexp "^([^.]+)" "$_nd_cdp_entry_name" совпадение dnsname
    действие 4.0 regexp "([a-zA-z-])([0-9/])" "$_nd_port_id" portm portn portnum
    действие 4.10 regexp "GigabitEthernet" "$_nd_port_id"
    действие 4.11 если $_regexp_result eq "1"
    действие 4.12 установить port_type "Gi$portnum"
    действие 4.13 конец
    действия 4.14 regexp "TenGigabitEthernet" "$_nd_port_id"
    действие 4.15 если $_regexp_result eq "1"
    действие 4.16 установить port_type "Te$portnum"
    действие 4.17 конец
    действия 4.18 regexp "TwentyFiveGigE" "$_nd_port_id"
    действие 4.19 если $_regexp_result eq "1"
    действие 4.20 установить port_type "Twe$portnum"
    действие 4.21 конец
    действия 4.22 regexp "HundredGigE" "$_nd_port_id"
    действие 4.23 если $_regexp_result eq "1"
    действие 4.24 установить port_type "Hu$portnum"
    действие 4.25 конец
    действия 4.26 regexp "Br-Ethernet" "$_nd_port_id"
    действие 4.27 если $_regexp_result eq "1"
    действие 4.28 установить port_type "Eth$portnum"
    действие 4.29 конец
    действия 4.30 regexp "TwoGigabitEthernet" "$_nd_port_id"
    действие 4.31 если $_regexp_result eq "1"
    действие 4.32 установить port_type "Tw$portnum"
    действие 4.33 конец
    действия 4.34 regexp "FortyGigabitEthernet" «$_nd_port_id»
    действие 4.35 если $_regexp_result eq «1»
    действие 4.36 установить port_type «Fo$portnum»
    действие 4.37 конец
    действия 4.99 установить int «$port_type»
    действие 4.5 regexp «([a-zA-z])» "$_nd_port_id"
    действие 5.10 комментарий "Проверить конфигурацию интерфейса на наличие root guard или qos"
    действие 5.14 команда cli "enable"
    действие 5.15 команда cli "config t"
    действие 5.16 команда cli "do show running-config interface $_nd_local_intf_name | i guard root|QOS"
    действие 5.17 regexp "Интерфейс: (.
    )" "$_cli_result" совпадает с $_nd_local_intf_name
    действие 5.18 установить interface_config "$_cli_result"
    действие 5.19 установить plat2 ""
    действие 5.20 regexp "guard root" "$interface_config"
    действие 5.21 если $_regexp_result eq "1"
    действие 5.22 установить plat2 "DOWNLINK"
    действие 5.23 иначе
    действие 5.24 regexp "QOS-OUT|QOS_OUT" "$interface_config"
    действие 5.25 if $_regexp_result eq "1"
    действие 5.26 set plat2 "UPLINK"
    действие 6.37 end
    действие 6.38 end
    действие 6.40 set idt1 "$plat2"
    действие 8.0 comment "Проверить старое описание, если есть, и не вносить изменений, если idt - dnsname - int одинаковы»
    действие 8.2 команда cli «do show interface $_nd_local_intf_name | incl Description:»
    действие 8.21 установить olddesc «<none>»
    действие 8.22 установить olddesc_sub1 «<none>»
    действие 8.23 regexp «Description: (.+)\r" "$_cli_result" olddesc olddesc_sub1
    action 8.24 set newdesc "$idt1 - $dnsname - $int"
    action 8.25 if $olddesc_sub1 eq "$newdesc"
    action 8.26 syslog msg "Скрипт EEM НЕ изменил описание $_nd_local_intf_name, так как удаленное имя DNS и интерфейс не изменились"
    action 8.27 exit 10
    action 8.28 end
    action 8.3 cli command "interface $_nd_local_intf_name"
    action 8.4 cli command "description $newdesc"
    action 8.6 syslog msg "Скрипт EEM обновил описание на $_nd_local_intf_name с $olddesc на Description: $newdesc"
    action 9.10 exit
    action 9.9 end

    1 ответ Последний ответ
    0
    • B Не в сети
      B Не в сети
      balaji.bandi
      написал в отредактировано
      #2

      Здесь уже есть хорошая дискуссия: [)

      1 ответ Последний ответ
      0

      Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.

      Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

      С вашими комментариями этот пост может стать ещё лучше 💗

      Зарегистрироваться Войти
      Ответить
      • Ответить, создав новую тему
      Авторизуйтесь, чтобы ответить
      • Сначала старые
      • Сначала новые
      • По количеству голосов


      • Войти

      • Нет учётной записи? Зарегистрироваться

      • Login or register to search.
      • Первое сообщение
        Последнее сообщение
      0
      • Категории
      • Последние
      • Метки
      • Популярные
      • Пользователи
      • Группы