Search the Community
Showing results for tags 'cisco'.
Found 14 results
-
Update 03.12.2015 Добавлена возможность отображать DNS имена для определенных хостов, это позволит явно и человеко-понятно идентифицировать соответствующие узлы в сети. Отсутствие записи на DNS сервере должно привлечь соответствующее внимание к хосту. В конфигурацию добавлен параметр $domain позволяющий удалять из DNS имени хоста имя домена. Чтобы из name.domain.com сделать name, необходимо указать $domain = ".domain.com" Обновлена база производителей сетевого оборудования - oui.txt Мелки доработки интерфейса. Update 26.11.2015 Добавлена возможность отображать реальные имена портов (Fa1, Ethernet1/0/1, Port1 ...). Внимание: не все устройства способны передавать данную информацию, в связи с этим оставлены числовые идентификаторы, чтобы в таких случаях иметь систему идентификации. Добавлена возможность описывать в конфигурации настройки для каждого устройства отдельно. Если не использовать эту возможность, то для оборудования будет применена общая конфигурация. Добавлена возможность описывать в конфигурации уникальные OID-ы для конкретного оборудования аналогично п.2. Мелкие доработки интерфейса и кода. В данной теме мы будем рассуждать о мониторинге сетевого оборудования и подключенных к нему хостах. Следовало бы разместить её в другом разделе, но 90% всех манипуляций и дальнейшая эксплуатация будет производиться на UNIX-подобной платформе. В моем случае используется: Linux Ubuntu 14.04 Apache/2.4.7 PHP 5.5.9 Библиотека php5-snmp Также само сетевое оборудование (маршрутизаторы и свичи) должно поддерживать работу по протоколу SNMP и соответствовать стандартам ISO. Проект разработан отталкиваясь от топологии сети - звезда. Имеются множество отдельных подсетей 192.168.0.0 все они ходят во внешний мир через маршрутизаторы (в моем случае фирмы Cisco). В самих подсетях используются различные свичи, по большей части поддерживающие SNMP v1 и выше. Ранее я уже поднимал данную тему на другом, дружественном, форуме, но потом работа над проектом бала остановлена. На данный момент вопрос опять стал актуален и решено переделать как основную программу, так и внешний вид. Старая версия была написана на скорую руку и выглядела невзрачно и с большими изъянами в коде. На данный момент проект преобразился и выглядит следующим образом. Ваш браузер должен поддерживать HTML5. Чтобы избежать вопроса "зачем это нужно?" предлагаю Вам задачку. Попробуйте назвать номер порта на свиче к которому подключен компьютер дяди Васи зная лишь его IP. Или еще интереснее - зная лишь производителя его сетевого оборудования. Или вопрос от начальника "Скажи мне, кто подключен к этому свичу, а я пока узнаю, кого нужно искать". Раньше это делалось следующим образом. Подключаемся к маршрутизатору и спрашиваем, какой MAC принадлежит интересующему нас IP, пусть это будет 192.168.0.3 cisco-router#sh arp | include Vlan1 Internet 192.168.0.1 210 0800.0694.d027 ARPA Vlan1 Internet 192.168.0.2 210 0800.bdf0.0010 ARPA Vlan1 Internet 192.168.0.3 210 000e.be08.001c ARPA Vlan1 Internet 192.168.0.4 210 000e.42ee.20cf ARPA Vlan1 Internet 192.168.0.5 210 0800.218e.be09 ARPA Vlan1 Internet 192.168.0.6 5 20cf.0800.000e ARPA Vlan1 Internet 192.168.0.7 - 001c.0010.000e ARPA Vlan1 Internet 192.168.0.8 6 0010.1fc4.0800 ARPA Vlan1 Internet 192.168.0.9 2 d027.0694.0800 ARPA Vlan1 ... Теперь мы знаем MAC, это 000e.be08.001c. Подключаемся к свичу и просим его показать нам таблицу MAC адресов с сортировкой по конкретному MAC-у. cisco-switch#sh mac-address-table | include 000e.be08.001c 000e.be08.001c Dynamic 1 FastEthernet21 Теперь мы знаем, что интересующий нас (или не нас) хост использует порт FastEthernet21 Все прошло относительно быстро и гладко. Но что делать, если порт имеет порядковый номер превышающий общее число физических портов на свиче, оборудование разных производителей и оно не поддерживает одинаковый формат MAC адресов, отсутствуют различные фильтры, как например "include" в оборудовании Cisco. При этом может быть несколько свичей с десятками хостов. Все это повлияет на время поиска и на конечный результат. Реализация Мы знаем, что и у какого оборудования спрашивать. Так и давайте спрашивать это используя SNMP протокол. Первым делом необходимо настроить Ваше сетевое оборудование, выставить необходимые разрешения и community. Описывать этот пункт нету смысла т.к у Вас своё оборудования, а у дяди Васи совсем другое. На сервере, где установлен Apache необходимо доставить библиотеку реализующий работу snmpwalk в PHP apt-get install php5-snmp service apache2 restart На самом деле большая часть работы уже сделана. Теперь необходимо скачать сам скрипт, он будет прикреплен к данному посту и отредактировать его под себя. Редактируем .htaccess RewriteEngine On Options +FollowSymlinks Options -MultiViews RewriteBase /switch/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?$1 [L] Убедитесь, что у Вас подключен модуль mod_rewrite и измените относительный путь указанный в RewriteBase на удобный Вам. Если закинуть каталог switch в корневую веб директории Apach, то вносить изменений в файл не нужно. Редактируем index.php $url = 'http://'.$_SERVER["HTTP_HOST"].'/switch/'; $domain = '.domain.com'; $community = 'public'; $unit = array( 'network_id' => array( 'name' => 'Желаемое для отображения имя подсети или объекта где сеть эксплуатируется', 'router' => '192.168.1.1', 'switch' => array('192.168.1.2'), ), 'object_name' => array( 'name' => 'Желаемое для отображения имя подсети или объекта где сеть эксплуатируется', 'router' => '192.168.2.1', 'switch' => array('192.168.2.2', '192.168.2.3', '192.168.2.4'), ), // UPDATE 26.11.2015 'new_object' => array( 'name' => 'new object name', 'router' => '192.168.3.1', 'switch' => array('192.168.3.2', '192.168.3.3'), // Уникальные настройки для маршрутизатора 192.168.3.2 '192.168.3.1' => array( 'community' => 'public2', ), // Уникальные настрокий для свича 192.168.3.3 '192.168.3.3' => array( 'community' => 'public3', 'ifName' => '.1.3.6.1.2.1.31.1.1.1.1', 'dot1dBasePortIfIndex' => '.1.3.6.1.2.1.17.1.4.1.2', ), ), ); Мы старались сделать конфигурацию интуитивно понятной, получилось это или нет, спорный вопрос. Поживем увидем, а пока разберем, что тут к чему. $url - содержит http адрес до каталога со скриптом. Измените /switch/ на используемый Вами network_id, object_name - любой понравившийся идентификатор для подсети. Используйте латиницу и\или цифры и не используйте пробелы. name - описание для подсети. Оно будет отображаться в списке на главной странице скрипта и в навигационном баре router - IP адрес маршрутизатора, через который подсеть ходит во внешний мир switch - список IP адресов свичей используемых в подсети Можно производить уникальную конфигурацию для любого сетевого устройства. Для этого в конфигурации нужного объекта необходимо указать адрес устройства и описать массив настроек для него. Можно изменять абсолютно любые существующие значения в скрипте. ВНИМАНИЕ: если Вы не понимаете, за что отвечает та или иная переменная и как устроена эта кухня, лучше обратитесь к нам, и мы Вам обязательно поможем! Список рекомендуемых для изменения значений (описание значений имеется в самом скрипте): community atPhysAddress sysDescr dot1dTpFdbAddress dot1dTpFdbPort dot1dBasePortIfIndex ifName Определение производителя по MAC адресу Каждому производителю выделяется определенный список MAC адресов для использования в его сетевом оборудовании. Ознакомиться с этим списком можно по адресу http://standards-oui.ieee.org/oui.txt Мы включили этот файл в состав архива, но советуем Вам периодически обновлять его. В скрипте используется shell_exec $vendor = explode('(hex)', shell_exec("cat ./oui.txt | grep ".str_replace(' ', '-', substr($mac, 0, 8)))); Это потенциально не безопасно, но мы не передаем ей данные полученные от пользовательского ввода, только MAC адреса. В любом случае shell_exec должен быть разрешен или часть кода, отвечающая за определения производителя, должна быть удалена. Есть очень интересная статья на сайте CISCO. Она поможет Вам разобраться в принципах работы данного скрипта. К сожалению я узнал об этой статье уже после написания большей части кода программы. Но уже имеются идеи для следующей версии! PS: Если все сделано правильно, то Вы сможете насладится нашим велосипедом. Проект будет дорабатываться и обрастать всяческими "свистульками". Приятного использования 😃
-
Вдруг захотелось с "ядра" просматривать трафик например программой Wireshark. Реализуется достаточно просто. Создаём сессию мониторинга для vlan monitor session 1 source vlan 1 И указываем на какой интерфейс зеркалировать monitor session 1 destination interface Gi1/0/1 Соединяем этот интерфейс с устройством на котором установлен Wireshark и получаем профит. Удачи!
-
Случается в нашей жизни, что домой приходит "жить" "кошка" в качестве центрального маршрутизатора домашней информационной сети, но как её "кормить", "готовить" рядовой пользователь даже не представляет, а услуги по "готовке" этого профессионального оборудования стоят недёшево. Сам я уже кое-как ухаживать за ними умею, так что буду делиться своими познаниями. Да и для памяти не повредит, или как сказал один хороший человек, "для потомков". Начинать "готовку" я буду с самого начала, и только в консоли, то есть даже с какой стороны к ней подойти так сказать. Просто включив в электрическую сеть и воткнув в оборудование сетевой кабель вашей домашней информационной сети, бесполезное дело. Работать оно будет, но толку как от вазы в доме, и то меньше. Значит, что нам надо: Непосредственно само оборудование, консольный кабель и устройство с которого мы будем выполнять первоначальную настройку, в данном случае это компьютер под управлением OS Windows. Подготовились, помещаем консольный кабель в разъём на маршрутизаторе специально для этого предназначеный, выглядят они примерно так: Далее подключаем второй конец кабеля к системному блоку в подходящий COM порт, естественно он должен быть на устройстве. Если у вас вдруг оказался USB консольный кабель, то подключайте его к разъёму на маршрутизаторе, там тоже написано "CONSOLE" зачастую ещё и выделено светло голубым цветом, и в порт USB на системном блоке. Устанавливайте драйвера в систему, благо Cisco Systems побеспокоились о них. Перегружаем OS Windows и включаем маршрутизатор. Теперь нам нужна программа для подключения по COM, она неизменна уже много лет, по крайней мере у меня, благодаря своему чёрному экрану. Это Putty, качаем её с официального сайта устанавливаем или сразу запускаем, смотря какой дистрибутив скачали. В итоге у нас появляется окно похожее на это: Если у вас не по умолчанию отмечено "Serial" то отмечайте смело, "Speed" 9600, Serial Line нужно посмотреть в диспетчере устройств Порты (COM и LPT) ----> Cisco Serial (COM №) если вы присоеденились USB консольным кабелем, или просто Последовательный порт (COM1) если вы присоеденились обычным консольным кабелем и у вас этот порт один. Нажимаем смело Open, открывается консоль и мы почти рядом с моментом истины, нажимаем Enter. Должно появиться приглашение на ввод команд, как то так: Router> Тут конечно всё зависит от состояния программного обеспечения и конфигурации на маршрутизаторе, варианты разные есть, но это уже другая песня. Задавайте вопросы в теме. Итак, даём имя нашему новому жителю. Router>en Router#conf t Router(config)#hostname home-cisco home-cisco(config)# Мы не хотим чтоб она болтала всем пароли на лево и на право, значит будем хранить их в зашифрованном виде home-cisco(config)#service password-encryption home-cisco(config)# Мы учимся управлять маршрутизатором из консоли, значит отрубаем ненужные сервисы home-cisco(config)#no ip http server home-cisco(config)#no cdp run Назначаем управляющего всем этим хозяйством и под каким логином и паролем он будет заходить в систему хозяйничать. home-cisco(config)#username vasyaPupkin privilege 15 secret ParolVasiPupkina home-cisco(config)# Врубаем протокол защиты доступа home-cisco(config)#aaa new-model home-cisco(config)# Ограничим доступ на устройство частными адресами домашней сети написав табличку на листике, при условии что у вас сеть 192.168.1.0/24. И повесим листик с табличкой на удалённый вход, кому можно сюда заходить. home-cisco(config)#access-list 23 permit 192.168.1.0 0.0.0.255 home-cisco(config)#line vty 0 4 home-cisco(config-line)#access-class 23 in home-cisco(config-line)#privilege level 15 home-cisco(config-line)#logging synchronous home-cisco(config-line)#transport input ssh telnet home-cisco(config-line)#exit home-cisco(config)# Если мы не хотим стольким адресам разрешать доступ, то листик будет выглядеть попроще, при условии что ваш компьютер с которого вы будете заходить имеет сетевой адрес 192.168.1.10. Вот так: home-cisco(config)#access-list 23 permit 192.168.1.10 home-cisco(config)# На остальных точках входа можно написать "no exec", кроме line con 0, это консоль ;-). Просмотреть какие есть можно командой "sh run" не входя в режим конфигурации. Начинаются они с "line" Начнём настраивать и самому устройству сетевой адрес. Для этого просматриваем конфиг: home-cisco(config)#end home-cisco#sh run Там будет много всего, нам нужны интерфейсы, выглядеть они в конфигурации на данный момент будут примерно так: ! interface FastEthernet0/0 no ip address shutdown speed auto ! Если гигабитный интерфейс то имя его будет "GigabitEthernet0/0". Но можно посмотреть доступные интерфейсы и командой "sh ip int br". Вывод будет выглядеть примерно так: Interface IP-Address OK? Method Status Protocol FastEthernet0/0 unassigned YES NVRAM down down FastEthernet0/1 unassigned YES NVRAM down down FastEthernet0/2 unassigned YES NVRAM down down Заходим в его настройку и назначаем ему адрес в сети: home-cisco#conf t home-cisco(config)#int fa0/0 home-cisco(config-if)#ip add 192.168.1.1 255.255.255.0 home-cisco(config-if)#no shut home-cisco(config-if)#end home-cisco# Адрес мы назначили, теперь можно настроить и ssh для порядку. home-cisco#conf t home-cisco(config)#ip domain name myhome.local home-cisco(config)#crypto key generate rsa label DLYASSH mod 2048 home-cisco(config)#ip ssh version 2 home-cisco(config)#ip ssh time-out 60 home-cisco(config)#ip ssh authentication-retries 2 home-cisco(config)#ip ssh dh min size 4096 home-cisco(config)#end home-cisco# На заметку, если у вас есть сомнения в наборе команд то нажимайте TAB чтоб команда дописалась полностью потом ? и вам выведет список доступных для продолжения символов. Заходить на устройство по SSH можно с помощью Putty, жмякнув соответсвующую галочку в программе и набрав сетевой адрес устройства. Далее вводим логин и пароль какой мы назначили и мы на устройстве. Ну в принципе всё, на первый раз хватит. Сохраняем конфигурацию и отдыхаем. home-cisco#wr Building configuration... [OK] home-cisco#
-
-
Version 1.0.0
190 downloads
Набросок небольшой программы на PHP для облегчения жизни IT отделу. Позволяет просматривать какие хосты располагаются на портах сетевого оборудования (за основу взято оборудование фирмы Cisco). Для связи используется SNMP протокол. Из информации об узле выводятся: MAC IP DNS имя Производитель оборудования Подробное описание можно посмотреть в следующей теме. -
Для данной процедуры использую автоматическое архивирование которое происходит при записи изменений в NVRAM. Архивы хранятся на удаленном TFTP сервере. Настройка маршрутизатора: Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#archive Router(config-archive)#path tftp://10.10.10.10/OBJ-NAME/$H Router(config-archive)#write-memory Router(config-archive)#^Z Router#writeOBJ-NAME - папка с именем агрегата\помещения\т.п (должна уже быть на TFTP сервере) для удобства поиска т.к это все потом будет съедать другая программа$H - имя устройства (устройство знает этот макрос как и $T - время создания архива)write-memory - создание архива происходит при изменении (записи в nvram) конфигурацииМожно сделать автоматическое создание архивов раз в день или как душе угодно Router(config-archive)#time-period 1440Просмотр созданных архивов Router#show archiveСравнение архивов Router#show archive config differences tftp://10.10.10.10/router-1 tftp://10.10.10.10/router-2Восстановление конфигурации из множества источников Router#configure replace ? archive: URL of config file that will replace running-config cns: URL of config file that will replace running-config flash: URL of config file that will replace running-config ftp: URL of config file that will replace running-config http: URL of config file that will replace running-config https: URL of config file that will replace running-config null: URL of config file that will replace running-config nvram: URL of config file that will replace running-config rcp: URL of config file that will replace running-config scp: URL of config file that will replace running-config system: URL of config file that will replace running-config tar: URL of config file that will replace running-config tftp: URL of config file that will replace running-config usbflash0: URL of config file that will replace running-config xmodem: URL of config file that will replace running-config ymodem: URL of config file that will replace running-configTFTP Router#configure replace tftp://10.10.10.10/router-1USB Router#configure replace usbflash0:router-1
-
Бывает так случается, что мы замечаем, что через устройство проходит какой-то необычно большой трафик. Что же, сейчас посмотрим кто там усиленно старается что-то скачать. Заходим в интерфейс с которого будем снимать статистику home-cisco#conf t home-cisco(config)#int fa0/0 home-cisco(config-if)#ip flow ingress home-cisco(config-if)#ip flow egress home-cisco(config-if)#exit home-cisco(config)# Ну а потом в режиме глобальной конфигурации настраиваем параметры отображения home-cisco(config)#ip flow-top-talkers home-cisco(config-flow-top-talkers)#top 20 home-cisco(config-flow-top-talkers)#sort-by bytes home-cisco(config-flow-top-talkers)#cache-timeout 100 home-cisco(config-flow-top-talkers)#end home-cisco#wr Building configuration... [OK] home-cisco# И смотрим кто там у нас, командой sh ip flow top-talkers . Удачи!
-
На сей раз мы настроим подключение по протоколу PPPOE от провайдера. Конечно сейчас уже мало таких способов предоставлять услуги интернета, но всё же ещё встречаются. Начнём. Подготовим интерфейс home-cisco#conf t home-cisco(config)#int Fa0/1 home-cisco(config-if)#no ip address home-cisco(config-if)#pppoe enable home-cisco(config-if)#pppoe-client dial-pool-number 1 home-cisco(config-if)#exit home-cisco(config)# Создадим новый интерфейс home-cisco(config)#interface Dialer1 home-cisco(vonfig-if)#ip address negotiated home-cisco(vonfig-if)#ip mtu 1492 home-cisco(vonfig-if)#encapsulation ppp home-cisco(vonfig-if)#dialer pool 1 home-cisco(vonfig-if)#no cdp enable home-cisco(vonfig-if)#ppp authentication chap callin home-cisco(vonfig-if)#ppp chap hostname ВАШ-ЛОГИН home-cisco(vonfig-if)#ppp chap password ВАШ-ПАРОЛЬ home-cisco(vonfig-if)#exit home-cisco(config)# Пропишем маршрут по умолчанию home-cisco(config)#ip route 0.0.0.0 0.0.0.0 Dialer1 home-cisco(config)# Проверим соединение home-cisco(config)#end home-cisco#ping 8.8.8.8 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/13/16 ms home-cisco# Если всё нормально, то мы получим ответ от адреса который пинговали. Итак, на устройстве интернет у нас появился, но надо раздать нам его во внутреннюю сеть, приступим. Идём на локальный интерфейс который мы настраивали ранее тут home-cisco#conf t home-cisco(config)#int fa0/0 home-cisco(config-if)#ip nat inside home-cisco(config-if)#exit home-cisco(config)# Далее на интерфейс который создали home-cisco(config)#int Dialer1 home-cisco(config-if)#ip nat outside home-cisco(config-if)#exit home-cisco(config)# Создадим список доступа (по желанию) home-cisco(config)#ip access-list extended НАЗВАНИЕ-СПИСКА-ДОСТУПА home-cisco(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any home-cisco(config-ext-nacl)#deny ip any any home-cisco(config-ext-nacl)#exit home-cisco(config)# И конечный штрих ip nat inside source list НАЗВАНИЕ-СПИСКА-ДОСТУПА interface Dialer1 overload Всё, всем устройствам в вашей сети стал доступен интернет. Естественно, как я уже повторял, в некоторых случаях нужно производить другие настройки. Пишите. Если у нас не PPPOE соединение, так называемый прямой интернет то всё намного проще. На внешнем интерфейсе, у нас это fa0/1 прописываем: home-cisco#conf t home-cisco(config)#int fa0/1 home-cisco(config-if)#ip nat inside home-cisco(config-if)#ip add DHCP (если провайдер нам не предоставил статический адрес или статика по DHCP) home-cisco(config-if)#ip add ИП-АДРЕС МАСКА-СЕТИ (если провайдер нам дал статику без DHCP) home-cisco(config-if)#exit home-cisco(config)# Меняем строку с правилом. А так-же Шлюз по умочанию. home-cisco(config)#ip nat inside source list НАЗВАНИЕ-СПИСКА-ДОСТУПА interface fa0/1 overload home-cisco(config)#ip route 0.0.0.0 0.0.0.0 ШЛЮЗ-ПРОВАЙДЕРА home-cisco(config)#exit home-cisco# Из всего остального оставляем только список доступа, ну и естественно ip nat inside на внутреннем, у нас это fa0/0. Вообще с PPPOE от провайдера бывают частенько танцы с бубном. Возможно я что-то упустил, у меня бывает. Если так, то поправьте. Enjoy.
-
В прошлый раз мы совершили начальную настройку, в принципе всё что написано не претендует на исключительность и наверняка в каком-нибудь частном случае могут быть разные нюансы. Но, на то он и форум чтоб спросить и получить ответ, не так ли?Эта часть будет короткой ибо DHCP для внутренней сети настраивается очень легко и приятно на этом устройстве. Итак наше устройство является центральным маршрутизатором для нашей сети, ещё не полноценным но мы идём к этому, для этого следующим шагом поднимем на нём сервер динамической настройки узла. Поехали. Исключаем, на всякий случай несколько сетевых адресов из пула: home-cisco#conf t home-cisco(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.10 home-cisco(config)# И поднимаем свой пул адресов home-cisco(config)#ip dhcp pool LAN home-cisco(dhcp-config)#network 192.168.1.0 255.255.255.0 home-cisco(dhcp-config)#default-router 192.168.1.1 home-cisco(dhcp-config)#dns-server 8.8.8.8 home-cisco(dhcp-config)#end home-cisco#wr Building configuration... [OK] home-cisco# Вот в принципе и всё, адресочки начнут выдаваться в диапазоне параметра network исключая первые десять адресов. Шлюз будет присваиваться исходя из параметра default-router, а DNS сервер исходя из параметра dns-server. Ваш Кэп. Мы закончили настройку простейшего DHCP на cisco.
-
Делюсь шаблоном для мониторинга состояния маршрутизаторов CISCO, zabbix 2.4 Работа с устройством реализована по протоколу SNMP и тут есть ряд подводных камней, но самый основной это изменения стандарта от одной версии прошивки к другой. Если понадобится изменить OID значения, то поискать их можно тут http://tools.cisco.com/Support/SNMP/do/BrowseOID.do но часть старый параметров в базе отсутствует. Тут уж или через поисковик или "Селяви, что в перевод с древнегреческого - не повезло!". Простая конфигурация устройства: cisco-test#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cisco-test(config)#snmp-server community public RO cisco-test(config)# Но при этом любой может подключиться к устройству и читать с него данные, если вы хотите чтобы плохие люди могли еще и отдавать команды то RO необходимо заменить на RW Если Вы желаете ограничить доступ к SNMP серверу устройства по IP, то необходимо использовать access-list: cisco-test#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cisco-test(config)#ip access-list standard SNMP_ACCESS_RO cisco-test(config-std-nacl)#permit 192.168.1.2 cisco-test(config)#snmp-server community public RO SNMP_ACCESS_RO cisco-test(config)#^Z cisco-test# Сommunity можно обозвать как угодно, хоть BLABLABLA место public. IP естественно заменить на адрес Вашего сервера. RO - только чтение, RW - полный доступ Мы будем только читать, поэтому RO. В теории конечно можно отлавливать определенные события на устройстве и предпринимать ответные действия автоматически, только в таких случаях RW. Но об этом мы поговорим в другой раз. Теперь необходимо добавить макрос в zabbix Администрирование -> Общие -> Макросы {$SNMP_COMMUNITY} = имя community указанное в конфигурации CISCO, например "public" Сам шаблон можно забрать в конце поста. Немного о шаблоне. На данным момент собираются данные: Аптайм Модель маршрутизатора Загрузка центрального процессора за: 5 секунд, 1 минуту, 5 минут Статус (online\offline) Память: ОЗУ, ПЗУ Список доступных интерфейсов Статусы сетевых интерфейсов Количество byte RX\TX на каждом интерфейсе Количество error byte RX\TX на каждом интерфейсе По этим данным строятся соответствующие графики (ОЗУ, ПЗУ и т.п не выведены, можете добавить самостоятельно) Пока маловато триггеров, но по мере обновления шаблона, их количество увеличится: Маршрутизатор выключен или с ним нет связи по Ethernet Маршрутизатор был пере запущен менее 5 минут назад Нагрузка на ЦП выше 80% PS: следите за обновлениями! zbx_templates_router_cisco.xml
-
Данный пост является следствием воспитательных мероприятий направленных в сторону моего любимого сына, дабы защитить его не окрепший разум от великой силы интернета которую не способен подавить даже крептонит. Время идёт, ребёнок начинает без контрольно посещать глобальную паутину, у нас есть "кошка" в качестве центрального маршрутизатора, вот её мы и приготовим на эту тему. Как настроить DHCP написано тут. Попробуем его ограничить хоть чем-то, опишу тут пока одно устройство, начнём. Описываем пул для устройства. В отличии от нормального DHCP-сервера, в cisco чтоб привязать сетевой адрес к маку надо создавать новый пул, да-да, как-то так. Примечательно, что мак адрес пишется с добавлением 01 для windows или 00 для unix в переди вот таким методом примерно: 01ХХ.ХХХХ.ХХХХ.ХХ Вообще, лучше всего сначала посмотреть в каком виде приходит мак: Зачастую с мак-адресами бываю пляски с бубном и если у вас что-то не так в этом плане, пишите. Так, статику мы дали, пошли дальше. Дадим тырнет за NAT через список доступа и создадим его для заNATированной сети Оттак, ну осталось задать временной диапазон когда вырубать интернет на устройстве Вот так в будни мы вырубаем, ибо нех. Вообще можно побаловаться со временем, всё довольно гибко. Предложения с примерами в комменты! Enjoy!
-
Соединяем два устройства небезысвестной фирмы через тырнет. Простенько без наворотов. Ваялось всё на cisco 2911 System Bootstrap, Version 15.0(1r)M16, RELEASE SOFTWARE (fc1). С лицухами такими: Technology Package License Information for Module:'c2900' ----------------------------------------------------------------- Technology Technology-package Technology-package Current Type Next reboot ------------------------------------------------------------------ ipbase ipbasek9 Permanent ipbasek9 security securityk9 Permanent securityk9 uc None None None data None None NoneCISCO № 1 Объявляем политику и описываем её. (config)#crypto isakmp policy 1 encr aes 256 authentication pre-share group 2 lifetime 3600Создаём ключ аутентификации вместе с ключевой строкой (config)#crypto isakmp key ОЧЕНЬСЛОЖНЫЙКЛЮЧ address АДРЕСНАЗНАЧЕНИЯНастраиваем окно шлюза (config)#crypto ipsec security-association replay window-size 128Настраиваем IPSEC transform set политику (config)#crypto ipsec transform-set ИМЯНАШЕЙПОЛИТИКИ esp-aes 256 esp-sha-hmac mode transport requireОбозначаем время жизни (config)#crypto isakmp keepalive 10 10Чистим DF биты для инкапсулированных пакетов (config)#crypto ipsec df-bit clearВаяем карту, можно идти и другим путём, но я ваяю карту. Такой я упоротый. (config)#crypto map ИМЯНАШЕЙКАРТЫ 200 ipsec-isakmp set peer АДРЕСНАЗНАЧЕНИЯ set security-association lifetime seconds 21600 set transform-set ИМЯНАШЕЙПОЛИТИКИ set pfs group2 match address НОМЕРACCESSЛИСТАСоздаём интерфейс (config)#interface Tunnel0 ip address 172.16.0.1 255.255.255.252 ip virtual-reassembly in ip tcp adjust-mss 1396 tunnel source АДРЕСНАШВНЕШНИЙ tunnel mode ipip tunnel destination АДРЕСНАЗНАЧЕНИЯВешаем крипто на внешний интерфейс (config)#interface ИМЯВНЕШНЕГОИНТЕРФЕЙСА crypto map ИМЯНАШЕЙКАРТЫСоздаём лист доступа (config)#access-list НОМЕРACCESSЛИСТА permit ip host АДРЕСНАШВНЕШНИЙ host АДРЕСНАЗНАЧЕНИЯ (config)#access-list НОМЕРACCESSЛИСТА permit ip host АДРЕСНАЗНАЧЕНИЯ host АДРЕСНАШВНЕШНИЙКидаем рельсы (config)#ip route ВНУТРЕННЯЯСЕТЬУДАЛЁННАЯ МАСКАСЕТИУДАЛЁНОЙ Tunnel0В принципе всё на первом, ну а на втором делаем эдентичные настройки кроме, естественно, ип адреса на интерфейсе тунеля. Там пишем 172.16.0.2 адресок и радуемся. Если что-то не получилось, предполагаю, что что-то сделано не так как написано тут или сделано кое что ещё. Надеюсь ничего не забыл и не перепутал, со мной такое бывает. Enjoy!
-
Необычные проблемы требуют необычных решений. Начнем с прелюдии На определенном удалении друг от друга имеются две локальные домашние сети. Во главе одной стоит маршрутизатор на базе стационарного компьютера с RouterOS на борту, а сердцем второй является Cisco 800-ой серии (далее просто Кошка). В каждой из сетей имеются ресурсы представляющие интерес друг для друга. И вот настал прекрасный момент, была приобретена статика, и начался процесс поднятия GRE тоннеля. Все завелось с первого раза, пакетики побежали между сетями. Данное событие было отмечено, как подобает Русскому представителю IT сообщества и все разошлись заниматься своими делами. Но счастье было не долгим. Через пару дней, из-за не преодолимых обстоятельств, произошло отключение питания на стороне "Кошки" и MikroTik начал скучать и ждать своего боевого товарища. После проведения аварийно-восстановительных работ "Кошка" радостно заурчала, но пакетики не побежали. Вскрытие показало, что провайдер не поддерживает адекватную работу с DHCP семейства кошачьих и в панике выдавал первый свободный IP из пула, со всеми вытекающими последствиями. Несколько недель велись переговоры с провайдером, и раз эта статья была написана, значит, провайдер пока не добился положительного результата. Решено разбираться самостоятельно и попробовать поднимать тоннель, основываясь только на одном статическом адресе. Ведь в цирке медведи ездят на одноколесных велосипедах? А чем мы хуже медведей?! Реализация Кошка будет гулять по всему пулу адресов провайдера, следовательно, приспосабливаться к этим загулам придется MiktoTik-у. Средствами RouterOS решить эту проблему сходу не получилось и решено вводить в бой тяжелую артиллерию, это сверх мощный и производительный сервер Raspberry Pi А Вы, что подумали?) Эта игрушка с 512mb RAM, 800мГц CPU, Lunux-ом на борту и питанием от USB разъема самого MikroTik-а очень сильно расширяет функционал маршрутизатора, не повышая расходы на электроэнергию и общую стоимость проекта. Если быть серьезным, то MikroTik API + Raspberry Pi (далее просто Малина) позволяют реализовать практически любую Вашу фантазию. Фото моего роутера Поведение будет следующим: На MikroTik-е настраивается проброс 80 порта до Малины.Cisco каждые N минут будет обращаться по протоколу http на Raspberry Pi и методом GET передавать секретный ключ.На борту Малинки крутится Apache + PHP. Последний проверяет корректность ключа, реализуя идентификацию кошки по схеме "Свой\Чужой".Если идентификация пройдена успешно, то по средствам API маршрутизатора происходит перенастройка GRE тоннеля.Хочу отметить, что таким способом можно производить конфигурацию всего маршрутизатора, а не только GRE. Проброс портов на MikroTik-е /ip firewall nat add action=netmap chain=dstnat disabled=no dst-port=80 in-interface=ether1 protocol=tcp to-addresses=192.168.1.100 to-ports=80in-interface - имя интерфейса смотрящего в интернетto-addresses - внутренний адрес малинкиНе забудьте активировать сервис API у маршрутизатора. /ip service enable 5 Настройка Cisco cisco-test#configure terminal cisco-test(config)#kron policy-list gre cisco-test(config-kron-policy)#cli more http://64.64.64.64/?key=a7656fafe94dae72b1e1487670148412 cisco-test(config-kron-policy)#exit cisco-test(config)#kron occurrence gre in 015 recurring cisco-test(config-kron-occurrence)#policy-list gre cisco-test(config-kron-occurrence)#^Z cisco-test#write В данном случае настраивается задание для планировщика KRON на выполнение команды more каждые 15 минут. Сама команда просто выводит на экран содержимое из различных источников. Естественно необходимо изменить IP адрес на актуальный для Вас. Значение key необходимо изменить на Ваш ключ, указанный в PHP скрипте ниже и закодированный в md5! Еще один важный момент. В GET запросе, символ вопроса "?" обозначает, что начинается передача параметров. В Cisco это спец символ показывающий справку по командам и чтобы его ввести, необходимо перед его написанием нажать Ctrl + V PHP Script для Raspberry Pi Нам понадобится PHP class для работы с RouterOS API https://github.com/BenMenking/routeros-api <?PHP /** * @copyright: iT4iT.CLUB (c) 2015 * @author: https://it4it.club */ # Данные для подключения к API RouterOS $host = '192.168.0.1'; $login = 'login'; $pass = 'password'; # Уникальный ключ для проверки "Свой\Чужой". Удаленный маршрутизатор обязан передавать его в md5 $key = 'secret key'; # Интерфейс, который необходимо переконфигурировать $interfaceName = 'gre-tunnel1'; if(isset($_GET['key']) and $_GET['key'] == md5($key)) { require('./routeros_api.class.php'); $API = new RouterosAPI(); if($API->connect($host, $login, $pass)) { $API->write('/interface/gre/print'); foreach($API->read() as $id => $param) { if($param['name'] == $interfaceName and $param["remote-address"] != $_SERVER['REMOTE_ADDR']) { $API->comm("/interface/gre/set", array( "numbers" => $id, "remote-address" => $_SERVER['REMOTE_ADDR'], )); break; } } $API->disconnect(); } } ?>В данном скрипте при совпадении ключей происходит поиск интерфейса gre-tunnel1 в ветке /interface/gre и в случае его обнаружения следует изменение параметра remote-address на IP клиента передавшего верный ключ в формате md5. Более подробно почитать об API можно на официальном сайте http://wiki.mikrotik.com/wiki/Manual:API PS: Данный вариант управления маршрутизатором довольно забавен и очень гибок, но будьте очень осторожны, "друзья" Эдварда не дремлют! Советую также использовать https, фильтр по IP (провайдера) в коде скрипта и в фаерволе MikroTik-а. routeros_cisco_rpi.zip
-
Первым делом необходимо получить список записей в access-list с их порядковыми номерами. cisco-test#show access-lists Standard IP access list SNMP_ACCESS_RO 10 permit 10.10.10.100 Extended IP access list 101 10 permit ip 192.168.0.0 0.0.0.255 host 10.10.10.100 20 permit ip 192.168.0.0 0.0.0.255 host 10.10.10.101 30 permit ip 192.168.0.0 0.0.0.255 host 10.10.10.102В данном случае в ACL 101 имеются три записи с порядковыми номерами 10, 20, 30. Эти уникальные идентификаторы и позволят нам совершить акт вандализма. cisco-test#configure t Enter configuration commands, one per line. End with CNTL/Z. cisco-test(config)#ip access-list e 101 cisco-test(config-ext-nacl)#no 30В конфигурационном терминале мы выбрали для редактирования ACL 101 и указали какую запись необходимо удалить ссылаясь на её порядковый номер (в данном случае 30).