Сетевой коммутатор: что это, как подключить и для чего нужен в квартире такой свитч
Небольшой ликбез о коммутаторах для загородного дома, квартиры или небольшого офиса
Зачастую пользователи в рамках работы компьютерной сетки знают только функцию ввода пароля от Wi-Fi, с помощью которого раздается интернет на все необходимые цифровые устройства. На сегодняшний день сеть способна осуществлять охват таких устройств в большем количестве. Но в данном случае простой маршрутизатор не будет полностью справляться, оборудование уже необходимо немного эффективнее.
Отметим, что у роутеров обычно недостаточное число портов. Их количества часто не хватает для подключения имеющегося сетевого оборудования: персональный компьютер, принтер, SIР-телефон. Такую проблему может решить дополнительный сетевой коммутатор (свитч). Его работы уже более оптимальна и функциональна. Он незаменим в том случае, когда устройства находятся в разных помещениях.
Что такое свитч
Свитч — устройство, которое соединяет несколько компьютеров в одну локальную сеть. В рамках нее происходит процесс обмена данных. То есть свитч позволяет осуществить работу сразу нескольких цифровых устройств.
В основу разработки сетевых коммутаторов лежит использование мостовых технологий. Принцип его работы довольно прост. При получении данных от подключенных к нему устройств, коммутатор систематически пополняет их МАС-адресами таблицу коммутации или-же маршрутизации, присваивая каждому запросу идентификатор. Поэтому, при повторной инициализации пакета свитч считывает идентификатор и адресует устройству, с которого поступил запрос. Остальные компьютеры при этом не задействованы и факт передачи информации проходит без их участия.
В некоторых случаях свитч путают с концентратором. Но это не два аналогичных понятия. Концентратор, он же Hub, хоть и похож в чем-то на свитч, устройство немного иного применения. Хаб, получая пакеты данных, раздает их всем участникам сети. Эта раздача происходит постоянно. К примеру, если осуществляется связка двух компьютеров в сети, то они активно передают информацию друг другу.
Но в то же время Hub дублирует или передает данные и другим устройствам, которые подключены в сеть. Минусом такого процесса является мусорный трафик, который не нужен и это обычно приводит к перегрузке сети. В результате может произойти потеря пакетов, когда работающих устройств будет чересчур много. Такая потеря происходит из-за канала, ширины которого в данном случае недостаточно.
Сегодня концентраторы не особо популярны и практически не используются. Но все же иногда встречаются в рамках какой-либо древней локальной сети. Стоит сказать, что при данном подключении есть еще один существенный минус — невозможность соединения большого количества устройств. Что, в свою очередь, может сделать устройство нового поколения — коммутатор (Switch). Происходит это из-за того, что как раз у Хабов нет таблицы маршрутизации.
Причины установки коммутатора
Пользователей часто интересует вопрос: “Если есть роутер, зачем нужен свитч?” Выделим две основные причины:
- Отсутствие у роутера необходимого количества LАN-портов. Например, если их только два, то помимо самого компьютера придется выбирать что подключить: сетевой сканер или же SIР-телефон. Соответственно, это вызывает определенные неудобства.
- Ели сетевые устройства находятся удаленно друг от друга. Например, в разных кабинетах одного офиса. В этом случае для каждой группы выделяется свой свитч.
Отметим, что установка настраиваемого коммутатора уровнем L2 и выше может потребоваться для использования какого-либо технического функционала, например:
- сформировать сетевой узел для просмотра статистики;
- дополнительно выполнить настройку приоритетов (QоS);
Виды свитчей
Как мы знаем, коммутатор имеет большее количество портов, что отличает его от роутера. Все они подразделяются на две группы:
- Управляемые. К этому виду свитчей подключение и последующая настройка происходит через web-интерфейс.веб, утилиту , консоль или командную строку. Обычно они имеют достаточно полезный функционал в рамках дополнительных опций. К примеру, зеркалирование портов или просмотр статистики. Основным параметром выбора является скорость передачи, поддерживаемая устройством. Если данные по локальной сети передаются в небольших объемах, то 100/1000 MB/s вполне хватит.В свою очерель управляемые делятся по уровням функционала: L2 / L2+ / L3 и устройства L2 / L2+ уже имеют близкую к маршрутизаторам функциональность, разве что проигрывая про скорости обработки правил трафика на самых дешевых вариантах, тогда как L3 — даже превосходящую роутеры функционал и пропусную способность, достигая возможности межсетевых экранов.
- Неуправляемые или L1. У данных свитчей web-интерфейс отсутствует, так как нет необходимости в настройке. Неуправляемый свитч самостоятельно передает данные с одного порта на другие. То есть, за счет имеющейся в нем таблицы с МАС-адресами, помогающей запоминать к какому именно порту относится то или иное устройство, передача идет не сразу всем, а конкретно одному получателю.
Каким образом подключить свитч
Подключить свитч можно к маршрутизаторам разных моделей: ТР-Link, Zyxel и пр. В настройке неуправляемых коммутаторов нет каких-либо сложностей. С роутером они соединяются при помощи патч-корда, либо VIP-порта (при его наличии).
При подключении управляемых коммутаторов процесс выглядит не так просто. Он должен иметь персональный IР-адрес в локальной сетке, аналогичный маршрутизатору. Бывают ситуации, когда на устройстве уже существует какая-то подсеть, либо на самом свитче установлен свой DCHР-сервер. Это будет являться проблемой в доступе к сети роутера соединенных с коммутатором устройств. В связи с этим, при подключении сети через такой вид коммутатора необходимо проверить параметры и выполнить предварительную настройку.
Как настроить коммутатор
Настройку управляемого свитча следует осуществлять в несколько этапов:
- В первую очередь необходимо отключить DHCP и Wi-Fi.
- Следующим действием деактивируем динамический DNS-сервер.
- Далее проверяем параметры WAN.
- После проведения проверки отключаем параметры безопасности.
- Заключительным этапом деактивируем DMZ.
Важный момент: отключать сервисы нужно обязательно. Это необходимо для обезличивания роутера, который исполняет роль коммутатора. Данные действия осуществляются в целях избежания конфликта между оборудованием. А это может вызвать многочисленные сбои в процессе передачи данных.
- Все посты
- HDD диски (29)
- KVM-оборудование (2)
- Powerline-адаптеры (2)
- SSD диски (53)
- USB-носители (4)
- USB-хабы (3)
- Батареи к ИБП (4)
- Безопасность (3)
- Беспроводные USB адаптеры (2)
- Беспроводные роутеры (18)
- Блоки питания (15)
- Бумага (1)
- Веб-камеры (1)
- Вентиляторы корпусные (4)
- Видеокарты (58)
- Видеонаблюдение (6)
- Внешние диски (4)
- Гарнитуры (2)
- Графические планшеты (2)
- Дисковые полки (2)
- Док-станции (1)
- Звуковые карты (4)
- Инструменты (1)
- Источники бесперебойного питания (ИБП) (23)
- Кабели и патч-корды (9)
- Картриджи (1)
- Карты памяти (2)
- Клавиатуры (8)
- Колонки (3)
- Коммутаторы (13)
- Комплекты (клавиатура и мышь) (2)
- Компьютерная периферия (2)
- Компьютерные корпуса (15)
- Компьютерные кресла (2)
- Компьютеры (51)
- Контроллеры и адаптеры (8)
- Ленточные носители (2)
- Маршрутизаторы (3)
- Материнские платы (19)
- Мониторы (45)
- Моноблоки (9)
- МФУ (6)
- Мыши (9)
- Ноутбуки (42)
- Общая справка (64)
- Оперативная память (17)
- Оптические накопители (1)
- Панели (1)
- Планшеты (3)
- Плоттеры (1)
- Портативные аккумуляторы (1)
- Принтеры (6)
- Программное обеспечение (69)
- Процессорное охлаждение (18)
- Процессоры (56)
- Рабочие станции (6)
- Ретрансляторы Wi-Fi (4)
- Серверы (65)
- Сетевые карты (6)
- Сетевые фильтры (3)
- Системы распределение питания (1)
- Сканеры (2)
- СХД (9)
- Телевизоры (3)
- Телекоммуникационные шкафы (11)
- Телефония (4)
- Тонкие клиенты (2)
- Трансиверы (5)
- Умный дом (2)
Также вас может заинтересовать
Диспетчеры локальных сетей: обзор коммутаторов Cisco
Свитч или коммутатор — это сетевое устройство, которое необходимо в двух ситуациях: если вам нужно подключить несколько компьютеров к проводному интернету или настроить локальную сеть в офисе.
Коммутаторы TP-Link: объединяем компьютеры в локальную сеть
Сетевой коммутатор или свитч — это устройство, которое соединяет несколько компьютеров в единую сеть с возможностью доступа к проводному интернету. С помощью коммутатора также можно связать все устройства в офисе в локальную сеть без доступа в интернет.
Коммутаторы HP Enterprise: что выбрать?
HP Enterprise — один из крупнейших производителей и поставщиков сетевого оборудования. Среди ассортимента этой компании представлены в том числе и коммутаторы: это специальные устройства, которые предназначены либо для проводного подключения нескольких .
Выбираем коммутатор: обзор ассортимента Zyxel
Вам необходимо подключить компьютеры в офисе к проводному интернету или соединить их в единую локальную сеть? С обеими задачами справится коммутатор — в этой статье мы рассмотрим, на какие его параметры нужно обратить внимание при покупке.
Всё для локальной сети: обзор коммутаторов Huawei
Коммутатор или свитч — это сетевое оборудование, которое может пригодиться в двух ситуациях: либо вам нужно подключить несколько компьютеров к проводному интернету, либо вы хотите установить локальную сеть в офисе.
Сетевой коммутатор: что это, как подключить, для чего нужен в квартире такой свитч
Количество цифровой техники постоянно возрастает. На этом фоне остро встает вопрос, как все подключить к скоростной сети передачи данных. Решить такую проблему позволяет коммутатор.
Обзор коммутаторов Mikrotik
Возникла необходимость создать локальную сеть в офисе или подключить все офисные компьютеры к проводному интернету? Тогда вам необходим коммутатор (свитч). В этой статье разберем, какой коммутатор выбрать из ассортимента компании Mikrotik.
Локально-вычислительная сеть на D-Link: выбираем коммутатор
Коммутатор встречается далеко не в каждом доме или офисе. Тем не менее, он выполняет две важные задачи: с его помощью можно либо подключить несколько компьютеров к проводному интернету, либо соединить компьютеры в единую локальную сеть (без интернет-дос.
Локальная сеть от Allied Telesis: как выбрать коммутатор?
Свитч или сетевой коммутатор — это оборудование, которое предназначено либо для подключения нескольких компьютеров к проводному интернету, либо для объединения нескольких компьютеров в локальную сеть (без интернет-доступа).
Без чего не обходится ни одна локальная сеть? Выбираем коммутатор Linksys
Если вам нужно объединить несколько компьютеров в локальную сеть и обеспечить им доступ к проводному интернету, вам необходимо специальное устройство — коммутатор (свитч).
Консольное подключение к коммутаторам и маршрутизаторам
При размещении или аренде нескольких серверов или стоек мы предоставляем клиентам возможность арендовать или разместить в наших дата-центрах свои собственные коммутаторы, маршрутизаторы или другое сетевое оборудование. Для первоначальной настройки или обновления прошивки часто требуется доступ к консоли устройства, который можно получить, подключив специальный кабель к COM-порту (или USB-порту) сервера с одной стороны и к консольному порту коммутатора или маршрутизатора — с другой.
Для успешного подключения к устройству необходимо знать параметры настройки консольного порта. Эту информацию можно получить в официальной документации либо на сайте производителя: Cisco Catalyst, Cisco Nexus, Dell, D-Link, Extreme Networks, Huawei, HPE, MikroTik и др.
Самые распространённые варианты указаны в таблице ниже. Как правило, они подходят к большинству устройств.
Параметр | Значение |
Baud rate | 9600/115200 |
Data bits | 8 |
Parity | none |
Stop bits | 1 |
Flow control | none / (Xon/Xoff) |
Ниже рассмотрены варианты подключения с помощью утилит в разных операционных системах.
Windows
Для подключения к оборудованию по консольному порту можно воспользоваться популярной утилитой Putty.
Putty — простой в установке и использовании, свободно распространяемый клиент для различных протоколов удалённого доступа, включая подключение через последовательный (COM) порт.
На скриншотах ниже показаны настройки программы для подключения по консольному порту — в нашем примере приведены параметры для оборудования Cisco.
Перед подключением необходимо определить номер порта в ОС, номер определяется в диспетчере устройств в разделе Ports (COM & LPT).
Шаг 1: Выбрать тип подключения (Connection type): Serial и ввести номер порта (Serial line), в примере: COM1. Перейти в категорию (Category) Serial для установки параметров подключения.
Шаг 2: Настройка параметров подключения:
- Bits per sec: 9600
- Data bits: 8
- Parity: none
- Stop bits: 1
- Flow control: none
После настройки параметров подключения — нажать Open и можно приступать к настройке оборудования.
Linux
В Linux можно воспользоваться утилитой Minicom.
Minicom — текстовая утилита управления модемным подключением в UNIX-подобных ОС, эмулятор терминала.
Программа обычно входит в стандартные репозитории популярных дистрибутивов, устанавливается просто:
В Debian / Ubuntu:
sudo apt-get install minicom
В Red Hat / Centos:
sudo yum -y install minicom
Перед запуском необходимо определить название последовательного порта в системе:
dmesg | grep tty
Как правило, последовательный порт называется /dev/ttyS[0-9] , в случае использования USB — /dev/ttyUSB[0-9]
Шаг 1: Первый запуск, настройка:
sudo minicom -s
Утилита интерактивная, для навигации по меню необходимо использовать стрелки.
Шаг 2: Перейти в раздел настройки параметров последовательного порта:
Шаг 3: Нажать A и ввести название последовательного порта:
Шаг 4: Нажать E для входа в меню установки параметров скорости и чётности. Нажать C для выбора скорости 9600 либо кнопками A и B выбрать требуемую скорость.
Подтвердить скорость и нажать Enter :
Шаг 5: После настройки параметры должны выглядеть, как показано на скриншоте ниже. Дополнительно клавишей F можно отключить аппаратное управление потоком.
Шаг 6: Сохранить настройки в dfl-файл, нажать Exit и приступить к настройке оборудования. Для выхода из minicom использовать сочетание клавиш Ctrl+A Q или Ctrl+A X .
Справка: Ctrl+A Z .
Для последующих запусков программы с преднастроенными параметрами можно использовать:
Три подхода для входа в ваш Ethernet коммутатор
Как правило, Ethernet коммутатор можно использовать сразу после покупки. Что ж, если пользователи хотят настроить VLAN или закрыть порт или что-то еще, они должны внести в него некоторые изменения, которые требуют от них первого входа в коммутатор. Следующие три распространенных метода входа подробно проиллюстрированы на примере коммутатора FS 3900-24F4S. Они представляют собой широко используемый вход в локальный консольный порт, удаленный вход через Telnet и вход через HTTP через веб-браузер, который служит графической альтернативой предыдущему методу с командной строкой.
Войдите в Ethernet коммутатор через консольный порт
Консольный порт используется для подключения компьютера непосредственно к гигабитному Ethernet коммутатору и управления коммутатором, поскольку для коммутатора нет устройства отображения. В большинстве случаев это самый первый шаг для настройки Ethernet коммутатора. Вот подробные шаги входа в Ethernet коммутатор через консольный порт.
1. Подключите консольный порт коммутатора к последовательному порту компьютера с помощью комбинации конвертера кабеля RJ45 — RS232 (поставляется поставщиком) и конвертера кабеля RS232 — USB (подготовлен самостоятельно).
2. Включите компьютер. Установите программное обеспечение эмуляции терминала на компьютере. Вы можете использовать встроенный гипертерминал Windows 2000 на компьютере. Если нет встроенного программного обеспечения эмуляции терминала, подготовьте программное обеспечение эмуляции терминала, такое как SecureCRT и Putty с открытым исходным кодом.
3. Включите коммутатор, затем откройте установленное программное обеспечение для входа (здесь в качестве примера используется программа Putty), выберите режим последовательного входа, и порт определяется диспетчером устройств. Скорость передачи в бодах: 115200, стоп-биты: 1.
Напоминание: разные Ethernet коммутаторы могут иметь разную скорость передачи в бодах. Например, скорость передачи данных коммутаторов FS TAP составляет 9600 и 115200.
4. Нажмите кнопку »Открыть» и введите имя пользователя и пароль по умолчанию (admin / admin) на всплывающем интерфейсе, чтобы войти в коммутатор. Затем можно провести настройку.
Пользователи также могут получить доступ к базовой конфигурации коммутатора через порт управления, однако, с общими полномочиями. Как только ситуация становится ненормальной или требует повышенных разрешений, консольный порт, который обладает привилегиями суперпользователя, может помочь выполнить операцию.
Войдите в Ethernet коммутатор через Telnet
Telnet — это протокол управления сетью, с помощью которого администратор или другой пользователь может получить удаленный доступ к чужому компьютеру. Этот метод применим к удаленному управлению коммутатором, для которого был настроен IP-адрес (по умолчанию 192.168.1.1) и аккаунт пользователя с полномочиями администратора.
1. Подключите порт управления коммутатором к порту RJ45 компьютера с помощью Ethernet кабеля, например, кабелей Cat5e и Cat6.
2. Включите компьютер. Нажмите “Пуск” в левом нижнем углу экрана, затем нажмите “Выполнить”. Введите команду “telnet 192.168.1.1” в появившемся окне и нажмите “OK”.
3. Введите имя пользователя и пароль (admin / admin) в интерфейсе входа в систему, затем перейдите в меню конфигурации, как показано ниже. Путем ввода соответствующей команды можно установить различные конфигурации коммутатора, такие как укладка коммутатора, MLAG и LACP.
Параметр Ethernet коммутатора удобно изменять путем входом в систему через Telnet, что экономит использование консольного кабеля.
Войдите в Ethernet коммутатор через веб-браузер
Это осуществимый для доступа, настройки, и управления коммутатором через веб-браузер с поддержкой Java, если Ethernet коммутатор назначен с IP-адресом и активировал службу HTTP. Фактически, через веб-интерфейс многие параметры коммутатора могут быть изменены и сконфигурированы, а рабочее состояние коммутатора отображается, что значительно облегчает управление Ethernet коммутатором. Вот процедура входа в систему коммутатора FS S3900-24F4S через веб-браузер:
1. Подключите порт управления коммутатора к порту RJ45 на компьютере с помощью Ethernet кабеля.
2. Откройте веб-браузер. Введите IP-адрес (например, по умолчанию 192.168.1.1 или тот, который установлен в соответствии с Вашими потребностями) Вашего коммутатора. Нажмите «Войти», и появится диалоговое окно входа.
3. Введите имя пользователя и пароль с правами администратора, затем нажмите “OK” , и Вы можете проверить состояние конфигурации коммутатора, а также настроить или изменить порт коммутатора.
Заменив текстовую конфигурацию команд интуитивно понятным графическим интерфейсом, веб-вход дружествен к новичку.
Заключение
Вышеупомянутые три подхода применимы ко всем Ethernet коммутаторам FS. Однако не все поставщики коммутаторов используют один и тот же веб-интерфейс, но методы входа в систему практически одинаковы. Вы можете обратиться к подсказкам в операции или приложенной спецификации для успешного входа в систему.
Поиск по MAC-адресу на коммутаторах Juniper
В локальной сети часто нужно узнать, на каком порту коммутатора находится определенный MAC-адрес устройства. Задача решается легко, если в сети несколько коммутаторов, но, когда их больше 30, всё значительно усложняется. Хочу поделиться небольшим скриптом на Python, который ищет нужный MAC-адрес в сети и возвращает имя и порт коммутатора, на котором зарегистрирован этот MAC.
Конструктивная критика приветствуется. Подробности под катом.
Если дизайн сети выполнен правильно, то есть корневой коммутатор CORE, к которому подключены коммутаторы распределения DS (Distribution Switch), а к ним, в свою очередь, коммутаторы уровня доступа AS (Access Switch). Это правило не всегда выполняется, коммутаторы доступа могут быть подключены последовательно. В любом случае, на порту вышестоящего коммутатора находятся все MAC-адреса устройств, подключенных к нижестоящему коммутатору.
Например, если интересующее нас устройство подключено к коммутатору AS3, то, начав поиск с CORE, мы найдем этот адрес на порту, ведущему к DS1. Зайдя на DS1, мы обнаружим этот MAC на порту, ведущему к AS2, зайдя на AS2, мы увидим, что он ведет нас к AS3, и только на AS3 мы найдем конкретный порт, к которому подключено интересующее нас устройство.
Делать это всё руками не хотелось, перебирать все коммутаторы в цикле и определять, где аплинк, а где нет тоже, поэтому родилось следующее решение, которым и хочу поделиться.
Немного теории.
Чтобы найти MAC 08:62:66:c7:b3:45 на коммутаторе Juniper, нужно выполнить следующую команду:
show ethernet-switching table | match 08:62:66:c7:b3:45
Если такой MAC есть, ответ будет следующим:
vlan151 08:62:66:c7:b3:45 D - xe-0/0/23.0
В последней колонке будет имя интерфейса коммутатора, на котором зарегистрирован MAC. Но как понять, куда ведет этот интерфейс? И тут на помощь приходят Interface Descriptions. Это строки в конфигурационном файле коммутатора, которые позволяют назначить текстовые метки интерфейсам.
show interfaces xe-0/0/23 descriptions
Interface Admin Link Description xe-0/0/23 up up SW>DS1
При конфигурации мы указываем, что этот интерфейс ведет к нижестоящему коммутатору:
set interfaces xe-0/0/23 description SW>DS1
Реализация
Предлагаемый скрипт будет делать следующее:
- подключаться по SSH на корневой коммутатор;
- проверять, на каком интерфейсе находится передаваемый в параметрах MAC-адрес;
- проверять Description этого интерфейса;
- если интерфейс ведет к коммутатору, рекурсивно заходить на следующий по цепочке коммутатор.
#в этот список будут складываться результаты поиска searchpass = [] #main функция принимает в качестве параметра MAC-адрес и вызывает функцию checkswitch, в которую в качестве параметра передает имя корневого коммутатора и MAC-адрес. Весь результат поиска складывается в список searchpass в формате json. def main(argv): mac_addr = argv[0] checkswitch('CORE',mac_addr) for switch in searchpass: print (json.dumps(switch, ensure_ascii=False)) if __name__ == "__main__": main(sys.argv[1:]) #функция рекурсивного поиска MAC-адреса def checkswitch(hostname,mac_addr): try: #создаем пустой словарь возвращаемых значений, ключу host присваиваем имя коммутатора returnvalue = <> returnvalue['host']=hostname #sendCommand подключается к заданному коммутатору по SSH и вызывает команду поиска MAC-адреса в таблице коммутации answer = sendCommand(hostname,'show ethernet-switching table | match '+mac_addr) #делим строку на колонки, в последней находится имя интерфейса #vlan151 08:62:66:c7:b3:45 D - xe-0/0/23.0 if(answer!=0): iface = answer.split()[4] returnvalue['iface']=iface #проверяем description интерфейса, нужно отрезать последние 2 символа .0 от имени и забрать последнюю строку #xe-0/0/23 up up SW>DS01 answer = sendCommand(hostname,'show interfaces '+iface[:-2]+' descriptions | last 1 | no-more') iface = answer.split() #Если description на интерфейсе есть, записываем его в словарь и проверяем, начинается ли он с SW>. Если да, отрезаем эти 3 символа, берем имя следующего коммутатора и рекурсивно вызываем функцию снова. if(len(iface)>2): iface=iface[3] returnvalue['description']=iface else: returnvalue['description']='none' searchpass.append(returnvalue) if (iface[:3]=='SW>'): checkswitch(iface[3:],mac_addr) else: returnvalue['iface']='none' searchpass.append(returnvalue) except Exception as e: print(e)
Таким образом, скрипт пройдет по всем коммутаторам сети, начиная с ядра, и попытается найти нужный MAC. Для успешной работы достаточно поддерживать в актуальном состоянии descriptions на интерфейсах, а топология может быть практически любой сложности.
Пример работы скрипта:
python findmac.py 00:17:fc:21:e8:f9 DS1"> AS2"> AS3">
Если MAC отсутствует, получим
Последняя строка – интересующий нас коммутатор и порт, но при этом мы можем отследить весь путь поиска.
Полный код – под спойлером, благодарю за внимание.
findmac.py
import paramiko import time import sys import json import threading import logging login = 'user1' password = 'pass1234' searchpass = [] port = 22 class LogPipe(threading.Thread): def __init__(self, level): threading.Thread.__init__(self) self.daemon = False self.level = level self.fdRead, self.fdWrite = os.pipe() self.pipeReader = os.fdopen(self.fdRead) self.start() def fileno(self): return self.fdWrite def run(self): for line in iter(self.pipeReader.readline, ''): logging.log(self.level, line.strip('\n')) self.pipeReader.close() def close(self): os.close(self.fdWrite) def execute_ssh_command(host, port, username, password, command): try: # Create the SSH client. ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Connect to the host. ssh.connect(host, port, username, password, look_for_keys=False) # Send the command (non-blocking) stdin, stdout, stderr = ssh.exec_command(command) # Wait for the command to terminate while not stdout.channel.exit_status_ready() and not stdout.channel.recv_ready(): time.sleep(1) stdoutstring = stdout.readlines() stderrstring = stderr.readlines() return stdoutstring, stderrstring finally: if ssh is not None: # Close client connection. ssh.close() def sendCommand (hostname,command): returnvalue = 0 logging.info('Host '+hostname+', command: '+command) Try: #add .mydomain for FQDN (stdoutstring, stderrstring) = execute_ssh_command(hostname+'.mydomain', port, login, password, command+'\n') if (len(stdoutstring)>0): logging.info(stdoutstring[0]) if (len(stderrstring)>0): logging.info(stderrstring[0]) except Exception as e: return returnvalue else: returnvalue = stdoutstring[0] finally: return returnvalue def checkswitch(hostname,mac_addr): try: returnvalue = <> returnvalue['host']=hostname answer = sendCommand(hostname,'show ethernet-switching table | match '+mac_addr) if(answer!=0): iface = answer.split()[4] returnvalue['iface']=iface #cut .0 prefix in the interface name answer = sendCommand(hostname,'show interfaces '+iface[:-2]+' descriptions | last 1 | no-more') iface = answer.split() if(len(iface)>2): iface=iface[3] returnvalue['description']=iface else: returnvalue['description']='none' searchpass.append(returnvalue) if (iface[:3]=='SW>'): checkswitch(iface[3:],mac_addr) else: returnvalue['iface']='none' searchpass.append(returnvalue) except Exception as e: logging.info(e) def main(argv): mac_addr = argv[0] #configure log logging.basicConfig(filename='/var/log/findmac.log', level=logging.INFO, format='%(asctime)s %(message)s') logging.info('Find MAC: '+mac_addr) checkswitch('CORE',mac_addr) for switch in searchpass: print (json.dumps(switch, ensure_ascii=False)) if __name__ == "__main__": main(sys.argv[1:])
- Блог компании Plarium
- Системное администрирование
- Сетевые технологии