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 |
||
− | # |
||
− | # |
||
− | Выводы: |
Версия 02: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/