AT 8000S: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 18 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория:AliedTelesysSwitch]]
  +
[[Категория:Switch]]
 
=AT-8000S=
 
=AT-8000S=
   
Строка 219: Строка 221:
 
</PRE>
 
</PRE>
 
==Наcтройка DHCP Relay + Option 82 ==
 
==Наcтройка DHCP Relay + Option 82 ==
==Настройка на комутаторе==
+
===Настройка на комутаторе===
 
В коммутаторе заявлена поддержка, однако в CLI есть ошибки и встроенная подсказка не всегда работает корректно.
 
В коммутаторе заявлена поддержка, однако в CLI есть ошибки и встроенная подсказка не всегда работает корректно.
   
Строка 356: Строка 358:
 
</PRE>
 
</PRE>
 
Осталось их только правильно интерпретировать.
 
Осталось их только правильно интерпретировать.
  +
===Формат полей Option 82 для AT-8000S/24===
  +
====Circit ID====
  +
Первое впечатление, что формат Circuit ID анлогичен [http://wiki.sirmax.noname.com.ua/index.php/D-LINK_DHCP_Relay_option_82#.D0.A4.D0.BE.D1.80.D0.BC.D0.B0.D1.82_.D0.BF.D0.BE.D0.BB.D1.8F_DHCP_option_82_.D0.B4.D0.BB.D1.8F_DES-35XX: Dlink DES-3526]
  +
  +
Разберем подробнее:
  +
Agent Circuit ID: 000400650101
  +
Т.е. фактически, первые 2 байта нужно просто отбросить и нигде не учитывать (при вычислении сдвигов, и т.п.) - аналогично Dlink.
  +
  +
  +
<TABLE border=1>
  +
<TR>
  +
<TD>1</TD><TD>2</TD><TD>3</TD><TD>4</TD><TD>5</TD><TD>6</TD><TD>7</TD>
  +
</TR>
  +
<TR>
  +
<TD>Тип опции=01 (hex)</TD><TD>Длина=06 (hex)</TD><TD>Тип Circuit ID=00 (hex)</TD><TD>Длина=04 (hex) </TD><TD>VLAN ID=0065 (hex)</TD><TD>Module (=01) (hex)</TD><TD>Port=01 (hex)</TD>
  +
</TR>
  +
<TR>
  +
<TD>Тип опции=01 (dec)</TD><TD>Длина=06 (dec)</TD><TD>Тип Circuit ID=00 (dec)</TD><TD>Длина=04 (dec)</TD><TD>VLAN ID=101 (dec)</TD><TD>Module (=01) (dec)</TD><TD>Port=01 (dec)</TD>
  +
</TR>
  +
<TR>
  +
<TD>1 байт</TD><TD>1 байт</TD><TD>1 байт</TD><TD>1 байт</TD><TD>2 байта</TD><TD>1 байт</TD><TD>1 байт</TD>
  +
</TR>
  +
</TABLE>
  +
Отличие тольк в том что stand-alone комммутатор выставляет значение 01 а не 00 в поле Module. Что позволило найти ошибку (неточность) в собсвенном конфиге.
  +
  +
Соответвенно, практически никаких отличий от DES-30(26|50) нет
  +
  +
Для выдач адреса на основе порта
  +
<PRE>
  +
class "match-port-1"
  +
{
  +
match if (
  +
binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1"
  +
);
  +
  +
}
  +
</PRE>
  +
К вопросу о неточности:
  +
Сравнить (для Длинка)
  +
<PRE>
  +
binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 4, 2)) = "1"
  +
</PRE>
  +
и используемый АТ-8000S
  +
<PRE>
  +
binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1"
  +
</PRE>
  +
  +
  +
  +
{{Note|<nowiki>Первая запись означает "взять из circuit-id по смещению 4 2 байта, и все 2 байта перевести в 10-тичное число. Все 2 байта - это 16 бит, второй аргумент ф-и binary-to-ascii. При таком подходе для длинка все будет верно, module=0 всегда. Соответвенно, преобразовываемый порт будет просто предварен нулем, что при преобразовании в десятичное число не играет роли. В случае AT значение module = 1, и, соответвенно, возникает ошибка.
  +
  +
Более правильный вариант - взять последний один(suffix(option agent.circuit-id, 1) ) байт и преобразовывать к десятичному виду.</nowiki>}}
  +
  +
====Remote ID====
  +
