UMGUM.COM  
Карта сайта

Базовая конфигурация D-Link DES-3028 ( Базовая конфигурация управляемого коммутатора D-Link DES-3028 ) PDF

4 января 2012  (обновлено 5 марта 2013)

Hard: switch D-Link DES-3028.

Задача: базовая настройка управляемого коммутатора, с использованием "интерфейса командной строки" (CLI).

Зайти на устройство можно через "консольный" порт (RS-232). Подключаем кабель (DB-9 cable):

Рекомендованные производителем параметры подключения следующие:

terminal - VT 100+;
speed - 9600;
parity - none;
data bits - 8;
stop bit - 1;
sofware flow control - none;
hardware flow control - none.

Запускаем "minicom":

$ minicom --device /dev/ttyS0 --baudrate 9600 --8bit --noinit

Сразу идём в меню настроек утилиты "minicom" для корректировки параметров сеанса связи с коммутатором: "Ctrl+O". Переходим в подменю "Serial port setup". Нажав клавишу "F", выбираем значение "No" для опции "Hardware Flow Control". Подтверждаем выбор и выходим из меню конфигурирования. Готово, мы в коммутаторе:

      DES-3028 Fast Ethernet Switch Command Line Interface
                    Firmware: Build 2.00.B27
   Copyright(C) 2008 D-Link Corporation. All rights reserved.
UserName:

Просто нажимаем пару раз "Enter", проходя этапы ввода логина и пароля, и вот, мы можем просмотреть текущую конфигурацию устройства:

# show switch

Device Type        : DES-3028 Fast Ethernet Switch
MAC Address        : MAC
IP Address         : 10.90.90.90 (Manual)
VLAN Name          : default
Subnet Mask        : 255.0.0.0
Default Gateway    : 0.0.0.0
Boot PROM Version  : Build 1.00.B06
Firmware Version   : Build 2.00.B27
Hardware Version   : A2
Serial Number      : Serial
System Name        :
System Location    :
System Contact     :
Spanning Tree      : Disabled
GVRP               : Disabled
IGMP Snooping      : Disabled
VLAN trunk         : Disabled
802.1x             : Disabled
TELNET             : Enabled(TCP 23)
WEB                : Enabled(TCP 80)
RMON               : Disabled
SSH                : Disabled
SSL                : Disabled
Clipaging          : Enabled
Syslog Global State: Disabled
Dual Image         : Supported
Password Encryption Status : Disabled

Приступим к конфигурированию как таковому.

На всякий случай явно отключаем автоматическую настройку с помощью DHCP:

# disable autoconfig

Назначим свой IP-адрес:

# config ipif System ipaddress 192.168.1.2/24 state enable

Удостоверимся в том, что изменения приняты:

# show ipif

Interface Name  : System
IP Address      : 192.168.1.2 (MANUAL)
Subnet Mask     : 255.255.255.0
VLAN Name       : default
Admin. State    : Enabled
Link Status     : Link UP
Member Ports    : 1-28

Обратите внимание на то, что "shell" устройства регистро-чувствительный, в частности, команда "System" так и вводится, с большой буквы, в то время как другие - с маленькой.

Задаём маршрут по умолчанию, необходимый для обеспечения доступности управляющего функционала коммутатора:

# create iproute default 192.168.1.1 1

Удостоверимся, что маршрут верно задан:

# show iproute

IP Address/Netmask  Gateway          Interface    Hops     Protocol
------------------  ---------------  -----------  -------  --------
0.0.0.0/0           192.168.1.1      System       1        Default
192.168.1.0/24      0.0.0.0          System       1        Local

Проверим, достижим ли с коммутатора какой-нибудь удалённый ресурс:

# ping 192.168.12.12 times 4

Reply from 192.168.12.12, time<10ms
Reply from 192.168.12.12, time<10ms
Reply from 192.168.12.12, time<10ms
Ping Statistics for 192.168.12.12
Packets: Sent =4, Received =4, Lost =0

И так, теперь, когда железка доступна для подключения не только локального, но и удалённого, вынесем работу из гудящей и холодной серверной в кресло администратора, приняв меры, в то-же время, к обеспечению безопасности соединения. А точнее: дополним сетевую конфигурацию, заведём на коммутаторе административный аккаунт, инициируем SSH-сервер и предпишем работать через него.

