Данный документ не является всеобъемлющим руководством по настройке ACL на свитчах фирмы D-Link, на это есть мануал, я всего лишь хотел показать на примерах некоторые моменты, которые могут пригодится в работе и быть может помогут сэкономить кому - нибудь его время. Я постараюсь объяснить, как строить правила на основе packet_content_mask и почему подобные правила в некоторых случаях предпочтительнее обычных правил.
Прежде чем начать давайте примем за аксиому следующее утверждение - „Каждый передаваемый свичом пакет состоит из N-го количества байт, свитч эти байты „видит“, соответственно пакеты, содержащие эти байты можно отфильтровать.“ и основываясь на этом начнем
Пример №1
Задача: РС1 обращается на ТСР порт 445 РС2. Необходимо заблокировать подобную активность.
Решение:
Вот так пакет выглядит в Ethereal:
Код:
Source Destination Protocol Info
192.168.0.101 192.168.0.6 TCP 1862 > 445 [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460
Ethernet II, Src: 00:11:5b:31:b9:e7 (00:11:5b:31:b9:e7), Dst: 00:11:5b:4f:21:9f (00:11:5b:4f:21:9f)
Internet Protocol, Src: 192.168.0.101 (192.168.0.101), Dst: 192.168.0.6 (192.168.0.6)
Transmission Control Protocol, Src Port: 1862 (1862), Dst Port: 445 (445), Seq: 0, Ack: 0, Len: 0
0000 00 11 5b 4f 21 9f 00 11 5b 31 b9 e7 08 00 45 00 ..[O!...[1....E.
0010 00 30 5b 91 40 00 80 06 1d 7b c0 a8 00 65 c0 a8 .0[.@....{...e..
0020 00 06 07 46 01 bd be e9 ca 67 00 00 00 00 70 02 ...F.....g....p.
0030 ff ff 6f 0f 00 00 02 04 05 b4 01 01 04 02 ..o...........
Построение профиля для правил на основе packet_content_mask, упрощенно, а так же для более удобного сопоставления с имеющимися данными можно представить вот в таком виде (обратите внимание насколько глубоко свитч может залазить в проходящие сквозь него пакеты):
Код:
create access_profile packet_content_mask
offset_0-15 0xffffffff 0xffffffff 0xffffffff 0xffffffff
offset_16-31 0xffffffff 0xffffffff 0xffffffff 0xffffffff
offset_32-47 0xffffffff 0xffffffff 0xffffffff 0xffffffff
offset_48-63 0xffffffff 0xffffffff 0xffffffff 0xffffffff
offset_64-79 0xffffffff 0xffffffff 0xffffffff 0xffffffff
[profile_id 1]
Исходя из этого приведем данные к более „юзабельному“ варианту:
Код:
0000 00115b4f 219f0011 5b31b9e7 08004500
0010 00305b91 40008006 1d7bc0a8 0065c0a8
0020 00060746 01bdbee9 ca670000 00007002
0030 ffff6f0f 00000204 05b40101 0402
Т.к внутри свитча пакеты всегда тегированы, вне зависимости от того назначали вы тег или нет, то заполним символами „х“ данные с 12 по 15 байт (в свитче эти байты заполняются информацией о VLAN и т.д., кому интересно – почитайте RFC
). Обратите внимание - у Вас в этих байтах могут быть данные, которые Вы захотите использовать для написания ACL, в этом примере я эти данные не рассматриваю и сделал это заполнение больше для наглядности, для того чтобы смотреть на пакет так же как его „видит“ свитч:
Код:
0000 00115b4f 219f0011 5b31b9e7 xxххххxx
0010 08004500 00305b91 40008006 1d7bc0a8
0020 0065c0a8 00060746 01bdbee9 ca670000
0030 00007002 ffff6f0f 00000204 05b40101
0040 0402
Как видите информация относительно исходного варианта сместилась. Теперь сократим запись оставив только то, что нам нужно:
Код:
0010 08004500 00305b91 40008006 1d7bc0a8
0020 0065c0a8 00060746 01bdbee9 ca670000
Набросаем примерный скелет будущего правила:
Код:
offset_16-31 08004500 00305b91 40008006 1d7bc0a8
offset_32-47 0065c0a8 00060746 01bdbee9 ca670000
Мы точно знаем где, применительно к ACL, находятся нужные нам данные и можно переходить к написанию собственно ACL.
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_32-47 0x0 0x0 0xffff0000 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x01bd0000 0x0 port 1 deny
Вот и все, ТСР destination port 445 заблокирован. Можно поступить несколько иначе, а именно:
Код:
create access_profile packet_content_mask offset_32-47 0x0 0x0 0xffff0000 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_32-47 0x0 0x0 0x01bd0000 0x0 port 1 deny
Т.е. не указывать протокол (offset_16-31 0x0 0x0 0x000000ff), в таком варианте будут заблокированы все пакеты с destination port 445 вне зависимости от протокола, т.е. под данное правило попадут и ТСР и UDP пакеты.
Но и это еще не весь потенциал этого мощного средства контроля трафика. Данный механизм позволяет так же фильтровать трафик в нешифрованных (без МРРЕ) GRE туннелях. Нет, я не писатель-фантаст
В доказательство своих слов могу привести...
Пример №2Задача: РС1 обращается на ТСР порт 445 РС2 через нешифрованное РРТР соединение. Необходимо заблокировать подобную активность.
Решение:Вот так пакет выглядит в Ethereal:
Код:
Source Destination Protocol Info
192.168.0.101 192.168.0.6 TCP 1837 > 445 [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1360
Ethernet II, Src: 00:11:5b:31:b9:e7 (00:11:5b:31:b9:e7), Dst: 00:10:7b:3c:2b:bf (00:10:7b:3c:2b:bf)
Internet Protocol, Src: 10.10.10.2 (10.10.10.2), Dst: 10.10.10.1 (10.10.10.1)
Generic Routing Encapsulation (PPP)
Point-to-Point Protocol
Internet Protocol, Src: 192.168.0.101 (192.168.0.101), Dst: 192.168.0.6 (192.168.0.6)
Transmission Control Protocol, Src Port: 1837 (1837), Dst Port: 445 (445), Seq: 0, Ack: 0, Len: 0
0000 00 10 7b 3c 2b bf 00 11 5b 31 b9 e7 08 00 45 00 ..{<+...[1....E.
0010 00 54 59 d6 00 00 80 2f b8 8e 0a 0a 0a 02 0a 0a .TY..../........
0020 0a 01 30 01 88 0b 00 34 00 0b 00 00 03 32 ff 03 ..0....4.....2..
0030 00 21 45 00 00 30 59 d5 40 00 80 06 1f 37 c0 a8 .!E..0Y.@....7..
0040 00 65 c0 a8 00 06 07 2d 01 bd 4f fd 47 59 00 00 .e.....-..O.GY..
0050 00 00 70 02 ff ff 61 87 00 00 02 04 05 50 01 01 ..p...a......P..
0060 04 02 ..
Если сравните этот пример и пример №1, то Вы увидите что пакет увеличился за счет транспортной составляющей (GRE, РРР заголовки и т.д.). Но ни нам ни свитчам от D-Link это как Вы понимаете не помеха
Опять приведем это к более „юзабельному“ варианту:
Код:
0000 00107b3c 2bbf0011 5b31b9e7 08004500
0010 005459d6 0000802f b88e0a0a 0a020a0a
0020 0a013001 880b0034 000b0000 0332ff03
0030 00214500 003059d5 40008006 1f37c0a8
0040 0065c0a8 0006072d 01bd4ffd 47590000
0050 00007002 ffff6187 00000204 05500101
0060 0402
Заполним символами „х“ данные с 12 по 15 байт, дабы увидеть пакет глазами свитча:
Код:
0000 00107b3c 2bbf0011 5b31b9e7 хххххххх
0010 08004500 005459d6 0000802f b88e0a0a
0020 0a020a0a 0a013001 880b0034 000b0000
0030 0332ff03 00214500 003059d5 40008006
0040 1f37c0a8 0065c0a8 0006072d 01bd4ffd
0050 47590000 00007002 ffff6187 00000204
0060 05500101 0402
Сократим запись оставив только нужную информацию:
Код:
0010 08004500 005459d6 0000802f b88e0a0a
0030 0332ff03 00214500 003059d5 40008006
0040 1f37c0a8 0065c0a8 0006072d 01bd4ffd
Набросаем примерный скелет будущего правила:
Код:
offset_16-31 08004500 005459d6 0000802f b88e0a0a
offset_48-63 0332ff03 00214500 003059d5 40008006
offset_64-79 1f37c0a8 0065c0a8 0006072d 01bd4ffd
Вот собственно и все, можно переходить к написанию ACL.
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_48-63 0x0 0x0 0x0 0x000000ff offset_64-79 0x0 0x0 0x0 0xffff0000 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x0 0x00000006 offset_64-79 0x0 0x0 0x0 0x01bd0000 port 1 deny
Аналогично примеру №1 можно заблокировать порт вне зависимости от протокола, т.е. Вот так:
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_64-79 0x0 0x0 0x0 0xffff0000 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_64-79 0x0 0x0 0x0 0x01bd0000 port 1 deny
Вот рабочий пример рабочего решения, блокируются те же порты что и в примере №1:
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_48-63 0x0 0x0 0x000000ff 0x0 offset_32-47 0x0 0x0 0xffff0000 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x00870000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 2 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x00890000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 3 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x008a0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 4 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x008b0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 5 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x01710000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 6 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x01bd0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 7 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x02510000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 8 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x076c0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 9 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x0b350000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 10 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_48-63 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x13880000 0x0 port 1 deny
„А зачем все это надо?“, спросите Вы, и я Вам отвечу что я работаю в ISP, доступ в интернет у нас осуществляется с использованием РРТР, а т.к. мы активно используем радиооборудование, то я решил уберечь его, а так же другие „тонкие“ (xDSL, и т.п.) линки от прохождения по ним ненужного трафика. К такому трафику я отношу все не поддерживаемые данным ISP сервисы, но поддерживаемые фирмой Microsoft и внедренные в ОС Microsoft Windows(tm) для организации и работы Windows Network. При этом я хотел уберечь линки не только от обычных ethernet пакетов, которые я уже показал как можно фильтровать в примере №1, а так же сделать так чтобы данный трафик не проходил и в GRE туннелях, т.к. бесполезно кому либо говорить „Отключите пожалуйста в свойствах VPN соединения все протоколы и службы кроме TCP/IP“ да и я считаю что подобные увещевания не более чем сизифов труд. В общем я решил что действовать нужно административными мерами и рассчитывать только на себя и на имеющуюся в наличии продукцию фирмы D-Link
Вы можете резонно возразить: „Почему данное решение было осуществлено на свитчах, а не на специально предназначенных для этого firewall-ах?“, на что я Вам отвечу, что: „Firewall-ы от D-Link при всех наличествующих в них плюсах не умеют фильтровать проходящие через них GRE пакеты“ и не надо спрашивать у саппорта так это или нет, не отвлекайте их от работы, они лишь подтвердят Вам мои слова
Тут какой нибудь пытливый ум дочитавший до этого момента может вполне резонно задать вопрос: „Пардон, а как же бродкасты?!?“, на что я могу показать вот такой пример запрещения бродкастов в GRE:
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_64-79 0x0 0x0000ffff 0xffff0000 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x0000002f 0x0 offset_64-79 0x0 0x0000ffff 0xffff0000 0x0 port 1 deny
Кстати раз уж речь зашла о бродкастах, то хочу предоставить Вашему вниманию...
Пример №3Задача: Необходимо заблокировать бродкасты на клиентских портах (для спасения Ваших радиолинков или еще из каких либо административных или иных побуждений).
Решение:Решить подобную задачу можно вот таким образом:
Код:
create access_profile ethernet destination_mac ff-ff-ff-ff-ff-ff ethernet_type profile_id 1
config access_profile profile_id 1 add access_id 1 ethernet destination_mac ff-ff-ff-ff-ff-ff ethernet_type 0x806 port 1 permit
config access_profile profile_id 1 add access_id 2 ethernet destination_mac ff-ff-ff-ff-ff-ff ethernet_type 0x800 port 1 deny
Тут как Вы можете видеть разрешаются ARP бродкасты (это необходимо сделать для функционирования данного протокола!) и запрещаются IP бродкасты. Кое кто может сказать: „Я использую DHCP для раздачи адресов и когда я воспользовался этим правилом все перестало работать!“, на что я только могу показать вот такой пример:
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_32-47 0x0 0x0000ffff 0x0 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x00000044 0x0 0x0 port 1 permit
config access_profile profile_id 1 add access_id 2 packet_content_mask offset_16-31 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x00000043 0x0 0x0 port 1 deny
create access_profile ethernet destination_mac ff-ff-ff-ff-ff-ff ethernet_type profile_id 2
config access_profile profile_id 2 add access_id 1 ethernet destination_mac ff-ff-ff-ff-ff-ff ethernet_type 0x806 port 1 permit
config access_profile profile_id 2 add access_id 2 ethernet destination_mac ff-ff-ff-ff-ff-ff ethernet_type 0x800 port 1 deny
Т.е. необходимо разрешить на клиентских портах прохождение пакетов DHCP запросов (src port 68 UDP) и запретить прохождение DHCP ответов (src port 67 UDP) до блокирования бродкастов. Это очень важное замечание, т.к. порядок следования правил определяет очередность их действия и соответственно надо сначала разрешить нужный Вам broadcast трафик, а потом уже его запрещать. Profile_id 1 данного примера аналогичен примеру из
FAQ. Если же Вам хочется фильтровать не по src, а по dst порту, то вспомнив, что DHCP пакеты ходят по схеме:
Код:
src port dst port
запрос:
68 -> 67
ответ:
67 -> 68
то достаточно изменить access_profile 1 следующим образом:
Код:
create access_profile packet_content_mask offset_16-31 0xffff0000 0x0 0x000000ff 0x0 offset_32-47 0x0 0x0 0xffff0000 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x08000000 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x00430000 0x0 port 1 permit
config access_profile profile_id 1 add access_id 2 packet_content_mask offset_16-31 0x08000000 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x00440000 0x0 port 1 deny
Где так же разрешается прохождение DHCP запросов (dst port 67 UDP) и запрещается прохождение DHCP ответов (dst port 68 UDP). Сюда же Вы можете вписать блокировку ненужных Вам как TCP так и UDP dst портов.А вот так может выглядеть profile_id 2, на основе packet_content_mask, а не ethernet заголовках:
Код:
create access_profile packet_content_mask offset_0-15 0xffffffff 0xffff0000 0x0 0x0 offset_16-31 0xffff0000 0x0 0x0 0x0 profile_id 2
config access_profile profile_id 2 add access_id 1 packet_content_mask offset_0-15 0xffffffff 0xffff0000 0x0 0x0 offset_16-31 0x08060000 0x0 0x0 0x0 port 1 permit
config access_profile profile_id 2 add access_id 2 packet_content_mask offset_0-15 0xffffffff 0xffff0000 0x0 0x0 offset_16-31 0x08000000 0x0 0x0 0x0 port 1 deny
Между прочим лично мне до сих пор не понятно, почему на форумах до сих пор у многих авторов есть устойчивая точка зрения что запретить бродкасты можно лишь разбив подсеть на 2 домена коллизий роутером или L3 свитчем, если такие люди попробуют предложенный мной метод, то поймут, что достаточно иметь в арсенале DES-3526 и слово „бродкаст“ они больше не вспомнят
Конечно надо принимать во внимание размеры сети, но спор на предмет „при каком размере сети надо ставить L3 свитч/роутер“ не относятся к данной теме.
Как я обещал в самом начале попытаюсь объяснить почему правила на основе packet_content_mask в некоторых ситуациях действительно лучше чем обычные правила, для этого возьмем вот такой пример блокировки трафика генерируемого Microsoft Windows(tm):
Код:
create access_profile ip tcp dst_port_mask 0xffff profile_id 1
config access_profile profile_id 1 add access_id 1 ip tcp dst_port 135 port 1 deny
config access_profile profile_id 1 add access_id 2 ip tcp dst_port 139 port 1 deny
config access_profile profile_id 1 add access_id 3 ip tcp dst_port 369 port 1 deny
config access_profile profile_id 1 add access_id 4 ip tcp dst_port 445 port 1 deny
config access_profile profile_id 1 add access_id 5 ip tcp dst_port 593 port 1 deny
config access_profile profile_id 1 add access_id 6 ip tcp dst_port 2869 port 1 deny
config access_profile profile_id 1 add access_id 7 ip tcp dst_port 5000 port 1 deny
create access_profile ip udp dst_port_mask 0xffff profile_id 2
config access_profile profile_id 2 add access_id 1 ip udp dst_port 137 port 1 deny
config access_profile profile_id 2 add access_id 2 ip udp dst_port 138 port 1 deny
config access_profile profile_id 2 add access_id 3 ip udp dst_port 1900 port 1 deny
А вот так этот пример будет выглядеть при использовании правил на основе packet_content_mask:
Код:
create access_profile packet_content_mask offset_16-31 0x0 0x0 0x000000ff 0x0 offset_32-47 0x0 0x0 0xffff0000 0x0 profile_id 1
config access_profile profile_id 1 add access_id 1 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x00870000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 2 packet_content_mask offset_16-31 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x00890000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 3 packet_content_mask offset_16-31 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x008a0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 4 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x008b0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 5 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x01710000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 6 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x01bd0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 7 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x02510000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 8 packet_content_mask offset_16-31 0x0 0x0 0x00000011 0x0 offset_32-47 0x0 0x0 0x076c0000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 9 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x0b350000 0x0 port 1 deny
config access_profile profile_id 1 add access_id 10 packet_content_mask offset_16-31 0x0 0x0 0x00000006 0x0 offset_32-47 0x0 0x0 0x13880000 0x0 port 1 deny
Как Вы можете видеть использование правил на основе packet_content_mask позволяет уменьшить количество занимаемых правилами профилей без потери функционала акцесс листа.
На мой взгляд, списки доступа на основе packet_content_mask являются настолько же мощным на сколько и гибким инструментом управления сетевым трафиком, т.к. Вы можете заблокировать практически любую активность какую только захотите (главное - это правильная постановка задачи
) и я надеюсь что данный документ помог кому-то освоить их написание и последующее применение.
Позволю себе дать несколько советов/рекомендаций
Думаю, что при написании ACL Вам могут пригодится/понадобится следующие документы:
http://www.iana.org/assignments/ethernet-numbers
http://www.iana.org/assignments/protocol-numbers
http://www.iana.org/assignments/port-numbers
http://www.iana.org/assignments/icmp-parameters
http://support.microsoft.com/kb/832017
Для тестирования Ваших ACL, на мой взгляд, Вам могут очень пригодится, помимо ставших уже каноническими
tcpdump,
Ethereal, и
nmap такие программы как
HoneyBOT под Windows и
honeyd под *NIX.
Disclaimer aka Отмазка
Количество пробелов в профилях и правилах было намеренно мною увеличено, для большей наглядности, на их работу данные пробелы никоим образом не влияют.
Приведенные Выше примеры будут работать на всех свитчах от D-Link имеющих формат правил ACL аналогичный DES-3526, т.е. упоминая DES-3526, я в принципе имел ввиду все подобные свитчи
Каждое решение я старался приводить пошагово, для упрощения понимания функционирования.
З.Ы. Пожалуйста учтите, что свитчу совершенно все равно на то что проходит через него, куда оно идет и как Вы пишете ваши профили и правила. Забота о правильном написании ACL (а „правильно“ - это только в соответствии с мануалом) лежит целиком и полностью на Вас, поэтому не удивляйтесь что удалить неправильно написанный ACL можно только перегрузив свитч или, если вы дали команду save, сбросив его на заводские установки.
З.З.Ы. Если Вы нашли не точность или не согласны с каким либо примером, то могу лишь сказать что я всегда открыт для диалога и самокритика мне совсем не чужда. Если кому то будет интересно, я могу продолжить свои описания
Хочу сказать огромное, человеческое спасибо В.Карагезову, В. Колосову, А.Шебаронину, И.Демину и другим сотрудникам представительства D-Link - за их помощь, понимание и участие и отдельное спасибо А.Щадневу - за то что он меня терпит