среда, 8 ноября 2017 г.

IT CROWD: Базовая настройка коммутаторов Cisco (основа)


1. СТАНДАРТНАЯ БАЗОВАЯ НАСТРОЙКА

Перейдем в режим конфигурации:
 enable
configure terminal

Установим пароль на enable:

enable password ПАРОЛЬ


Включим хранение паролей в шифрованном виде:

 service password-encryption

Если необходимо отменить какую нибудь команду, наберем её еще раз добавив перед ней no, например:

no service password-encryption

По желанию можно указать имя устройству:

hostname ИМЯ

Настроим интерфейс для управления коммутатором в отдельном VLAN (я использую 207), ну или во VLAN 1 если у вас один коммутатор, а не большая сеть:

vlan 207
interface vlan 207
ip address 192.168.1.2 255.255.255.0
exit

При необходимости можно указать шлюз чтобы коммутатор можно было увидеть из других сетей (в сети 192.168.1.0/24 его видно и без шлюза):

ip default-gateway 192.168.1.1

Настроим 25 входящий Uplink порт (vlan 207 для управления с tag, а vlan 226 для пользователей тоже с тегом):

interface gigabitEthernet 0/1
switchport trunk allowed vlan 207,226
switchport mode trunk
no shutdown
exit

Укажем vlan 226 без тега для портов клиентов:

interface range fastEthernet 0/1-24
switchport access vlan 226
switchport mode access
no shutdown
exit


26 порт настроим тоже для клиентов:

interface gigabitEthernet 0/2
switchport access vlan 226
switchport mode access
no shutdown
exit

Настроим access-list со списком IP-адресов с которых будет разрешено управлять устройством:

ip access-list standard 11
permit 192.168.1.1
permit 192.168.1.50
exit


Установим пароль для входа по telnet, укажем timeout сессии и укажем созданный access-list чтобы разрешить управлять только указанным в нем IP-адресам:

line vty 0 4
login
password ПАРОЛЬ
exec-timeout 5 0
access-class 11 in
exit
line vty 0 15
password ПАРОЛЬ
login
exec-timeout 5 0
access-class 11 in
exit


Настроим SNMP (11 означает номер access-list):

snmp-server community КОМЬЮНИТИ RO 11

Настроим синхронизацию времени с NTP сервером и период обновления в секундах:

ntp server 192.168.1.1 version 2 source vlan 207
ntp clock-period 36028811
ntp max-associations 1
service timestamps log datetime localtime


По желанию можно отключить web интерфейс:

no ip http server


Любой из команд сохраним конфигурацию:

copy running-config startup-config
write






2. НАСТРОЙКА c VOIP


Общая схема нашей сети будет выглядеть следующим образом:


Cisco VLAN Trunk Configuration

Порты 1-20 будут настраиваться для подключения рабочих мест пользователей: IP-телефон Cisco и компьютер.

В 21-й порт будет подключен маршрутизатор, через который компьютеры имеют доступ в Интернет.

В 22-й порт подключается кабель с Интернетом от провайдера, для обеспечения прямого доступа в Интернет с сервера Asterisk (требуется для внешних SIP-абонентов).

В 23-й порт подключается кабель с Телефонией от оператора связи. Часто оператором связи и провайдером Интернета может быть одна компания, но это — не обязательно. Предлагаемая конфигурация описывает оба этих случая.

В 24-й порт подключается сам сервер телефонии Asterisk.

Настраиваем коммутатор Cisco (на примере Cisco 2960).
Подключаемся к коммутатору в консольном или ssh-режиме. Далее будут идти примеры конфигурации, специалисту ранее работавшим с оборудованием Cisco станет понятно, каким образом реализовать предлагаемую конфигурацию.

Настраиваем порты для пользователей:
Для того чтобы одним разом настроить диапазон, вводим команду:

interface range FastEthernet0/1-19

Далее задаем параметры:

switchport access vlan 10
switchport mode access
switchport voice vlan 20
spanning-tree portfast

Здесь указано, что для компьютеров пользователей выделяется VLAN 10 (тип — access), а для тефонии — VLAN 20 (тип voice). Switchport mode access означает, что порт предназначен для end-user-ов.

Настраиваем порт для подключения маршрутизатора:
Настройка аналогична предыдущей, но мы не задаем Voice-VLAN:

interface FastEthernet0/21
switchport access vlan 10
switchport mode access
spanning-tree portfast

Настраиваем порт для подключения прямого доступа в Интернет:

interface FastEthernet0/22
switchport access vlan 30
switchport mode access
spanning-tree portfast

Настраиваем порт для подключения оператора телефонии:

interface FastEthernet0/23
switchport access vlan 100
switchport mode access
spanning-tree portfast

Настраиваем транковый порт для подключения сервера Asterisk:
Данный порт в отличии от предыдущих будет являться транковым, т.е. будет в тегированном виде пропускать трафик из разных VLAN-подсетей.

interface FastEthernet0/24
switchport trunk allowed vlan 10,20,30,100
switchport mode trunk

Мы указали тип порта и разрешенные для пропуска VLAN-ы.

В целом, настройка VLAN-параметров и интерфейсов коммутатора выполнена.

Опционально рекомендуется настроить на коммутаторе DHCP-сервер, SSH-доступ, отключение лишних служб.



3. Настройка VLAN-интерфейсов на сервере Linux.
Данный пример рассматривается для сервера Linux CentOS.

В первую очередь нужно создать файлы ifcfg-eth0.XXX, где XXX — номера всех VLAN-ов, которые мы будем подключать к серверу. Эти файлы должны лежать в директории /etc/sysconfig/network-scripts/.

В самих файлах будет такое содержимое (при наличии DHCP в той сети, в VLAN которой мы подключаемся):

DEVICE=eth0.10
VLAN=yes
BOOTPROTO=dhcp
ONBOOT=yes

Или таким, при необходимости в явном виде указать IP:

DEVICE=eth0.10
VLAN=yes
BOOTPROTO=none
ONBOOT=yes
HOTPLUG=no
IPADDR=192.168.10.250
NETMASK=255.255.255.0
TYPE=Ethernet

Обратите внимание, где в этом файле указывается к какому сетевому интерфейсу (DEVICE=eth0.10) и к какому VLAN он относится (DEVICE=eth0.10).

Также должен быть основной файл ifcfg-eth0, его содержимое может быть таким (поменяйте MAC-адрес):

DEVICE=eth0
BOOTPROTO=none
HWADDR=90:FB:A6:2F:A0:75
ONBOOT=yes

Таким образом в директории /etc/sysconfig/network-scripts/ у Вас будут расположены следующие файлы, каждый из которых будут прописывать собственные сетевые настройки:

ifcfg-eth0
ifcfg-eth0.10
ifcfg-eth0.20
ifcfg-eth0.30
ifcfg-eth0.100

Для перезапуска интерфейса и применения сетевых настроек запускаем команду service network restart.

Далее, проверяем доступность всех интерфейсов командой ping. Всё должно работать!

Обеспечив доступ к Вашему серверу Asterisk из разных сетей, обязательно ограничьте его и фильтруйте с помощью IPTables!

Использован материал с сайта www.voxlink.ru


4. Как работают BPDUGuard и BPDUFilter

Кому-то в голову пришло, что spanning-tree можно использовать не только для построения кольцевых топологий, но и для обнаружения потенциальных петель на пользовательских портах. Возможно, тогда это казалось нормальным. Да и сейчас обладателям коммутаторов cisco и juniper настраивать spanning-treeпридется в любом случае. Зато другие производители подсуетились и решили слать в пользовательские порты Loopback Detection (LBD) фреймы, но сейчас не об этом.

Условно коммутаторы можно поделить на три типа:

1. Ничего, кроме spanning-tree нет и spanning-tree на порту отключить нельзя. Это cisco.
 2. Ничего, кроме spanning-tree нет, можно отключить spanning-tree глобально или на порту. Это juniper networks.
 3. Можно использовать spanning-tree, можно LBD, можно отключить spanning-tree глобально или на порту. Это eltex, dlink, qtech (dcn). Про хуавей не помню, не настраивал stp на них.