Отключаем расширенную систему авторизации на устройстве, оставляя локальную базу:

# config authen_login default method local
# config authen_enable default method local_enable
# config authen parameter response_timeout 30
# config authen parameter attempt 5
# disable authen_policy
# config admin local_enable

Создаём парочку административных аккаунтов:

# create account admin superadmin
# create account admin trivialadmin

Enter a case-sensitive new password:********
Enter the new password again for confirmation:********
Success.

Когда придёт в голову сменить пароль, делаем это так:

# config account trivialadmin

Удостоверимся, что аккаунты созданы в том виде, как нам было угодно:

# show account

Username            Access Level
------------------  ------------
superadmin          Admin
trivialadmin        Admin

Велим коммутатору шифровать сохранённые в энергонезависимой памяти пароли:

# enable password encryption

Включаем поддержку доступа к устройству по протоколу SSH:

# enable ssh

TELNET will be disabled when enable SSH.
Success.

Поддержку менее безопасного протокола доступа Telnet даже отключать не приходится, прошивка устройства не может работать одновременно и с SSH и  с Telnet.

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

# config ssh authmode password enable

Задаём параметры подключения клиента SSH к серверу:

# config ssh server maxsession 3 contimeout 600 authfail 10 rekey never

Вводим заранее созданных пользователей в список допущенных для работы с SSH:

# config ssh user superadmin authmode password
# config ssh user trivialadmin authmode password

Отдельно явно разрешаем использование протокола шифрования трафика SSH:

# config ssh algorithm RSA enable

Для самоуспокоения можно пробежаться по настройкам, с помощью команды "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 DeleteOnTimeout

Естественно, для "транков" ограничение на количество обслуживаемых MAC снимаем:

# config port_security ports 25-28 admin_state disable