В этих коммутаторах в качестве Remote ID выступает мак коммутатора. Это вносит некорое неудобство при смене коммутатора, требуется перенастройка dhcpd.
  +
===DHCP Snooping===

Текущая версия на 17:32, 3 апреля 2020

AT-8000S

В наличие имеется около 50-60 коммутаторов AT-8000S
Задача: проверить возможность их использования в нашей сети наравне с Dlink DES-3526.

Базовая настройка

Загрузка

Судя по тому что я вижу при загрузке, этот коммутатор очень похож на Lucent OmniStack LS6224
Консольный кабель обычный нуль-модемный. Скорость - 115200. Процедура загрузки длиться около 25 секунд.

Приведенная ниже загрузка уже с последним (3.0.0.33) firmware, доступном на сайте производителя.

Boot1 Checksum Test...............................PASS

Boot2 Checksum Test...............................PASS

Flash Image Validation Test.......................PASS


BOOT Software Version 1.0.1.06 Built  01-Jul-2007  17:08:46


ATI8000 board, 88F5181 CPU based with ARM926EJ-S core.
64MByte SDRAM. I-Cache 32 KB. D-Cache 32KB. Cache Enabled.

Autoboot in 2 seconds - press RETURN or Esc. to abort and enter prom.
Preparing to decompress...
 100%
Decompressing SW from image-2
 100%

OK
Running from RAM...

*********************************************************************
*** Running  SW  Ver. 3.0.0.33  Date  08-Jan-2009  Time  14:19:42 ***
*********************************************************************

HW version is
Base Mac address is: 00:15:77:5f:4d:60
Dram size is  : 64M bytes
Dram first block size is  : 43520K bytes
Dram first PTR is  : 0x1580000
Dram second block size is  : 0K bytes
Dram second PTR is  : 0x4000000
Flash size is: 16M
01-Oct-2006 01:01:05 %CDB-I-LOADCONFIG: Loading running configuration.
01-Oct-2006 01:01:05 %CDB-I-LOADCONFIG: Loading startup configuration.
Device configuration:
Slot 1 - AT-8000S/24

------------------------------------
-- Unit Standalone                --
------------------------------------

Tapi Version: v1.3.3.1
Core Version: v1.3.3.1
01-Oct-2006 01:01:18 %INIT-I-InitCompleted: Initialization task is completed


01-Oct-2006 01:01:18 %SNMP-I-CDBITEMSNUM: Number of running configuration items loaded: 12

01-Oct-2006 01:01:18 %SNMP-I-CDBITEMSNUM: Number of startup configuration items loaded: 12

User Name:


VLANs

В коммутаторе прописываю 2 влана:

  • 101 - клиентский
  • 102 - управление.
vlan database
vlan 101-102
exit

Добавляю все порты к соответвующим вланам (e1-e24 access, gi1-g2 - trunk)

interface range ethernet g(1-2)
switchport mode trunk
switchport trunk allowed vlan add 101
switchport trunk allowed vlan add 102
exit
interface range ethernet e(1-24)
switchport access vlan 101
exit

Интерфейс управления

Управляющий VLAN у меня vid=102

interface vlan 102
ip address 172.16.251.2 255.255.240.0
exit
ip default-gateway 172.16.251.1

Доступ на коммутатор

Авторизовывать админов и техников я хочу через центральный радиус-серевер
Доступ разрешить используя только ssh. В отлисии от DES-35(26|50) производительности процессора достаточно для полноценной работы в ssh без подтормаживаний CLI.

ip ssh server

Создаю именованный (RADIUS) список методов аторизации (попробовать радиус, если ответа нет - локальную БД)и применяю его к линии (telnet). Аналогично для перехода в привелегированный режим используется сначала радиус, и в случае если ответ не получен - локальнай пароль enable)

radius-server host 172.16.1.1 retransmit 5 deadtime 60 key switch
aaa authentication enable RADIUS radius enable
aaa authentication login RADIUS radius local enable
aaa accounting login radius

line telnet
login authentication RADIUS
enable authentication RADIUS
exit

line ssh 
login authentication RADIUS
enable authentication RADIUS
exit


Со стороны радиуса (FreeRadius) это выглядит так (/etc/raddb/users):

sirmax          Cleartext-Password := "This_Is_My_MegaPassWorD"
                User-Service-Type = Shell-User,
                cisco-avpair = "shell:priv-lvl=1"

$enab15$        Cleartext-Password := "SuperDuperEnablePass"
                Cisco-AVPair = "shell:priv-lvl=15"


Интерфейс коммутатора можно дополнительно закрыть ACL.

management access-list Equipment
 permit ip-source  172.16.29.0   mask /24 service ssh
 permit ip-source  172.16.29.0   mask /24 service snmp
 ...
exit

management access-class  Equipment

Подразумевается deny ip any any вконце ACL. В данной конфигурации telnet и http(s) закрыты полностью.

Логгирование событий

Включаю логгирование на удаленный syslog-cервер.

logging 172.16.100.100

SNMP

Коммутатор поддерживает snmp v3, соответвенно, его и использую.

Требуется потверждение установки enginID

snmp-server engineID local default
snmp-server location My_Location
snmp-server contact sirmax_at_noname.com.ua
snmp-server view ALL iso included
snmp-server community public ro view ALL
snmp-server host 172.16.100.100 private traps 2
snmp-server group monitor v3 priv notify ALL read ALL write ALL
snmp-server user monitor monitor auth-md5 megapassworddlyasnmp

Проверяю работу (вывод не полный)

# snmpwalk -v3 -u monitor -X megapassworddlyasnmp -A megapassworddlyasnmp -l authPriv 172.16.251.2 SNMPv2-MIB::sysDescr.0 = STRING: ATI AT-8000S SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.207.1.4.126 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (152900) 0:25:29.00 SNMPv2-MIB::sysContact.0 = STRING: sirmax_at_noname.com.ua SNMPv2-MIB::sysName.0 = STRING: SNMPv2-MIB::sysLocation.0 = STRING: My_Location SNMPv2-MIB::sysServices.0 = INTEGER: 2 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-SMI::enterprises.89.73 SNMPv2-MIB::sysORDescr.1 = STRING: RS capabilities SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00



Прочее

Кроме всего, отключаю явно весь функционал который не использую.

Отключаю STP, gvrp, http-сервер

no spanning-tree
no gvrp enable
no ip http server

Синхронизация времени

clock timezone +2
clock summer-time recurring last Sat Mar 03:00 last Sat Oct 04:00 zone utc
clock source sntp
sntp unicast client enable
sntp unicast client poll
sntp server 10.0.1.1 poll
sntp server 10.1.1.1 poll

DNSб доменное имя

ip domain-name switch.domain.tls
ip name-server  193.33.хх.хх 193.33.хх.хх

Наcтройка DHCP Relay + Option 82

Настройка на комутаторе

В коммутаторе заявлена поддержка, однако в CLI есть ошибки и встроенная подсказка не всегда работает корректно.

Указать ip DHCP-сервера.

ip dhcp relay address 172.16.251.1

Включить глобально релей.

ip dhcp relay enable

Включить вставку option 82 в DHCP-пакеты.

ip dhcp information option

Включить в соответвующих вланах.

interface vlan 101
ip dhcp relay enable
exit
interface vlan 102
ip dhcp relay enable
exit

Отмечу, что несмотря на то что в документации в примере указан интерфейс eХХ (физический порт) у меня заработал релей только после активации на VLAN.

Анализ полученного пакета

Наблюдаю следующий пакет (оставлено только самое важное):

Internet Protocol, Src: 172.16.251.2 (172.16.251.2), Dst: 172.16.251.1 (172.16.251.1)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 345
    Identification: 0x37ba (14266)
    Flags: 0x00
        0... = Reserved bit: Not set
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 64
    Protocol: UDP (0x11)
    Header checksum: 0xf3b4 [correct]
        [Good: True]
        [Bad : False]
    Source: 172.16.251.2 (172.16.251.2)
    Destination: 172.16.251.1 (172.16.251.1)
User Datagram Protocol, Src Port: 68 (68), Dst Port: 67 (67)
    Source port: 68 (68)
    Destination port: 67 (67)
    Length: 325
    Checksum: 0x41c7 [correct]
        [Good Checksum: True]
        [Bad Checksum: False]
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 1
    Transaction ID: 0xc27bab16
    Seconds elapsed: 27 (little endian bug?)
    Bootp flags: 0x8000 (Broadcast)
        1... .... .... .... = Broadcast flag: Broadcast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 172.16.251.2 (172.16.251.2)
    Client MAC address: 00:1c:23:95:8d:8b (00:1c:23:95:8d:8b)
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover
        Option: (53) DHCP Message Type
        Length: 1
        Value: 01
    Option: (t=116,l=1) DHCP Auto-Configuration
        Option: (116) DHCP Auto-Configuration
        Length: 1
        Value: 01
    Option: (t=61,l=7) Client identifier
        Option: (61) Client identifier
        Length: 7
        Value: 01001C23958D8B
        Hardware type: Ethernet
        Client MAC address: 00:1c:23:95:8d:8b (00:1c:23:95:8d:8b)
    Option: (t=50,l=4) Requested IP Address = 169.254.86.169
        Option: (50) Requested IP Address
        Length: 4
        Value: A9FE56A9
    Option: (t=12,l=6) Host Name = "tester"
        Option: (12) Host Name
        Length: 6
        Value: 746573746572
    Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
        Option: (60) Vendor class identifier
        Length: 8
        Value: 4D53465420352E30
    Option: (t=55,l=11) Parameter Request List
        Option: (55) Parameter Request List
        Length: 11
        Value: 010F03062C2E2F1F21F92B
        1 = Subnet Mask
        15 = Domain Name
        3 = Router
        6 = Domain Name Server
        44 = NetBIOS over TCP/IP Name Server
        46 = NetBIOS over TCP/IP Node Type
        47 = NetBIOS over TCP/IP Scope
        31 = Perform Router Discover
        33 = Static Route
        249 = Classless Static Route (Microsoft)
        43 = Vendor-Specific Information
    Option: (t=43,l=2) Vendor-Specific Information
        Option: (43) Vendor-Specific Information
        Length: 2
        Value: DC00
    Option: (t=82,l=18) Agent Information Option
        Option: (82) Agent Information Option
        Length: 18
        Value: 0106000400650101020800060015775F4D60
        Agent Circuit ID: 000400650101
        Agent Remote ID: 00060015775F4D60
    End Option

Т.е. коммутатор корректно вставил значения

Agent Circuit ID: 000400650101
Agent Remote ID: 00060015775F4D60

Осталось их только правильно интерпретировать.

Формат полей Option 82 для AT-8000S/24

Circit ID

Первое впечатление, что формат Circuit ID анлогичен Dlink DES-3526

Разберем подробнее: Agent Circuit ID: 000400650101 Т.е. фактически, первые 2 байта нужно просто отбросить и нигде не учитывать (при вычислении сдвигов, и т.п.) - аналогично Dlink.


1234567
Тип опции=01 (hex)Длина=06 (hex)Тип Circuit ID=00 (hex)Длина=04 (hex) VLAN ID=0065 (hex)Module (=01) (hex)Port=01 (hex)
Тип опции=01 (dec)Длина=06 (dec)Тип Circuit ID=00 (dec)Длина=04 (dec)VLAN ID=101 (dec)Module (=01) (dec)Port=01 (dec)
1 байт1 байт1 байт1 байт2 байта1 байт1 байт

Отличие тольк в том что stand-alone комммутатор выставляет значение 01 а не 00 в поле Module. Что позволило найти ошибку (неточность) в собсвенном конфиге.

Соответвенно, практически никаких отличий от DES-30(26|50) нет

Для выдач адреса на основе порта

class "match-port-1"
{
   match if (
        binary-to-ascii(10, 8, "",  suffix(option agent.circuit-id, 1)) = "1"
    );

}

К вопросу о неточности: Сравнить (для Длинка)

binary-to-ascii(10, 16, "",  substring(option agent.circuit-id, 4, 2)) = "1"

и используемый АТ-8000S

        binary-to-ascii(10, 8, "",  suffix(option agent.circuit-id, 1)) = "1"


Note: Первая запись означает "взять из circuit-id по смещению 4 2 байта, и все 2 байта перевести в 10-тичное число. Все 2 байта - это 16 бит, второй аргумент ф-и binary-to-ascii. При таком подходе для длинка все будет верно, module=0 всегда. Соответвенно, преобразовываемый порт будет просто предварен нулем, что при преобразовании в десятичное число не играет роли. В случае AT значение module = 1, и, соответвенно, возникает ошибка. Более правильный вариант - взять последний один(suffix(option agent.circuit-id, 1) ) байт и преобразовывать к десятичному виду.

Remote ID

В этих коммутаторах в качестве Remote ID выступает мак коммутатора. Это вносит некорое неудобство при смене коммутатора, требуется перенастройка dhcpd.

DHCP Snooping