Коммутаторы с отключенным глобально или на порту spanning-tree могут принимать BPDU-фреймы и передавать их дальше как обычный мультикастовый трафик с адресом назначения 01:80:C2:00:00:00. Это обязательно произойдет при передаче «нестандартных» BPDU от Cisco PVST на адрес 01:00:0C:CC:CC:CD. Был случай как-то, когда я не мог настроить MSTP между коммутаторами cisco и juniper. Оказалось, что коммутатор cisco получал через порт juniper’а помимо BPDU от MSTP еще и BPDU от Cisco PVST, которые juniper принимал на порту, где stp был отключен. Таким образом, на коммутаторах недостаточно отключить spanning-tree глобально или на порту, необходимо еще и фильтровать BPDU на адреса 01:80:C2:00:00:00 и 01:00:0C:CC:CC:CD.
На всех коммутаторах есть такой функционал «bpdufilter», но реализация у всех разная.

cisco bpdufilter и bpduguard

 Bdpufilter фильтрует в обе стороны, т.е. коммутатор отбрасывает все входящие BPDU и не отправляет BPDU в порт. Логично фильтр повесить на порты, которые никак не участвуют в кольцевой топологии, с которых никогда не придет BPDU, например, на порт подключения сервера, на порт подключения маршрутизатора, на стык с провайдером. Особо странный провайдер включает на порту клиента bpduguard и отключит порт при получении bpdu от вашего коммутатора. Поэтому на операторских стыках необходимо вешать фильтр всегда.

interface GigabitEthernet1/0/1
 description Server
 switchport access vlan 100
 switchport mode access
 spanning-tree portfast edge
 spanning-tree bpdufilter enable

interface GigabitEthernet1/0/2
 description Router
 switchport trunk encapsulation dot1q
 switchport mode trunk
 spanning-tree portfast edge trunk
 spanning-tree bpdufilter enable

interface GigabitEthernet1/0/3
 description Internet
 switchport access vlan 5000
 switchport mode access
 spanning-tree portfast edge
 spanning-tree bpdufilter enable

Чтобы при изменении топологии данные порты не проходили все возможные фазы blocking, listening, learning, а переходили сразу в forwarding, необходимо включать portfast. Да, этой дури бы не было, если можно было бы просто отключить spanning-tree на порту. Необходимо учесть, что включенный spanning-tree portfast на транковом порту работать не будет. Тут нужен spanning-tree portfast trunk или spanning-tree portfast edge trunk как в этом примере.
Очень часто видел вот такую вот конструкцию:

interface GigabitEthernet1/0/4
 spanning-tree bpdufilter enable
 spanning-tree bpduguard enable

В этом примере bpduguard — лишняя команда, так как она работать не будет по причине отработавшего ранее фильтра. Но так только в cisco.

Вот самый распространенный пример, когда используется bpduguard.

interface GigabitEthernet1/0/5
 description User
 switchport access vlan 200
 switchport mode access
 spanning-tree portfast edge
 spanning-tree bpduguard enable

Для автоматического включения порта необходимо настроить errdisable.
errdisable recovery cause bpduguard
errdisable recovery interval 120

Нужен ли spanning-tree на порту пользователя? Нет не нужен. Но в данном примере протокол spanning-tree циской используется для того чтобы послать BPDU в порт и при получении его по какой-то причине обратно отключить порт. В случае, когда на пользовательской стороне BPDU фильтруются или потерялись, bpduguard не отработает. Увы, никакой другой альтернативы циска не предлагает, поэтому возможна такая ерундистика, когда колец нет в принципе и на всех транках настроен portfast и bpdufilter, а в сторону пользователей — bpduguard. Нормальное такое применение протокола… Круче только ситуация, когда из-за невозможности глобального отключения stp приходится настроить mstp, включить везде bpdufilter и portfast.




Комментариев нет:

Отправить комментарий