Насколько я понял из документации, опция "DeleteOnTimeout" регламентирует периодичность пересмотра таблицы коммутации (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 drop threshold 64 countdown 5 time_interval 5

Можно попробовать применить новый функционал D-Link обнаружения и блокирования потенциальных DoS-атак, пока вреда от него я не замечал:

# config dos_prevention dos_type all action drop 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

Где:

rising 90 - процент загрузки процессора, выше которого включается режим "Safeguard engine";
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:

# delete snmp community public
# delete 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

Port Number : 2
                RX Frames                        TX Frames
                ---------                        ---------
CRC Error       0          Excessive Deferral    0
Undersize       0          CRC Error             0
Oversize        0          Late Collision        0
Fragment        1          Excessive Collision   0
Jabber          0          Single Collision      0
Drop Pkts       0          Collision             0

# show ports

Port  State/         Settings           Connection       Address
      MDI      Speed/Dupl/FlowCtrl  Speed/Dupl/FlowCtrl Learning
----- -------- ------------------- -------------------  --------
1     Enabled  Auto/Enabled        100M/Full/None       Enabled
      Auto
2     Enabled  Auto/Enabled        100M/Full/802.3x     Enabled
      Auto
3     Enabled  Auto/Enabled        10M/Full/802.3x      Enabled
      Auto
4     Enabled  Auto/Enabled        LinkDown             Enabled
      Auto
5     Enabled  Auto/Enabled        LinkDown             Enabled
      Auto
6     Enabled  Auto/Enabled        100M/Full/None       Enabled
      Auto
7     Enabled  Auto/Enabled        LinkDown             Enabled
....

# show traffic control

Port Thres Broadcast Multicast Unicast  Action  Count Time
     hold  Storm     Storm     Storm            down  Interval
---- ----- --------- --------- -------- ------- ----- --------
1    64    Enabled   Enabled   Disabled drop    5     5
2    64    Enabled   Enabled   Disabled drop    5     5
3    64    Enabled   Enabled   Disabled drop    5     5
4    64    Enabled   Enabled   Disabled drop    5     5
5    64    Enabled   Enabled   Disabled drop    5     5
....

# show utilization ports

Port   TX/sec   RX/sec Util  Port   TX/sec   RX/sec Util
---- -------- -------- ----  ---- -------- -------- ----
1    0        0        0     22   0        0        0
2    0        0        0     23   0        0        0
3    0        0        0     24   0        0        0
4    0        0        0     25   16       19       1
5    0        0        0     26   14       10       1
6    0        0        0     27   0        0        0
7    0        0        0     28   0        1        1
....

# show arpenrty

Interface  IP Address   MAC Address       Type
---------  ------------ ----------------- ---------------
System     ....         FF-FF-FF-FF-FF-FF Local/Broadcast
System     ....         ....              Dynamic
System     ....         ....              Local
System     ....         FF-FF-FF-FF-FF-FF Local/Broadcast
....

# show packet ports 1-24

Port Number : 16
Frame Size   Frame Counts Frames/sec Frame Type   Total      Total/sec
------------ ------------ ---------- ----------   ---------  ---------
64           676290       0          RX Bytes     47389203   0
65-127       34487        0          RX Frames    713350     0
128-255      76           0
256-511      684          0          TX Bytes     1936090115 0
512-1023     1550         0          TX Frames    1330260    0
1024-1518    263          0

Unicast RX   713310       0
Multicast RX 0            0
Broadcast RX 40           0

В общем, все. Теперь можете приступать к чтению "мануалов", что бы осмыслить, как освоить оставшиеся здесь неосвещёнными 90% функционала устройства.


Заметки и комментарии к публикации:


  • Андрей  Ответить на этот комментарий
    15 мая 2012 в 02:40
    Спасибо огромное! частично раскрыли и подтвердили некоторые моменты относительно конфига. но ещё куча вопросов относительно трафик контроля, ipsource guard, ip dhcp snooping и другого.

  • Нарожный Андрей  Ответить на этот комментарий
    26 мая 2012 в 15:45
    Пожалуйста. Насчёт более глубокого проникновения в суть вопроса - тут больше учебники подойдут тематические, нежели документация от разработчиков. Производитель лишь реализует в той или иной мере полноты спецификации протоколов, указывая, как включается или выключается функционал. Что-же именно при этом делается - изучается отдельно.

  • Val  Ответить на этот комментарий
    17 мая 2012 в 23:11
    Спасибо,очень полезная статья. Хотелось бы еще описание процесса настройки нескольких таких свитчей в кольцо.

  • Нарожный Андрей  Ответить на этот комментарий
    26 мая 2012 в 15:39
    В кольцо STP? У меня нигде ничего подрбного на практике не применяется, так что элементарно нет опыта.

  • -m4a1-  Ответить на этот комментарий
    3 октября 2012 в 12:39
    Автор молодец, работа хорошая. а на счет кольца, все по сути просто, только я не знаю как это реализовать из консоли, так как работаю со свитчами из веб-морды, по сути просто включаешь поддержку STP на необходимых портах и при коротком свитч сам ищет "лучший/короткий" маршрут для восстановления связи, очень желательна поддержка на свех свитчах в кольце!

  • Нарожный Андрей  Ответить на этот комментарий
    3 октября 2012 в 17:51
    Спасибо. С теорией STP я знаком, но не использую технологию на практике. У нас очень плотно контролируются все нюансы эксплуатации СКС, так что кольца не встречаются как класс. Что касается резервирования линков, то у нас всё на "Layer 3", где это сделано на OSPF. Хотя, на днях был в одной крупной конторе, где сетевую инфраструктуру поддерживают удивительные бездари и бездельники, лозуг которых: солдат спит, служба идёт - так вот в их лохмах проводов STP очень полезен, полагаю.

  • turman  Ответить на этот комментарий
    9 февраля 2013 в 03:24
    Привет. Ткните пожалуйста, где можно просто и конкретно почитать про VLAN. Что-то типа было так, порезали на VLANы и стало намного good. Спасибо.

  • Нарожный Андрей  Ответить на этот комментарий
    9 февраля 2013 в 11:12
    http://xgu.ru/wiki/VLAN

  • Александр  Ответить на этот комментарий
    17 марта 2013 в 23:56
    а можно как нибудь настроить коммутатор 3028, 3526, и 3528 не через консоль?ну к примеру как мы настраиваем вай фай?или есть ли вариант сбросить все настройки?

  • Нарожный Андрей  Ответить на этот комментарий
    18 марта 2013 в 00:30
    Все современные коммутаторы D-Link имеют панель управления в виде "web-сайта", доступную по HTTP, а где-то и по HTTPS. Мне нравится разбираться в тонкостях - это лучше получается читая документацию по CLI, применяя операторы с набором операндов - но ничто не мешает достигунть той же цели, клацая по меню "web-морды".

  • Александр  Ответить на этот комментарий
    15 августа 2014 в 17:21
    Андрей, а нельзя ли подключится к нему по SSH или другим подобным образом используя TCP/IP но не "вэб морду" а именно консоль?

  • Нарожный Андрей  Ответить на этот комментарий
    15 августа 2014 в 17:42
    Конечно можно - это обычный способ для всего сетевого оборудования, что чуть дороже мыльницы. Конкретно у этого устройства адрес по умолчанию IPv4:10.90.90.90 Способ с RS-232 я описал как гарантирующий получение доступа в любом, даже самом запущенном варианте предыдущей конфигурации.

  • Vitaliy  Ответить на этот комментарий
    3 июня 2013 в 20:39
    нормальная шпора по Dlink, а зачем включать loopdetect, если включили Storm Control, как ведет себя loopdetect на dlink без Storm Control при резкой загрузке(петля на подключенном неуправляемом коммутаторе) CPU устройства, не упражнялись? Вообще я бы stp не выключал, ведь есть же "человеческий фактор" и контроль СКС тут ничего не гарантирует, сетевой администратор тоже человек. Каким образом растягиваете вланы между разными узлами, если есть такая необходимость, и если у Вас полностью маршрутизируемая архитектура? пишите еще, очень полезно

  • Нарожный Андрей  Ответить на этот комментарий
    12 июня 2013 в 10:47
    Насколько я понимаю, функционал "Storm Control" и "loopdetect" не пересекается. Первый устанавливает порог широковещательного трафика на порту, а второй просто отлавливает простейшие кольца, пусть и с помощью того же широковещательного трафика. Петли специально не делал и получал всего пару раз за последние десять лет практики - как-то так обходилось - так что впечатлениями о реакции устройства не поделюсь. К STP я не питаю романтических чувств - не могу сейчас об этом распространяться, так как не до конца сформировал мнения о целесообразности применения. "Виланы" растягивает просто, кратко по этой теме я пробежался здесь: http://umgum.com/dlink-base-3028-cli-vlan Касаемо архитектуры - она у нас маршрутизируемая на магистральных связях, уровня "core", и коммутируемая на уровнях "distributed" и "access".

  • Илья  Ответить на этот комментарий
    28 января 2015 в 18:05
    Прошу помочь разобраться..... Ситуация такая... Есть ядро сети DLink DGS-3120-48TC. Есть множество коммутаторов доступа. При попытки войти через вэб-интерфейс например коммутаторы Linksys SRW224G4 и DLink DIR100 начинает открываться вэб-интерфейс, но так и зависает на моменте прорисовки стартовой страницы, иногда получается залогинится, но на этом все и завершается. После повторной попытки подключится, не получается отобразить даже стартовую страницу. Помогает перезагрузка, но всего лишь чтобы увидеть стартовую страницу. Проблема не с конкретным конечным оборудованием, а с любым который работает через вэб-интерфейс. Через Телнет все работает нормально, но в этом режиме нельзя настроить VLAN, а для меня это главная задача на этом оборудование. Что делать? Поделитесь опытом!

  • Нарожный Андрей  Ответить на этот комментарий
    28 января 2015 в 20:45
    Дешёвые коммутаторы, вроде тех что вы упомянули, частенько грешат излишне простой реализацией отработки прямых сетевых подключений (не транзита трафика на уровне Layer2, а именно подключений непосредственно к коммутатору). В частности неоднократно встречалась проблема отказа обрабатывать фрагментированные пакеты, которые получаются при не совсем корректной настройке туннелей PPP - симптомы как раз ваши. Почитайте на предмет метки DF.

  • Нарожный Андрей  Ответить на этот комментарий
    30 января 2015 в 13:29
    Уточню: почитайте на предмет MTU, "Path MTU discovery", фрагментации пакетов и метки "бит DF".

  • aprogrammer  Ответить на этот комментарий
    24 февраля 2015 в 14:24
    Толково, спасибо. Здесь - http://sysadm.pp.ua/internet/des-3200-basic.html неплохо написано, но недостает информации

  • Нарожный Андрей  Ответить на этот комментарий
    24 февраля 2015 в 16:04
    Я бы ту заметку, на которую вы ссылаетесь, назвал описанием не "базовой настройки", а "первичного подключения" к устройству. Картинки симпатичные.

Оставьте новый комментарий ( выразите своё мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )