В статье рассматривается начальная настройка управляемого коммутатора D-Link с использованием интерфейса командной строки CLI.
Для начальной настройки коммутатора используется консольный порт RS-232. Для этого необходимо соединить ПК и коммутатор консольным кабелем с разъемами DB-9.
Рекомендованные производителем параметры подключения следующие:
terminal - VT 100+;
speed - 9600;
parity - none;
data bits - 8;
stop bit - 1;
sofware flow control - none;
hardware flow control - none
Для подключения к коммутатору по протоколу Telnet можно использовать различные терминальные программы, например Hiperterminal, Putty, Minicom и др.
Рассмотрим конфигурирование на примере коммутатора D-Link DGS-3120-24SC.
При подключении к коммутатору отобразится примерно следующая информация
DGS-3120-24SC Gigabit Ethernet Switch Command Line Interface Firmware: Build 2.00.010 Copyright(C) 2011 D-Link Corporation. All rights reserved. UserName:
Нажимаем пару раз "Enter", пропуская ввод логина и пароля. Изначально они не заданы.
Просмотреть текущую конфигурацию устройства:
# show switch
Конфигурируем.
Обратите внимание на то, что CLI регистро-чувствительный. Например команда "System" вводится, с большой буквы, в то время как другие - с маленькой.
Создаем интерфейс управления и назначаем ему IP адрес для доступа к устройству. По умолчанию устройство имеет назначенный IP адрес 10.90.90.90.
DGS-3120-24SC:admin#config ipif System ipaddress 192.168.0.10/24 state enable Command: config ipif System ipaddress 192.168.0.10/24 state enable Success.
Задаем шлюз маршрута по умолчанию.
DGS-3120-24SC:admin#create iproute default 192.168.0.1 Command: create iproute default 192.168.0.1
Для того, чтобы устройство было доступно только в определенном VLAN, создадим VLAN и поместим интерфейс управления в него.
DGS-3120-24SC:admin#create vlan ManagementVLAN tag 2 DGS-3120-24SC:admin#config ipif System vlan ManagementVLAN
Создадим аккаунт для администрирования и управления устройством.
DGS-3120-24SC:admin#create account admin Sysadmin encrypt plain_text 1234 Command: create account admin Sysadmin encrypt plain_text 1234
Настройки времени
Задаем временную зону, параметры перехода на летнее время и адрес сервера времени:
config time_zone operator + hour 3 min 0 config dst repeating s_week last s_day sun s_mth 3 s_time 2:0 e_week last e_day sun e_mth 10 e_time 3:0 offset 60 config sntp primary 91.192.32.7 secondary 91.192.32.3 poll-interval 720 enable sntp
Для самоуспокоения можно пробежаться по настройкам, с помощью команды "show" с соответствующими аргументами удостоверится, что желаемые настройки применены верно. После чего - сохраняем всё, и настройки и журнал событий, в энергонезависимую память:
# save all
Перезагружаем коммутатор:
# reboot
Теперь идём на своё рабочее место и подключаемся к устройству используя для это протокол SSH.
Первым делом стоит подкорректировать настройки портов. Например таким образом:
# config ports 1-24 speed auto flow_control enable state enable # config ports 25 speed 100_full state enable # config ports 26,28 speed 1000_full master flow_control enable state enable
Здесь мы позволили клиентским портам принимать конфигурацию клиента, предлагая аппаратный контроль потока передаваемых данных, выделили один порт для связи с маршрутизатором на скорости 100 Мегабит с полным "дуплексом" и выделили два "гигабитных" порта для связи с другими коммутаторами.
Очень желательно явно выставлять параметры интерфейсов, предназначенных для связи между коммутаторами и маршрутизаторами. На моей практике неоднократно наблюдались огромные, до 30%-40% потери пакетов из-за того, что оборудование не могло договорится о режимах работы в автоматической конфигурации.
Следует иметь в виду, что у D-Link при конфигурировании "гигабитных" портов нужно явно указывать, какая сторона ведущая, а какая ведомая. В частности, если этот коммутатор "ведущий" (master), что на втором "гигабитные" порты должны быть инициированы как "ведомые" (slave), например:
# config ports 25,27 speed 1000_full slave flow_control enable state enable
Далее следует чуть подкорректировать общие настройки, имеющие отношение к обеспечению условий коммутации.
Чтобы огорчить любителей повесить на порт нашего коммутатора свой коммутатор и нацеплять за ним кучу незарегистрированного оборудования, явно укажем не принимать запросы на порту более чем с одного MAC:
# config port_security ports 1-24 admin_state enable max_learning_addr 1 lock_address_mode OnTimeout
Естественно, для "транков" ограничение на количество обслуживаемых MAC снимаем:
# config port_security ports 25-28 admin_state disable
Насколько я понял из документации, опция "OnTimeout" регламентирует периодичность пересмотра таблицы коммутации (Forwarding Database) MAC на портах. Надо полагать (вернее, так сказано в документации, но я мог неверно перевести), что MAC-адрес клиента неактивного порта будет удалён из таблицы и другому MAC-адресу будет позволено работать на нём именно после этого самого пересмотра таблицы. Сменить период пересмотра таблицы можно с помощью соответствующей команды (по умолчанию период составляет 300 секунд):
# config fdb aging_time 120
На случай, если понадобится по быстрому, не дожидаясь истечения "таймаута" разблокировать какой-либо порт, очистив историю использования его клиентам, есть команда, которой мы очистим историю использования для портов со второго по седьмой:
# clear port_security_entry port 2-7
Теперь активируем функционал "Storm Control" для борьбы с клиентами, сорящими "бродкастовыми" и "мультикастовыми" пакетами (зажимаем клиента по максимуму - у нас только традиционные сервисы, не подразумевающие рассылок; в обычной плоской сети реальный "флуд" диагностируется по показателю в 100 Kbs):
# config traffic control 1-24 broadcast enable multicast enable unicast disable action threshold 64 countdown 5 time_interval 5
Можно попробовать применить новый функционал D-Link обнаружения и блокирования потенциальных DoS-атак, пока вреда от него я не замечал:
# config dos_prevention dos_type all action state enable # config dos_prevention dos_type tcp_syn_srcport_less_1024 state disable # disable dos_prevention trap_log
Типов атак несколько, вместо "all" можно включать и выключать их обнаружение индивидуально:
Land Attack, Blat Attack, Smurf Attack, TCP Null Scan, TCP Xmascan, TCP SYNFIN, TCP SYN SrcPort less 1024
Видно, что выше я отключил обнаружение атак типа "TCP SYN SrcPort less 1024"; не углублялся в суть вопроса, но при активировании этой опции коммутатор воспринимает попытки взаимодействия Linux/BDS/Apple-машины с сетевым принтером как атаку, блокируя передачу данных.
Для отлова "петель" на стороне клиента используем специализированный функционал коммутатора, регулярно посылающий тестовый пакет обнаружения "loopback" (это работает независимо от протокола STP):
# enable loopdetect # config loopdetect ports 1-24 state enabled # config loopdetect ports 25-28 state disabled # config loopdetect recover_timer 180 interval 10
Где:
recover_timer - время (в секундах), в течение которого порты будут отключены для стимулирования пользователя порта разобраться, "почему не работает"; interval - период (в секундах) между отправкой пакетов обнаружения петли.
В качестве дополнительной меры обеспечения доступности сервисов, представляемых коммутатором, включим поддержку "Safeguard engine", режима, в котором отбрасываются или отправляются в конец очереди (с пониженным приоритетом) все ARP и "широковещательные" пакеты тогда, когда загрузка процессора возрастёт выше установленного порога:
# config safeguard_engine state enable utilization rising 90 falling 30 trap_log disable mode fuzzy
Где:
falling 30 - процент загрузки, ниже которого выключается "Safeguard engine";
mode fuzzy - выбираем режим мягкого противодействия нагрузке, когда широковещательные и ARP пакеты не откидываются полностью, а лишь понижаются в приоритете при обработке.
Далее - обще-системные мелочи.
Велим коммутатору отправлять на удалённый сервер данные своего журнала событий:
# enable syslog # create syslog host 4 ipaddress 192.168.12.12 severity all facility local1 state enable
Научим наш коммутатор выспрашивать точное время у соответствующих серверов.
Задаём "часовой пояс":
# config time_zone operator + hour 6 min 0
Отключим перевод на "летнее время":
# config dst disable
Укажем наши сервера точного времени:
# config sntp primary 192.168.12.12 secondary 192.168.0.12 poll-interval 21600
Включим подсистему:
# enable sntp
Далее отключим то, что не подпадает под понятие базовой настройки.
Отключаем подсистему уведомлений о событиях на SMTP-сервер:
# disable smtp
Отключаем SNMP:
# snmp community public
# snmp community private # disable snmp traps # disable snmp authenticate traps # disable rmon
Отключаем систему уведомления SNMP сервера о изменении MAC клиента на портах:
# disable mac_notification
Отключаем протокол оповещения и сбора информации о соседнем оборудовании (свободная замена таким протоколам, как: Cisco Discovery Protocol, Extreme Discovery Protocol, Foundry Discovery Protocol или Nortel Discovery Protocol). Вещь полезная, но в небольшой сети не особо нужная, особенно, если нет понимания целесообразности применения:
# disable lldp
Отключаем перенаправление DHCP запросов на целевой сервер:
# disable dhcp_relay
# disable dhcp_local_relay
Отключаем зеркалирование портов (применяется для мониторинга и сбора статистики):
# disable mirror
Отключаем поддержку протокола STP:
# disable stp
Отключаем функционал единого адреса для стека коммутаторов:
# disable sim
Отключаем авторизацию клиентов на портах:
# disable 802.1x
Отключаем инкапсуляцию тегов VLAN в теги VLAN второго уровня (сеть у нас маленькая):
# disable qinq
Явно отключаем управление "мульткастом", раз уж он не используется:
# disable igmp_snooping # disable mld_snooping
Сохраняем конфигурацию:
# save all
Можно побродить по "web"-интерфейсу коммутатора. Уж не знаю, что там можно было наворотить, но "сайт" успешно завешивает Google Chrome (Linux); браузер начинает беспрерывно перезапрашивать один из "фреймов" панели управления, потребляя при этом половину ресурсов компьютера и не отображая при этом ничего, кроме аляповатого рисунка коммутатора на мозаичном фоне в стиле Web-0.9. Хорошо хоть Firefox (Linux) справился. Первым делом рекомендую забанить анимированную, очень детализированную, с искорками, вертящимися вокруг стилизованного земного шара, картинку-логотип в фрейме меню управления; лично у меня на "нетбуке" после этого обороты вентилятора сразу упали со средних до нулевого уровня.
Рекомендую отключить "web"-интерфейс:
# disable web
# disable ssl
CLI предоставляет достаточно инструментария для контроля и мониторинга устройства, например:
# show error ports 1-24 Command: show error ports 1:1-1:24 Port Number : 1:1 RX Frames TX Frames --------- --------- CRC Error 0 Excessive Deferral 0 Undersize 0 CRC Error 0 Oversize 0 Late Collision 0 Fragment 0 Excessive Collision 0 Jabber 0 Single Collision 0 Drop Pkts 1 Collision 0 Symbol Error 0
# show ports Command: show ports Port State/ Settings Connection Address MDIX Speed/Duplex/FlowCtrl Speed/Duplex/FlowCtrl Learning ------- -------- --------------------- ---------------------- --------- 1:1 (C) Enabled Auto/Disabled 1000M/Full/None Enabled Auto 1:1 (F) Enabled Auto/Disabled Link Down Enabled Auto 1:2 (C) Enabled Auto/Disabled Link Down Enabled Auto 1:2 (F) Enabled Auto/Disabled 1000M/Full/None Enabled Auto 1:3 (C) Enabled Auto/Disabled Link Down Enabled Auto 1:3 (F) Enabled Auto/Disabled 1000M/Full/None Enabled Auto 1:4 (C) Enabled 100M/Full/Disabled Link Down Enabled Auto 1:4 (F) Enabled Auto/Disabled 1000M/Full/None Enabled Auto
# show traffic control Command: show traffic control Traffic Control Trap : [None] Traffic Control Log : Enabled Traffic Control Auto Recover Time: 0 Minutes Port Thres Broadcast Multicast Unicast Action Count Time Shutdown hold Storm Storm Storm down Interval Forever ---- ------ --------- --------- -------- -------- -------- -------- -------- 1:1 131072 Disabled Disabled Disabled drop 0 5 1:2 131072 Disabled Disabled Disabled drop 0 5 1:3 131072 Disabled Disabled Disabled drop 0 5 1:4 131072 Disabled Disabled Disabled drop 0 5 1:5 131072 Disabled Disabled Disabled drop 0 5 1:6 131072 Disabled Disabled Disabled drop 0 5 1:7 131072 Disabled Disabled Disabled drop 0 5 1:8 131072 Disabled Disabled Disabled drop 0 5 1:9 131072 Disabled Disabled Disabled drop 0 5 1:10 131072 Disabled Disabled Disabled drop 0 5 1:11 131072 Disabled Disabled Disabled drop 0 5 1:12 131072 Disabled Disabled Disabled drop 0 5 1:13 131072 Disabled Disabled Disabled drop 0 5 1:14 131072 Disabled Disabled Disabled drop 0 5 1:15 131072 Disabled Disabled Disabled drop 0 5 1:16 131072 Disabled Disabled Disabled drop 0 5 1:17 131072 Disabled Disabled Disabled drop 0 5 1:18 131072 Disabled Disabled Disabled drop 0 5 1:19 131072 Disabled Disabled Disabled drop 0 5 1:20 131072 Disabled Disabled Disabled drop 0 5 1:21 131072 Disabled Disabled Disabled drop 0 5 1:22 131072 Disabled Disabled Disabled drop 0 5 1:23 131072 Disabled Disabled Disabled drop 0 5 1:24 131072 Disabled Disabled Disabled drop 0 5
# show utilization ports Command: show utilization ports Port TX/sec RX/sec Util Port TX/sec RX/sec Util ----- ---------- ---------- ---- ----- ---------- ---------- ---- 1:1 1316 255 1 1:21 0 0 0 1:2 2781 3097 2 1:22 0 0 0 1:3 1200 1021 1 1:23 22662 13514 14 1:4 4530 3467 3 1:24 24321 39075 24 1:5 6534 2966 4 1:6 0 0 0 1:7 0 0 0 1:8 0 0 0 1:9 0 0 0 1:10 0 0 0 1:11 0 0 0 1:12 0 0 0 1:13 0 0 0 1:14 0 0 0 1:15 0 0 0 1:16 0 0 0 1:17 0 0 0 1:18 0 0 0 1:19 0 0 0 1:20 0 0 0
# show arpenrty Command: show arpentry ARP Aging Time : 20 Interface IP Address MAC Address Type ------------- --------------- ----------------- --------------- System 10.0.0.0 FF-FF-FF-FF-FF-FF Local/Broadcast System 10.0.0.3 00-19-30-DE-81-1A Dynamic System 10.0.0.30 28-10-7B-FD-90-60 Local System 10.0.0.52 00-1A-81-00-1B-28 Dynamic System 10.0.0.53 00-1A-81-00-42-6E Dynamic System 10.0.0.57 00-1A-81-00-42-92 Dynamic System 10.0.0.69 00-1A-81-00-46-B8 Dynamic System 10.0.0.70 00-1A-81-00-48-EC Dynamic System 10.0.0.73 00-1A-81-00-46-A6 Dynamic System 10.0.0.75 00-1A-81-00-46-AE Dynamic System 10.0.0.77 00-1A-81-00-48-F0 Dynamic System 10.0.0.78 00-1A-81-00-48-EE Dynamic System 10.0.0.79 00-1A-81-00-4F-74 Dynamic System 10.0.0.94 00-1A-81-00-4F-6A Dynamic System 10.0.0.95 00-1A-81-00-4F-50 Dynamic System 10.0.0.98 00-1A-81-00-4F-6E Dynamic System 10.0.0.110 00-1A-81-00-4F-7C Dynamic System 10.0.0.111 00-1A-81-00-4F-76 Dynamic System 10.0.0.115 00-1A-81-00-4F-7A Dynamic System 10.0.0.116 00-1A-81-00-4F-72 Dynamic System 10.0.0.127 00-1A-81-00-4F-62 Dynamic System 10.0.0.128 00-1A-81-00-4E-D4 Dynamic System 10.0.0.138 00-1A-81-00-4E-AA Dynamic System 10.0.0.139 00-1A-81-00-4E-B6 Dynamic System 10.0.0.141 00-1A-81-00-4E-AE Dynamic System 10.0.0.254 02-04-49-19-E5-ED Dynamic System 10.0.255.255 FF-FF-FF-FF-FF-FF Local/Broadcast
# show packet ports 1-24
Command: show packet ports 1:1-1:24 Port Number : 1:1 ================================================================== Frame Size/Type Frame Counts Frames/sec --------------- ---------------------- ----------- 64 200280 0 65-127 1062179438 60 128-255 223780621 10 256-511 43674080 0 512-1023 59184242 0 1024-1518 1699809915 37 Unicast RX 1373982323 37 Multicast RX 846779 0 Broadcast RX 126238 0 Frame Type Total Total/sec --------------- ---------------------- ----------- RX Bytes 741791572441 6878 RX Frames 1374955340 37 TX Bytes 2168108284400 58310 TX Frames 1858052337 75
В общем, все. Теперь можете приступать к чтению "мануалов", что бы осмыслить, как освоить оставшиеся здесь неосвещёнными 90% функционала устройства.