Accton Edge Core ES 3526XA: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
(bgORrUQfAUDXOAMjTk)
Строка 1: Строка 1:
  +
XcY1OR <a href="http://beltcmpltvit.com/">beltcmpltvit</a>, [url=http://yvywpyrtjxqq.com/]yvywpyrtjxqq[/url], [link=http://zpexnmbzoeqr.com/]zpexnmbzoeqr[/link], http://uycaodtbutsq.com/
[[Категория:EdgeCoreSwitch]]
 
[[Категория:DHCP]]
 
 
=Accton Edge-Core ES-3526XA=
 
Цель статьи - описатьпроцедуру тестирования коммутатора Accton Edge-Core ES-3526XA. Планируется как замена Dlink DES-3526.<BR>
 
Необходимый функционал
 
# IP source Guard + DHCP Snooping + Otion 82 (Выдавать IP на основании порта коммутатора и запретить все IP кроме полученных по DHCP)
 
# ACL (Разрешить для неавторизованных IP только доступ на портал абонента)
 
# VLAN, SNMP - более менее стандартный функционал L2-коммутаторов.
 
 
Bu3zNZ <a href="http://paoomxejtzhu.com/">paoomxejtzhu</a>, [url=http://vgiovoowihvv.com/]vgiovoowihvv[/url], [link=http://mxkmsexltwqp.com/]mxkmsexltwqp[/link], http://aggljqtjpdtr.com/
 
 
==Обновление Firmware==
 
Сразу же обновляю firmware:
 
<PRE>
 
Console#dir
 
File name File type Startup Size (byte)
 
------------------------------------- -------------- ------- -----------
 
Unit1:
 
ES3526XA-V2_DIAG_1005.bix Boot-Rom Image Y 305512
 
ES3526XA_ES3510_V11022.bix Operation Code Y 3076624
 
Factory_Default_Config.cfg Config File N 542
 
startup1.cfg Config File Y 5572
 
y Config File N 5437
 
---------------------------------------------------------------------------
 
Total free space: 3276800
 
</PRE>
 
 
<PRE>
 
Console#copy tftp file
 
TFTP server IP address: 192.168.95.22
 
Choose file type:
 
1. config: 2. opcode: <1-2>: 2
 
Source file name: ES3526XA_ES3510_V11023.bix
 
Destination file name: ES3526XA_ES3510_V11023.bix
 
Write to FLASH Programming.
 
Write to FLASH finish.
 
Success.
 
</PRE>
 
 
Выбираю новый софт как загружаемый по-умолчанию
 
<PRE>
 
Console(config)#boot system opcode:ES3526XA_ES3510_V11023.bix
 
Success.
 
</PRE>
 
 
Наблюдаю загрузку нового софта:
 
<PRE>
 
Loading Runtime Image File : ES3526XA_ES3510_V11023.bix
 
</PRE>
 
 
==Настройка==
 
CLI вцелом cisco-like, но это пожалуй самый неудобный в настройке коммутатор из тех с которыми мне приходилось иметь дело.
 
Возможно, дело привычки.
 
 
==DHCP Relay==
 
===Настройка коммутатора===
 
Настройка достаточно простоа и аналогична другим коммутаторам (AT-8000S, Lucent LS-62..., DES- ...)
 
<PRE>
 
ip dhcp relay information option
 
ip dhcp relay information option remote-id ip-address
 
ip dhcp relay information policy replace
 
IP DHCP relay server 172.16.251.1
 
</PRE>
 
Однако, отмечу что в пакете в качестве Remote-ID содержиться не ip а какой-то мусор. На данный момент у меня нет ответа от поставщика как расшифровать remote-id.
 
 
 
===Настойка DHCPd===
 
 
<PRE>
 
tshark -V -n ...
 
Вот пример пакета (только option 82)
 
Bootstrap Protocol
 
Message type: Boot Reply (2)
 
Hardware type: Ethernet
 
Hardware address length: 6
 
Hops: 1
 
Transaction ID: 0xa5ee3a70
 
Seconds elapsed: 0
 
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: 192.168.199.2 (192.168.199.2)
 
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 Offer
 
Option: (53) DHCP Message Type
 
Length: 1
 
Value: 02
 
Option: (t=54,l=4) Server Identifier = 172.16.251.1
 
Option: (54) Server Identifier
 
Length: 4
 
Value: AC10FB01
 
Option: (t=51,l=4) IP Address Lease Time = 8 hours, 36 minutes, 40 seconds
 
Option: (51) IP Address Lease Time
 
Length: 4
 
Value: 00007918
 
Option: (t=1,l=4) Subnet Mask = 255.255.255.0
 
Option: (1) Subnet Mask
 
Length: 4
 
Value: FFFFFF00
 
Option: (t=3,l=4) Router = 192.168.199.254
 
Option: (3) Router
 
Length: 4
 
Value: C0A8C7FE
 
Option: (t=6,l=8) Domain Name Server
 
Option: (6) Domain Name Server
 
Length: 8
 
Value: C1213021C12130A0
 
IP Address: 193.33.48.33
 
IP Address: 193.33.48.160
 
Option: (t=82,l=16) Agent Information Option
 
Option: (82) Agent Information Option
 
Length: 16
 
Value: 01060004006501010206010400000000
 
Agent Circuit ID: 000400650101
 
Agent Remote ID: 010400000000
 
End Option
 
Padding
 
</PRE>
 
 
Первое впечатление, что формат 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] и другим коммутаторам (Если есть стандарт то хорошо бы найти докумнтацию)
 
 
Значение Circuit ID побайтно:<FONT color=red>00</FONT> <FONT color=green>04</FONT> <FONT color=blue>0065</FONT> <FONT color=PINK>01</FONT> <FONT color=GREY>01</FONT><BR>
 
<BR>
 
<FONT color=red>00 </FONT> - Тип Circit ID (Всегда 0?) (1 байт, смещение 0)<BR>
 
<FONT color=green>04</FONT> - Длинна (констаната? почему такое значение?) (1 байт смещение 1)<BR>
 
<FONT color=blue>0065</FONT> - VLAN ID (2 байта, смещение 2)<BR>
 
<FONT color=PINK>01</FONT> - Stack/Module ID (0 или 1 у stand-alone switch) 1 байт, смещение 4<BR>
 
<FONT color=GREY>01</FONT> - Port (1 байт, смещение 5)<BR>
 
 
 
 
Конфиг сервера аналогичен.<BR>
 
Простой пример:<BR>
 
<PRE>
 
class "port-1"
 
{
 
match if(
 
binary-to-ascii(10, 8, "/", suffix(option agent.circuit-id, 1)) = "1"
 
);
 
}
 
</PRE>
 
 
 
 
Для логов использую следующюю конструкцию:
 
<PRE>
 
if exists agent.circuit-id {
 
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ",
 
binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " , VLAN ",
 
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), " on switch ",
 
binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6))));
 
 
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address),
 
"<>raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id), " AID: ",
 
binary-to-ascii(16, 8, ".", option agent.remote-i
 
</PRE>
 
В логах наблюдаю успешную выдачу IP
 
<PRE>
 
anarxist dhcpd: DHCPDISCOVER from 00:1c:ХХ:ХХ:ХХ:ХХ (tester) via 172.16.251.2
 
anarxist dhcpd: DHCPOFFER on 192.168.199.2 to 00:1c:ХХ:ХХ:ХХ:ХХ (tester) via 172.16.251.2
 
anarxist dhcpd: Lease for 192.168.199.2 is connected to interface 1/1 , VLAN 101 on switch 0:0:0:0
 
anarxist dhcpd: Lease for 192.168.199.2 raw option-82 info is CID: 0.4.0.101.1.1 AID: 1.4.0.0.0.0
 
</PRE>
 
 
jl3IhB <a href="http://vzcqnelnsdgd.com/">vzcqnelnsdgd</a>, [url=http://nrcyedtxxjqw.com/]nrcyedtxxjqw[/url], [link=http://xdzlyczrnzmv.com/]xdzlyczrnzmv[/link], http://nfudtuznliqi.com/
 
 
==IP Source Guard==
 
IP Source Guard - функционал который позволяет блокировать все src-ip (и мак?) кроме выданных по DHCP. Весьма полезный функционал совместно с Option 82 insertion и DHCP Snooping.
 
 
На коммутаторе:
 
<PRE>
 
interface ethernet 1/1
 
ip source-guard sip-mac
 
exit
 
</PRE>
 
 
Пробую поставить ip адрес вручную.<BR>
 
После истечения времени Lease-time связь с тестовым клиентом пропадает. После восстановления автоматических настроенк и получении ip адреса от DHCP-сервера связь восстанавливается.
 
 
==ACL==
 
ACL невозможно использовать совместно с ip source guard, т.к. на порту траффик обработаный source guard ACL уже не обрабатывается. Из этой ситуации есть 2 выхода.
 
# Применять ACL на аплинк-портах. смирившись с тем что траффик в пределах коммутатора не контролируется полностью. Это достаточно серьезный недостаток (кроме схемы влан-на-клиента, но при использовании этой схемы нет нужды в таком дорогом коммутаторе.)
 
# Использовать policy-map и "шейпить" нежелательный траффик до скорости 1 байт в секунду. Выглядит как "костыль", не так ли?
 
 
На втором способе остановлюсь чуть подробнее.<BR>
 
 
Для примера, рассмотрим следующюю ситуацию: Клиент может получать ip адрес из 3-х различных пулов в зависимости от состояния счета.<BR>
 
Пусть это будут пулы
 
* 10.199.0.0 /24 для "неплатильщиков" <BR>
 
* 10.200.0.0 /24 для "неавторизованных"<BR>
 
 
Для "неплатильщиков" нужно разрешить только хост 192.168.95.22 где запущен соответвующим образом настроенный ДНС и веб-сервер с сообщением о долге, а для "неавторизованных" разрешить хост 10.199.0.100 где, соответвенно, запущен сервис авторизации. Самбу запретить для всех.
 
 
Для этого пришлось применить следужщюю конструкцию:
 
<PRE>
 
access-list IP extended m4
 
permit 10.199.0.0 255.255.0.0 host 10.199.0.100
 
permit 10.200.0.0 255.255.0.0 host 192.168.95.22
 
deny 10.199.0.0 255.255.0.0 any
 
deny 10.200.0.0 255.255.0.0 any
 
deny TCP any any destination-port 135 135
 
deny TCP any any destination-port 137 137
 
deny TCP any any destination-port 138 138
 
deny TCP any any destination-port 139 139
 
deny TCP any any destination-port 445 445
 
deny UDP any any destination-port 135 135
 
deny UDP any any destination-port 137 137
 
deny UDP any any destination-port 138 138
 
deny UDP any any destination-port 139 139
 
</PRE>
 
 
<PRE>
 
!
 
class-map m4 match-any
 
match access-list m4
 
exit
 
!
 
</PRE>
 
 
<PRE>
 
!
 
policy-map m4
 
class m4
 
set cos 0
 
police 1 64 exceed-action drop
 
exit
 
exit
 
!
 
</PRE>
 
 
<PRE>
 
interface ethernet 1/1
 
ip source-guard sip-mac
 
switchport allowed vlan add 101 untagged
 
switchport mode access
 
switchport native vlan 101
 
switchport allowed vlan remove 1
 
switchport allowed vlan remove 4093
 
service-policy input m4
 
!
 
</PRE>
 
 
{{Note| Особо отмечу, что policy-map заработали корректно только после перезагрузки коммутатора}}
 
 
==Port Security==
 
На коммутаторе вполне работоспасобна ф-я port-security
 
 
<PRE>
 
interface ethernet 1/2
 
port security max-mac-count 10
 
port security action trap-and-shutdown
 
ip source-guard sip-mac
 
switchport allowed vlan add 101 untagged
 
switchport mode access
 
switchport native vlan 101
 
switchport allowed vlan remove 1
 
switchport allowed vlan remove 4093
 
service-policy input m4
 
</PRE>
 
При попытке атаковать коммутатор (утилита arppoison из пакета [http://www.burghardt.pl/2007/12/arp-tools/ arptools]) ф-я security отрабатывает верно, и коммутатор перестает изучать маки на атакованом порту.
 
 
<PRE>
 
Console# sh mac-address-table
 
Interface MAC Address VLAN Type
 
--------- ----------------- ---- -----------------
 
Eth 1/ 2 00-01-E5-E5-E1-97 101 Learned-PSEC
 
Eth 1/ 2 00-02-CD-15-A8-EE 101 Learned-PSEC
 
Eth 1/ 2 00-16-EF-72-56-36 101 Learned-PSEC
 
Eth 1/ 2 00-18-B8-9B-C2-BE 101 Learned-PSEC
 
Eth 1/ 2 00-2D-AF-F7-7E-CC 101 Learned-PSEC
 
Eth 1/ 2 00-30-F9-DF-12-61 101 Learned-PSEC
 
Eth 1/ 2 00-35-F2-76-37-D3 101 Learned-PSEC
 
Eth 1/ 2 00-37-36-27-47-2F 101 Learned-PSEC
 
Eth 1/ 2 00-4B-19-DF-10-4F 101 Learned-PSEC
 
Eth 1/ 2 00-4C-D8-DF-1F-6D 101 Learned-PSEC
 
Eth 1/26 00-30-48-35-9A-11 1 Learned
 
Eth 1/26 00-30-48-35-9A-11 101 Learned
 
</PRE>
 
 
Т.е. атака arp poison не работает.
 
{{Note|Однако, в бочке меда есть немаленькая ложка дегтя - маки, имеющие статус Learned-PSEC не очищаются до перезагрузки. Ожидается исправлеие в ближайшее время.}}
 
 
==Выводы (+ToDo)==
 
Плюсы:
 
# Рабочий DHCP-snooping с поддержкой Option 82 insertion.
 
# Рабочий IP Source-Guard
 
#
 
 
 
 
Минусы
 
# Нет способа очистки маков изученных при включении port-security
 
#
 
#
 
Выводы:
 

Версия 03:26, 25 февраля 2011

XcY1OR <a href="http://beltcmpltvit.com/">beltcmpltvit</a>, [url=http://yvywpyrtjxqq.com/]yvywpyrtjxqq[/url], [link=http://zpexnmbzoeqr.com/]zpexnmbzoeqr[/link], http://uycaodtbutsq.com/