Автологин по ssh

Здравствуйте. Есть у нас на работе сервер с разрешенным доступом по ssh. Вход на него осуществляется посредством ввода логина/пароля. С недавних пор настройки сервера изменились и раз в пару часов с него начало выкидывать. Сделано это было намеренно, другого варианта не было и я начал искать костыли. Костыль найден был довольно быстро. У меня уже был написан скрипт с именем rlog. В нем хранилась простейшая строка:

ssh user@ip_address

Я установил программу sshpass, строку в скрипте изменил на:

Читать далее «Автологин по ssh»

Блокировка по маку и кабель-диаг

Блокировка по маку на зюхелях осуществляется так:

# mac-filter name ban mac xx:xx:xx:xx:x:xx vlan 1

Кабдиаг так:

# cable-diagnostics X

Где X-номер порта. Например:

# cable-diagnostics 2

покажет:

port 2
cable diagnostics result
pairA: Open
pairB: Open

Метраж, в отличие от Д-линка не показывает, но надпись выше означает, что кабель либо поврежден, либо вытащен из устройства, либо устройство выключено. Пример ниже показывает, что всё хорошо:

# cable-diagnostics 6
port 6
cable diagnostics result
pairA: Ok
pairB: Ok

Конфигурирование vlan (pvid)

Долго мучились с проблемой:

Абонент сидит в зюхелевском свитче с адресом zzz.zzz.zzz.zzz в порту 13.

sh vlan показал нам, что на 13 порту навешан vlan 1, Однако если выполнить команду

$sh mac address-table mac

То видим, что абонент приходит в совершенно другой влан (в моем случае это был vlan 2130, в который должны были прилетать абоненты с внешниками). Покопавшись в инете нашли статью http://gnom-virtuoz.livejournal.com/66406.html, рекомендую к прочтению.

Читать далее «Конфигурирование vlan (pvid)»

PIM — Protocol-Independent Multicast

  • PIM — multicast routing protocol (Мультикастинг не зависящий от протокола) семейство многоадресных протоколов маршрутизации для IP сетей, созданный для решения проблем групповой маршрутизации. PIM называется протоколо-независимым, потому что базируется на традиционных маршрутных протоколах (например Border Gateway Protocol), вместо того, чтобы создавать собственную сетевую топологию.
  • Reverse Path Forwarding (RPF)
  • Multicast distribution tree — определяет путь от источника к получателям, по которому будет передаваться multicast трафик.

Два типа multicast distribution tree:

  • source-routed (shortest path trees) — отдельное дерево строится от каждого источника ко всем получателям.
  • shared tree (Rendezvous Point Tree, RPT) — создаются пути передачи трафика, которые основаны на центральном маршрутизаторе, который работает rendezvous point (RP) между источниками multicast и получателями.

Формат сообщений PIM

Пакеты протокола PIM инкапсулируются в IP-пакеты, номер протокола 103.

Все поля Reserved в сообщениях PIMv2 установлены в 0 и при получении игнорируются.

Заголовок пакетов PIMv2

У всех пакетов PIM стандартный заголовок.

   |<-------------------------- 32 бита --------------------------->|

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  | Reserved      |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля заголовка:

  • Version — версия протокола. Текущая версия 2.
  • Type — тип сообщения:
    • 0 — Hello
    • 1 — Register (используется только в PIM-SM)
    • 2 — Register Stop (используется только в PIM-SM)
    • 3 — Join/Prune
    • 4 — Bootstrap (используется только в PIM-SM)
    • 5 — Assert
    • 6 — Graft (используется только в PIM-DM)
    • 7 — Graft-Ack (используется только в PIM-DM)
    • 8 — Candidate-RP-Advertisement (используется только в PIM-SM)
  • Reserved
  • Checksum

Общие возможности PIM-DM и PIM-SM

Отношения соседства:

Сообщения hello отправляются каждые 30 секунд на адрес 224.0.0.13 (All-PIM-Routers).

 |<-------------------------- 32 бита --------------------------->|

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  | Reserved      |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       OptionType              |         OptionLength          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          OptionValue                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++
   |                               .                               |
   |                               .                               |
   |                               .                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       OptionType              |         OptionLength          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          OptionValue                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++

Prune Override

Если маршрутизатор получает сообщение Prune в сети с множественным доступом, то он запускает таймер на 3 секунды, прежде чем исключит интерфейс из дерева. Если в этой сети есть ещё один маршрутизатор, который хочет получать трафик этой группы, то он отправляет сообщение Join. Этот процесс называется Prune Override.

|<-------------------------- 32 бита --------------------------->|

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  | Reserved      |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Encoded-Unicast-Upstream Neighbor Address         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Reserved     | Num groups    |          Holdtime             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Encoded-Multicast Group Address-1                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Number of Joined  Sources   |   Number of Pruned Sources    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Joined Source Address-1                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             .                                 |
   |                             .                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Joined Source Address-n                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Pruned Source Address-1                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             .                                 |
   |                             .                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Pruned Source Address-n                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           .                                   |
   |                           .                                   |
   |                           .                                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Encoded-Multicast Group Address-n              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Number of Joined  Sources   |   Number of Pruned Sources    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Joined Source Address-1                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             .                                 |
   |                             .                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Joined Source Address-n                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Pruned Source Address-1                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             .                                 |
   |                             .                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Encoded-Pruned Source Address-n                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Сообщения Assert и выбор Forwarder

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

Когда маршрутизатор получает на исходящем интерфейсе с множественным доступом пакет multicast, он начинает отправлять сообщение Assert в сегмент. В сообщении передается информация об источнике и группе, метрике маршрута к источнику и administrative distance, которая соответствует маршруту к источнику.

Маршрутизатор, который будет отправлять трафик в сеть, определяется на основании сообщений Assert таким образом:

  • Маршрутизатор который анонсирует наименьшую AD протокола маршрутизации, который использовался для получения маршрута к источнику.
  • Если AD совпадает, то выигрывает маршрутизатор который анонсирует наименьшую метрику для маршрута, который ведет к источнику.
  • Если метрика совпадает, то выигрывает маршрутизатор с наибольшим IP-адресом в этой локальной сети.
|<-------------------------- 32 бита --------------------------->|

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |PIM Ver| Type  | Reserved      |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Encoded-Group Address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Encoded-Unicast-Source Address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R|                        Metric Preference                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Metric                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Маршрутизатор, который был выбран, называется Forwarder.

После выборов Forwarder продолжает отправлять multicast трафик в сеть. Другие маршрутизаторы, которые участвовали в выборах, исключают интерфейс ведущий в сегмент с множественным доступом из списка исходящих интерфейсов.

Designated Router

Когда к сети с множественным доступом присоединены несколько маршрутизаторов, один из них должен выполнять роль выделенного маршрутизатора (Designated Router, DR). DR отвечает за отправку сообщений Join/Prune и Register к RP.

Для выбора выделенного маршрутизатора используются сообщения hello. PIM-DM или PIM-SM маршрутизатор с наибольшим IP-адресом становится DR.

Эта возможность нужна в сетях где используется IGMPv1, так как IGMPv1 не выбирает Querier. В этом случае DR используется как IGMP Querier.

Note-icon.gif Маршрутизатор, который был выбран DR, может не стать Forwarder для сети. Тогда маршрутизатор, который проиграл выбор Forwarder и выполнял роль DR, исключает интерфейс ведущий в сегмент с множественным доступом из списка исходящих интерфейсов. Выигравший маршрутизатор становится last-hop маршрутизатором и отвечает за отправку сообщений Join к RP.

Изменения unicast таблицы маршрутизации

Если таблица маршрутизации изменилась и путь к источнику multicast трафика новый, то PIM-DM тоже должен внести изменения.

Когда изменяется RPF-маршрутизатор, PIM-DM сначала отправляет сообщение Prune прежнему RPF-маршрутизатору. Затем сообщение Graft отправляется новому RPF-маршрутизатору для того чтобы построить новое дерево.