По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
![img](/static/images/general/icons/networks_theory.png)
Выходим на новый уровень. Для изучения следующей темы вы уже должны хорошо понимать связующее дерево. Связующее дерево (Spanning Tree Protocol STP) — это важная тема. Есть много вещей, которые могут пойти не так, и в этой статье мы рассмотрим ряд инструментов, которые мы можем использовать для защиты нашей топологии связующего дерева.
Для профессионалов
PortFast: мы видели это в статье о spanning tree и rapid spanning tree. Он настроит порт доступа как пограничный порт, поэтому он переходит в режим forwarding немедленно.
BPDU Guard: это отключит (err-disable) интерфейс, который имеет настроенный PortFast, если он получает BPDU.
BPDUFilter: это будет подавлять BPDU на интерфейсах.
Root Guard: это предотвратит превращение соседнего коммутатора в корневой мост, даже если он имеет лучший идентификатор моста.
UplinkFast: мы видели это в статье о связующем дереве. Он улучшает время конвергенции.
BackboneFast: мы также видели это в статье о связующем дереве. Оно улучшает время конвергенции, если у вас есть сбой косвенной связи.
UplinkFast и BackboneFast не требуются для rapid spanning tree, поскольку оно уже реализовано по умолчанию. Мы начнем с BPDUguard:
В топологии выше мы имеем идеально работающую топологию остовного дерева. По умолчанию связующее дерево будет отправлять и получать BPDU на всех интерфейсах. В нашем примере у нас есть компьютер, подключенный на интерфейсе fa0/2 коммутатора B. Есть кто-то, кто с враждебными намерениями мог бы запустить инструмент, который сгенерирует BPDU с превосходящим ID моста. Что же произойдет- так это то, что наши коммутаторы будут считать, что корневой мост теперь может быть достигнут через коммутатор B, и у нас будет повторный расчет связующего дерева. Звучит не очень хорошо, правда?
Можно поставить человека (хакера) в середине топологии для атаки так, чтобы никто не знал. Представьте себе, что хакер подключает свой компьютер к двум коммутаторам. Если хакер станет корневым мостом, то весь трафик от коммутатора А или коммутатора C к коммутатору В будет проходить через него. Он запустит Wireshark и подождет, пока произойдет чудо.
BPDUguard гарантирует, что, когда мы получаем BPDU на интерфейс, интерфейс перейдет в режим err-disable.
Чтобы продемонстрировать работу BPDUguard будем использовать два коммутатора. Настроем интерфейс fa0/16 коммутатора B так, что он перейдет в режим err-disable, если он получит BPDU от коммутатора C.
SwitchB(config)#interface fa0/16
SwitchB(config-if)#spanning-tree bpduguard enable
Вот как вы включаете его в интерфейсе. Имейте в виду, что обычно вы никогда не будете делать это между коммутаторами. Вы должны настроить это на интерфейсах в режиме доступа, которые подключаются к компьютерам.
А-а... вот и наш интерфейс.
SwitchB(config-if)#no spanning-tree bpduguard
SwitchB(config-if)#shutdown
SwitchB(config-if)#no shutdown
Избавиться от BPDUguard можно используя команды shut/no shut, чтобы сделать интерфейс снова рабочим.
SwitchB(config)#spanning-tree portfast bpduguard
Вы также можете использовать команду spanning-tree portfast bpduguard. Это позволит глобально активировать BPDUguard на всех интерфейсах, которые имеют включенный portfast.
SwitchB(config)#spanning-tree portfast default
Portfast также может быть включен глобально для всех интерфейсов, работающих в режиме доступа.
Это полезная команда, позволяющая проверить свою конфигурацию. Вы видите, что portfast и BPDUGuard были включены глобально.
BPDUGuard переведет интерфейс в режим err-disable. Кроме того, можно фильтровать сообщения BPDU с помощью BPDUfilter. BPDUfilter может быть настроен глобально или на уровне интерфейса и есть разница:
Глобальный: если вы включите bpdufilter глобально, любой интерфейс с включенным portfast станет стандартным портом.
Интерфейс: если вы включите BPDUfilter на интерфейсе, он будет игнорировать входящие BPDU и не будет отправлять никаких BPDU.
Вы должны быть осторожны, когда включаете BPDUfilter на интерфейсах. Вы можете использовать его на интерфейсах в режиме доступа, которые подключаются к компьютерам, но убедитесь, что вы никогда не настраиваете его на интерфейсах, подключенных к другим коммутаторам. Если вы это сделаете, вы можете получить цикл.
Для демонстрации работы BPDUfilter мы будем снова использовать коммутатор B и коммутатор C.
SwitchB(config)#interface fa0/16
SwitchB(config-if)#spanning-tree portfast trunk
SwitchB(config-if)#spanning-tree bpdufilter enable
Он перестанет посылать BPDU и будет игнорировать все, что будет получено.
SwitchB#debug spanning-tree bpdu
Вы не увидите никаких интересных сообщений, но если вы включите отладку BPDU, то заметите, что он больше не отправляет никаких BPDU. Если вы хотите, вы также можете включить отладку BPDU на коммутаторе C, и вы увидите, что нет ничего от коммутатора B.
SwitchB(config)#interface fa0/16
SwitchB(config-if)#no spanning-tree bpdufilter enable
Давайте избавимся от команды BPDUfilter на уровне интерфейса.
SwitchB(config)#spanning-tree portfast bpdufilter default
Вы также можете использовать глобальную команду для BPDUfilter. Это позволит включить BPDUfilter на всех интерфейсах, которые имеют portfast.
Еще один вариант, с помощью которого мы можем защитить наше связующее дерево, - это использовать RootGuard. Проще говоря, RootGuard позаботится о том, чтобы вы не принимали определенный коммутатор в качестве корневого моста. BPDU отправляются и обрабатываются нормально, но, если коммутатор внезапно отправляет BPDU с идентификатором верхнего моста, вы не будете принимать его в качестве корневого моста. Обычно коммутатор D становится корневым мостом, потому что у него есть лучший идентификатор моста, к счастью, у нас есть RootGuard на коммутатое C, так что этого не произойдет!
Рассмотрим с вами конфигурацию с коммутатором B и коммутатором C.
SwitchB(config)#spanning-tree vlan 1 priority 4096
Давайте убедимся, что коммутатор C не является корневым мостом.
Вот как мы включаем RootGuard на интерфейсе.
SwitchB#debug spanning-tree events
Spanning Tree event debugging is on
Не забудьте включить отладку, если вы хотите увидеть события.
SwitchC(config)#spanning-tree vlan 1 priority 0
Давайте перенастроим коммутатор B, изменив приоритет на наименьшее возможное значение 0 на коммутаторе C. Он теперь должен стать корневым мостом.
Вот так коммутатор B не будет принимать коммутатор C в качестве корневого моста. Это заблокирует интерфейс для этой VLAN.
Вот еще одна полезная команда, чтобы проверить, работает ли RootGuard.
Связующее дерево становится все более безопасным с каждой минутой! Однако есть еще одна вещь, о которой мы должны подумать…
Если вы когда-либо использовали волоконные кабели, вы могли бы заметить, что существует другой разъем для передачи и приема трафика. Если один из кабелей (передающий или принимающий) выйдет из строя, мы получим однонаправленный сбой связи, и это может привести к петлям связующего дерева. Существует два протокола, которые могут решить эту проблему:
LoopGuard
UDLD
Давайте начнем с того, что внимательно рассмотрим, что произойдет, если у нас произойдет сбой однонаправленной связи.
Представьте себе, что между коммутаторами волоконно-оптические соединения. На самом деле имеется другой разъем для передачи и приема. Коммутатор C получает BPDU от коммутатора B, и в результате интерфейс стал альтернативным портом и находится в режиме блокировки.
Теперь что-то идет не так... transmit коннектор на коммутаторе B к коммутатору C был съеден мышами. В результате коммутатор C не получает никаких BPDU от коммутатора B, но он все еще может отправлять трафик для переключения между ними.
Поскольку коммутатор C больше не получает BPDU на свой альтернативный порт, он перейдет в forwarding режим. Теперь у нас есть one way loop (петля в один конец), как указано зеленой стрелкой.
Один из методов, который мы можем использовать для решения нашего однонаправленного сбоя связи — это настройка LoopGuard. Когда коммутатор отправляет, но не получает BPDU на интерфейсе, LoopGuard поместит интерфейс в состояние несогласованности цикла и заблокирует весь трафик!
Мы снова будем использовать эту топологию для демонстрации LoopGuard.
SwitchA(config)#spanning-tree loopguard default
SwitchB(config)#spanning-tree loopguard default
SwitchC(config)#spanning-tree loopguard default
Используйте команду spanning-tree loopguard по умолчанию, чтобы включить LoopGuard глобально
SwitchB(config)#interface fa0/16
SwitchB(config-if)#spanning-tree portfast trunk
SwitchB(config-if)#spanning-tree bpdufilter enable
В примере у нас нет никаких волоконных разъемов, поэтому мы не сможем создать однонаправленный сбой связи. Однако мы можем смоделировать его с помощью BPDUfilter на интерфейсе SwitchB fa0/16. Коммутатор C больше не будет получать никаких BPDU на свой альтернативный порт, что заставит его перейти в режим переадресации.
Обычно это вызвало бы петлю, но, к счастью, у нас есть настроенный LoopGuard. Вы можете увидеть это сообщение об ошибке, появляющееся в вашей консоли. Проблема решена!
SwitchC(config-if)#spanning-tree guard loop
Если вы не хотите настраивать LoopGuard глобально, вы т можете сделать это на уровне интерфейса.
Другой протокол, который мы можем использовать для борьбы с однонаправленными сбоями связи, называется UDLD (UniDirectional Link Detection). Этот протокол не является частью инструментария связующего дерева, но он помогает нам предотвратить циклы.
Проще говоря, UDLD — это протокол второго уровня, который работает как механизм keepalive. Вы посылаете приветственные сообщения, вы их получаете, и все прекрасно. Как только вы все еще посылаете приветственные сообщения, но больше их не получаете, вы понимаете, что что-то не так, и мы блокируем интерфейс.
Убедитесь, что вы отключили LoopGuard перед работой с UDLD. Мы будем использовать ту же топологию для демонстрации UDLD.
Существует несколько способов настройки UDLD. Вы можете сделать это глобально с помощью команды udld, но это активирует только UDLD для оптоволоконных линий связи! Существует два варианта для UDLD:
Normal (default)
Aggressive
Когда вы устанавливаете UDLD в нормальное состояние, он помечает порт как неопределенный, но не закрывает интерфейс, когда что-то не так. Это используется только для того, чтобы «информировать» вас, но это не предотвратит циклы.
Агрессивный - это лучшее решение, когда пропадает связь с соседом. Он будет посылать кадр UDLD 8 раз в секунду. Если сосед не отвечает, интерфейс будет переведен в режим errdisable.
SwitchB(config)#interface fa0/16
SwitchB(config-if)#udld port aggressive
SwitchC(config)#interface fa0/16
SwitchC(config-if)#udld port aggressive
Мы будем использовать коммутатор B и C, чтобы продемонстрировать UDLD. Будем использовать агрессивный режим, чтобы мы могли видеть, что интерфейс отключается, когда что-то не так.
Если вы хотите увидеть, что UDLD работает, вы можете попробовать выполнить отладку.
Теперь самое сложное будет имитировать однонаправленный сбой связи. LoopGuard был проще, потому что он был основан на BPDUs. UDLD запускает свой собственный протокол уровня 2, используя собственный MAC-адрес 0100.0ccc.сссс.
SwitchC(config)#mac access-list extended UDLD-FILTER
SwitchC(config-ext-macl)#deny any host 0100.0ccc.cccc
SwitchC(config-ext-macl)#permit any any
SwitchC(config-ext-macl)#exit
SwitchC(config)#interface fa0/16
SwitchC(config-if)#mac access-group UDLD-FILTER in
Это творческий способ создавать проблемы. При фильтрации MAC-адреса UDLD он будет думать, что существует сбой однонаправленной связи!
Вы увидите много отладочной информации, но конечным результатом будет то, что порт теперь находится в состоянии err-disable.
Вы можете проверить это с помощью команды show udld.
LoopGuard и UDLD решают одну и ту же проблему: однонаправленные сбои связи.
Они частично пересекаются, но есть ряд различий, вот общий обзор:
LoopGuardUDLDНастройкиГлобально/на портуГлобально (для оптики)/на портуVLAN?ДаНет, на портуАвтосохранениеДаДа, но вам нужно настроить errdisable timeout.Защита от сбоев STP из-за однонаправленных связейДа - нужно включить его на всех корневых и альтернативных портахДа - нужно включить его на всех интерфейсах.Защита от сбоев STP из-за сбоев программного обеспечения (нет отправки BPDU)ДаНетЗащита от неправильного подключения (коммутационный оптический приемопередающий разъем)НетДа
Есть еще одна последняя тема, которую хотелось бы объяснить, это не протокол связующего дерева, но речь идет о избыточных ссылках, поэтому я оставлю ее здесь. Это называется FlexLinks.
Вот в чем дело: при настройке FlexLinks у вас будет активный и резервный интерфейс. Мы настроим это на коммутаторе C:
Fa0/14 будет активным интерфейсом.
Fa0/16 будет интерфейс резервного копирования (этот блокируется!).
При настройке интерфейсов в качестве FlexLinks они не будут отправлять BPDU. Нет никакого способа обнаружить петли, потому что мы не запускаем на них связующее дерево. Всякий раз, когда наш активный интерфейс выходит из строя, резервный интерфейс заменяет его.
SwitchC(config)#interface fa0/14
SwitchC(config-if)#switchport backup interface fa0/16
Именно так мы делаем интерфейс fa0/16 резервной копией интерфейса fa0/14.
Вы можете видеть, что связующее дерево отключается для этих интерфейсов.
Проверьте нашу конфигурацию с помощью команды show interfaces switchport backup. Вот и все, что нужно было сделать. Это интересное решение, потому что нам больше не нужно связующее дерево. Ведь в любой момент времени активен только один интерфейс.
SwitchC(config)#interface f0/14
SwitchC(config-if)#shutdown
Давайте закроем активный интерфейс.
Вы можете видеть, что fa0/16 стал активным. Вот и все.
![img](/static/images/general/icons/voip_useful.png)
Для того, чтобы стать полноценным администратором Asterisk, вам необходимо уметь администрировать операционную систему IP – АТС. О том, как заботиться о своем Asterisk установленном на CentOS расскажем дальше.
Сменить SSH порт
Подключение и управление операционной системой CentOS осуществляется по протоколу SSH (Secure Shell), который позволяет безопасно производить операции на ОС удаленно. По умолчанию, протокол SSH работает на 22 порту. Чтобы подключиться к серверу IP – АТС, откройте программу SSH – клиент Putty, и в поле, указанном красным, введите IP – адрес или доменное имя вашего Asterisk
Мы рекомендуем сохранить подключение в программе. Для этого, в поле, выделенном оранжевым, укажите имя для подключения и нажмите Save
В целях повышения безопасности, вы можете его изменить следующим образом:
Входим в режим редактирования демона SSH
[root@localhost ~]# nano /etc/ssh/sshd_config
Ищем строчку, которая содержит запись #Port 22. Обычно она находится под текстовым баннером:
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Уберите символ # (решетку) в начале строчки и укажите номер порта, который вам необходим. Например, 7022
Port 7022
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Сохраните изменения. После успешного сохранения, выполните рестарт демона SSH:
[root@localhost ~]# /etc/init.d/sshd restart
Управление дисковым пространством
Если на вашем Asterisk включен функционал записи телефонных разговоров, то вам необходимо отслеживать свободное дисковое пространство. Мы рекомендуем прибегать в этом вопросе к автоматизации – написанию скриптов, которые будут удалять записи, старше определенного срока автоматически. Итак, перейдем к просмотру свободного дискового пространства.
Команда du выводит размер файлов и папок в директории, в которой вы находитесь на текущий момент:
[root@localhost ~]# du
1240 ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264/1.5.3
1244 ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264
4 ./.mozilla/firefox/5r4h2uwt.default/healthreport
Более удобным для человеческого восприятия является команда с флагом -h du -h, которая указывает размер файлов и папок в текущей директории с указанием приставки (K – килобайт, М – мегабайт и так далее.)
[root@localhost ~]# du -h
1.3M ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264/1.5.3
1.3M ./.mozilla/firefox/5r4h2uwt.default/gmp-gmpopenh264
4.0K ./.mozilla/firefox/5r4h2uwt.default/healthreport
Наиболее «тяжелой» с точки зрения занимаемого пространства директорией в файловой структуре Asterisk является папка /var/spool/asterisk/, в которой находятся файлы голосовой почты, системы записи, факсы и так далее. Если мы хотим узнать размер папки, в которой мы храним файлы системы записи, то добавляем к конструкции du -h флаг s:
[root@localhost asterisk]# du -sh /var/spool/asterisk/monitor/
111M /var/spool/asterisk/monitor/
Отлично, с этим разобрались. Теперь нам надо научиться понимать размер наших дисков. Это гораздо проще – укажите команду df - h и система выведет все диски, с указанием свободного пространства, общего объема и процентной загрузки:
[root@localhost asterisk]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 146G 4.8G 134G 4% /
tmpfs 498M 72K 498M 1% /dev/shm
/dev/sda1 283M 25M 244M 10% /boot
Нужные команды файловой системы
Перечислим важные команды, которые пригодятся Вам в процессе администрирования вашего Asterisk:
ls - вывод списка файлов и папок в текущей директории
ls -l – более подробная модификация указанной выше команды. Помимо прочего, команда выводит в консоль права на файл и его владельца.
cd /var/spool/asterisk/monitor/ - сделать папку с записями телефонных разговоров текущей директорией.
cd .. - вернуться на одну папку назад по файловой иерархии
cd ../.. - вернуться на две директории обратно
cp index.php /var - скопировать файл index.php в директорию /var
cp index.php /var - переместить файл index.php в директорию /var
Время и настройка NTP
Для синхронизации серверного времени по протоколу NTP, выполните следующие команды:
service ntpd stop
ntpdate pool.ntp.org
service ntpd start
service httpd restart
Устанавливаем временную зоны сервера:
Подключитесь пользователем root к серверу и выполните команду date. Система укажет Вам текущую дату, время и временную зону.
[root@localhost ~]# date
echo date("D M j G:i:s T Y");
Измените текущую директорию с помощью команды cd /usr/share/zoneinfo. Далее выберите наиболее подходящий регион. Например, если вы из Самары, то перейдите в папку /Europe/Samara
Далее нужно создать линк настройки /etc/localtime. В случае с Самарой, команда будет такой: ln -sf /usr/share/zoneinfo/Europe/Samara /etc/localtime
Установим переменную ZONE в файле /etc/sysconfig/clock на Europe/Samara. Выполните следующие команды:
[root@localhost ~]# vim /etc/sysconfig/clock
В открывшемся файле для редактирования через vim нажмите клавишу «o» на клавиатуре. Стрелками сотрите содержимое файла и вставьте нужную временную зону, в нашем примере будет так : ZONE=Europe/Samara. Сохраните изменения нажав :x! и затем клавишу Enter.
Установите аппаратное время сервера командой /sbin/hwclock --systohc
Просмотр крупных файлов
tail /home/log.txt - вывод последних 10 строчек указанного файла. В данном случае файл /home/log.txt
tail -f /home/log.txt - вывод последних 10 строчек указанного файла. Если в файл будет динамически добавлены новые строки, это отразится в выводе команды в реальном времени
tail –n 100 /home/log.txt - вывод последних 100 строчек указанного файла.
tail –n 100 /home/log.txt > result.txt - данная команда запишет 100 последних строчек файла /home/log.txt в файл result.txt
![img](/static/images/general/icons/networks_how-to.png)
Cisco Packet Tracer - это программное обеспечение для моделирования сетей, предназначенное для моделирования сетевых устройств Cisco. Вы можете использовать Cisco Packet Tracer для проектирования простых и довольно сложных сетевых топологий. Вы также можете настроить виртуальные машины, маршрутизаторы, коммутаторы и другие устройства в Packet Tracer для проверки топологии сети.
Cisco Packet Tracer также можно использовать для моделирования беспроводных сетей, сетей IP-телефонии (VoIP) и многих других.
Если вы стремитесь к сертификации Cisco, такой как CCENT, CCNA и другие, то вы можете использовать Cisco Packet Tracer для настройки сетевых устройств Cisco, таких как коммутаторы и маршрутизаторы, с помощью команд Cisco IOS.
Скачать и установить Cisco Packet Tracer
Вы можете официально скачать и использовать Cisco Packet Tracer бесплатно. Вам нужна учетная запись Cisco Network Academy для загрузки и использования Cisco Packet Tracer. Вы можете создать учетную запись Cisco Network Academy бесплатно.
В Packet Tracer 7 добавлена функция аутентификации пользователей. Пользователь Сетевой академии должен выполнить вход при первом запуске Packet Tracer.
Пользователи без учетной записи Сетевой академии смогут сохранять топологии не более трех раз.
Пользователь без учетной записи Сетевой академии может нажать кнопку гостевого входа, чтобы записаться на бесплатный курс для самостоятельного изучения «Введение в Packet Tracer» и получить учетную запись netacad.com для полного доступа к Packet Tracer. Курс «Введение в Packet Tracer» поможет вам ознакомиться с основными функциями Packet Tracer.
Чтобы создать учетную запись Cisco Network Academy, перейдите на страницу https://www.netacad.com/ru/courses/packet-tracer/introduction-packet-tracer из любого веб-браузера по вашему выбору, и вы должны увидеть следующую страницу. Теперь нажмите Зарегистрируйтесь уже сегодня!, чтобы загрузить Packet Tracer.
В выпадающем меню нужно нажать кнопку English. Должна открыться страница регистрации. Заполните данные и нажмите Отправить, как показано на скриншоте ниже.
После того как вы зарегистрировались и подтвердили свою учетную запись, перейдите по адресу https://www.netacad.com/, и вы должны увидеть следующую страницу. Нажмите Log In -> Login, как видно на скриншоте ниже.
После того как вы зашли, нужно нажать в верхнем меню Resource -> Download Packet Tracer.
На этой странице в разделе Downloads нужно выбрать и скачать необходимую версию - для Windows, Linux, MacOS, Android или iOS.
Устанавливаем и запускаем. При первом запуске мы увидим окно где нужно еще раз залогиниться под учетной записью netacad. Чтобы войти без учетной записи нужно нажать кнопку Guest Login в правом нижнем углу и подождать окончания таймера, после чего нажать кнопку Confirm Guest.
Готово! Теперь можно начинать работать!