Поиск по этому блогу

27.02.2010

Cisco ASA transparent mode

Пробую настроить ASA 5505 в transparent режиме.
Схема включения:
- ASA подключается портом 0 в коммутатор.
- В порт 1 подключаю ноут. Он получает адрес по dhcp.
- Шлюз по-умолчанию для сети 10.0.0.254.
- Для управления ASA выбран адрес 10.0.0.1.

Выделены сделанные изменения в конфигурации по-умолчанию:
ASA Version 8.0(4)
!
firewall transparent
hostname ciscoasa
enable password 8Ry2YjIyt7RRXU24 encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
names
!
interface Vlan1
nameif inside
security-level 100
!
interface Vlan2
nameif outside
security-level 0

!
interface Ethernet0/0
switchport access vlan 2
speed 100
duplex full
!
interface Ethernet0/1
speed 100
duplex full

!
interface Ethernet0/2
shutdown
!
interface Ethernet0/3
shutdown
!
interface Ethernet0/4
shutdown
!
interface Ethernet0/5
shutdown
!
interface Ethernet0/6
shutdown
!
interface Ethernet0/7
!
ftp mode passive
same-security-traffic permit inter-interface
access-list ACL_OUT extended permit ip any any
access-list ACL_IN extended permit ip any any

pager lines 24
mtu inside 1500
mtu outside 1500
ip address 10.0.0.1 255.255.255.0
icmp unreachable rate-limit 1 burst-size 1
no asdm history enable
arp timeout 14400
access-group ACL_IN in interface inside
access-group ACL_OUT in interface outside
route outside 0.0.0.0 0.0.0.0 10.0.0.254 1

timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute
dynamic-access-policy-record DfltAccessPolicy
no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
crypto ipsec security-association lifetime seconds 28800
crypto ipsec security-association lifetime kilobytes 4608000
telnet timeout 5
ssh 10.0.0.0 255.255.255.0 inside
ssh 10.0.0.0 255.255.255.0 outside

ssh timeout 5
console timeout 0
threat-detection basic-threat
threat-detection statistics access-list
no threat-detection statistics tcp-intercept
!
class-map inspection_default
match default-inspection-traffic
!
!
policy-map type inspect dns preset_dns_map
parameters
message-length maximum 512
policy-map global_policy
class inspection_default
inspect dns preset_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
inspect esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
inspect xdmcp
inspect sip
inspect netbios
inspect tftp
!
service-policy global_policy global
prompt hostname context
Cryptochecksum:91d5ccfcb4475df4879932f7e77bdd89
: end

Чтобы работал ssh доступ, необходимо сгенерить ключи:
ciscoasa(config)# crypto key gen rsa
INFO: The name for the keys will be:
Keypair generation process begin. Please wait...

Еще порты по-умолчанию выключены все. Последние два порта с PoE.
У ASA иногда бывают проблемы с дуплексами, поэтому задано явно.

26.02.2010

Показатель стабильности

Есть такая команда sh configuration id detail , которая показывает количество сделанных изменений на устройстве. Очевидно, что меньшее количество покажет характеристику использования - "настроил и забыл" или "включил и ..работай"
router1#sh configuration id detail
Configuration version : 3635
Last change time : 2010-02-26T08:26:50.584Z
Changed by user : vit
Changed from process : Virtual Exec

router2#sh configuration id detail
Configuration version : 300
Last change time : 2010-02-26T08:18:23.631Z
Changed by user : vit
Changed from process : Virtual Exec

Etherchannel и DAI

Ранее писал о сложностях редактирования портов, включенных в etherchannel. Столкнулся с аналогичными проблемами при добавлении команды ip arp inspection trust
16:54:05.542: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit  logged command:interface GigabitEthernet2/0/1
16:54:09.149: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:ip dhcp snooping trust
16:54:10.172: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/1, changed state to down
16:54:13.545: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:ip arp inspection trust
16:54:13.552: %EC-5-CANNOT_BUNDLE2: Gi2/0/1 is not compatible with Gi1/0/4 and will be suspended (DAI state of Gi2/0/1 is Trusted, Gi1/0/4 is Untrusted) (ST-3-1-2)
16:54:17.991: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:interface GigabitEthernet1/0/4
16:54:20.205: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:ip arp inspection trust
16:54:21.178: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/4, changed state to down
16:54:21.187: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
16:54:20.255: %EC-5-COMPATIBLE: Gi2/0/1 is compatible with port-channel members (ST-3-1-2)
16:54:22.202: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
16:55:21.292: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/4, changed state to up
16:55:22.265: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up
16:55:23.121: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/1, changed state to up
16:55:23.272: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up
Таким образом, связи не было с 16:54:21 до 16:55:23, то есть практически минуту. Я опасался, что она вообще не появится. Между тем, в логический интерфейс автоматически добавилась нужная команда:
switch#sh run int Po1
Building configuration...

Current configuration : 117 bytes
!
interface Port-channel1
switchport trunk encapsulation dot1q
switchport mode trunk
ip arp inspection trust
end

Чтобы не рисковать, необходимо провести эксперимент на другом коммутаторе.
switch#sh run int po1
Building configuration...

Current configuration : 92 bytes
!
interface Port-channel1
switchport trunk encapsulation dot1q
switchport mode trunk
end

switch#sh run int Gig 1/0/1
Building configuration...

Current configuration : 147 bytes
!
interface GigabitEthernet1/0/1
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode active
end

switch#sh run int Gig 3/0/1
Building configuration...

Current configuration : 128 bytes
!
interface GigabitEthernet3/0/1
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode active
end

switch#sh etherchannel summ
Flags: D - down P - bundled in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator

M - not in use, minimum links not met
u - unsuitable for bundling
w - waiting to be aggregated
d - default port


Number of channel-groups in use: 1
Number of aggregators: 1

Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) LACP Gi1/0/1(P) Gi3/0/1(P)

switch#ter mon
switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)#interface GigabitEthernet3/0/1
switch(config-if)#
Feb 26 10:56:23: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:interface GigabitEthernet3/0/1 ip arp insp tr
switch(config-if)#
Feb 26 10:56:38: %PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:ip arp inspection trust
Feb 26 10:56:38: %EC-5-CANNOT_BUNDLE2: Gi3/0/1 is not compatible with Gi1/0/1 and will be suspended (DAI state of Gi3/0/1 is Trusted, Gi1/0/1 is Untrusted) (switch-3)
Feb 26 10:56:38: %EC-5-CANNOT_BUNDLE2: Gi3/0/1 is not compatible with Gi1/0/1 and will be suspended (DAI state of Gi3/0/1 is Trusted, Gi1/0/1 is Untrusted) (switch-3)
Feb 26 10:56:39: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet3/0/1, changed state to down
switch(config-if)#^Z
switch#sh etherchannel summ
Feb 26 10:56:53: %SYS-5-CONFIG_I: Configured from console by vit on vty0
Flags: D - down P - bundled in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator

M - not in use, minimum links not met
u - unsuitable for bundling
w - waiting to be aggregated
d - default port


Number of channel-groups in use: 1
Number of aggregators: 1

Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) LACP Gi1/0/1(P) Gi3/0/1(s)

switch#
Один из портов заблокирован. Есть идея залить нужную конфигурацию по tftp. Создается файл dai и выкладывается на tftp-сервер:
interface Port-channel1
ip arp inspection trust

interface GigabitEthernet1/0/1
ip arp inspection trust

interface GigabitEthernet3/0/1
ip arp inspection trust
Далее заливаем и наблюдаем.
switch#copy tftp://10.0.0.100/dai running-config
Destination filename [running-config]?
Accessing tftp://10.0.0.100/dai...
Loading dai from 10.0.0.100 (via Vlan1): !
[OK - 164 bytes]

164 bytes copied in 0.184 secs (891 bytes/sec)
switch#
11:05:39: %PARSER-4-BADCFG: Unexpected end of configuration file.

11:05:39: %SYS-5-CONFIG_I: Configured from tftp://10.0.0.100/dai by vit on vty0
11:05:40: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/1, changed state to down
11:05:40: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
11:05:39: %EC-5-COMPATIBLE: Gi3/0/1 is compatible with port-channel members (switch-3)
11:05:41: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
11:05:46: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet3/0/1, changed state to up
11:05:47: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up
11:05:48: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up
11:06:38: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/1, changed state to up
Простой все равно случился и он составил 11:05:40 - 11:05:48 восемь секунд.

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

Хорошо еще при включении ip dhcp snooping trust подобного не случается.

25.02.2010

Используем archive

Для удобства работы на маршрутизаторах и коммутаторах начиная с IOS 12.4(14)T появилась функция archive , в задачи которой входит:
  • Сохранение конфигураций
  • Логирование команд
Здесь можно подробнее почитать

Способ сохранения на маршрутизаторах и коммутаторах отличается. Так на маршрутизаторах можно сохранять различные версии конфигурации на flash'ку, а на коммутаторах - нет. Это не очень удобно, так как иногда "откатить" конфигурацию автоматически при неудачном конфигурировании транков, агрегированных линков на коммутаторах было бы полезно.
router(config-archive)#path ?
flash: Write archive on flash: file system
ftp: Write archive on ftp: file system
http: Write archive on http: file system
https: Write archive on https: file system
pram: Write archive on pram: file system
rcp: Write archive on rcp: file system
scp: Write archive on scp: file system
tftp: Write archive on tftp: file system

switch(config-archive)#path ?
ftp: Write archive on ftp: file system
http: Write archive on http: file system
https: Write archive on https: file system
rcp: Write archive on rcp: file system
scp: Write archive on scp: file system
tftp: Write archive on tftp: file system

В целом, логирование и сохранение можно организовать так:
archive
log config
logging enable
notify syslog contenttype plaintext
hidekeys
path tftp://10.0.0.100/routers/a-host/a-host.cfg
write-memory

logging trap debugging
logging 10.0.0.100

На tftp-сервер при наличии достаточных прав на запись и создание файлов будут сохраняться конфигурации. На syslog-сервер будут отправляться логи о конфигурировании %PARSER-5-CFGLOG_LOGGEDCMD

18.02.2010

IOS для Cisco Unified Communications Manager Express

Есть ошибка, из-за которой на телефонах Cisco 7911G при не снятой трубке не работает кнопочка "Набор". На текущий момент эта кнопочка работает в 124-24.T1. В 124-24.T2 уже нет.
Исправлено в IOS:
15.1(0.5)T
15.1(0.2)PI12f
15.1(24.6.12)PIL13
15.0(1)XA1
15.0(1)M1.1
15.1(1)XB
15.1(0.2.7)PIB13
12.4(22)YB5

UPDATE: Исправлено в 124-24.T3

Как раз случай про ложку дёгтя в бочке меда.

16.02.2010

Как умеючи запороть файловую систему

Не первый раз сталкиваюсь, что чересчур длительный процесс может привести к перезагрузке маршрутизатора.
Выглядело это так (смотреть размер файлов и название каталога):
router#show flash: all
-#- --length-- -----date/time------ path
1 48070248 Feb 15 2010 11:01:14 c2800nm-ipvoicek9-mz.124-24.T1.bin
2 0 Dec 29 2009 04:12:38 cme
3 0 Dec 29 2009 04:12:38 cme/Desktops
5 0 Dec 29 2009 04:12:38 cme/Desktops
7 0 Dec 29 2009 04:12:38 cme/Desktops
9 0 Dec 29 2009 04:12:38 cme/Desktops
12 0 Dec 29 2009 04:12:38 cme/Desktops
13 0 Dec 29 2009 04:12:38 cme/Desktops
18 0 Dec 29 2009 04:12:38 cme/Desktops
22 1858434031 Feb 04 1901 14:32:20 cme/Desktops/.8vP/q
23 1126837885 Feb 01 2025 07:02:48 cme/Desktops/.8vP/-
26 587793577 Mar 05 1997 17:37:32 cme/Desktops/V.$
27 0 Dec 29 2009 04:12:38 cme/bacdprompts
28 0 Dec 29 2009 04:12:38 cme/bacdprompts
29 0 Dec 29 2009 04:12:38 cme/gui
30 0 Dec 29 2009 04:12:38 cme/phone
31 0 Dec 29 2009 04:12:40 cme/ringtones
32 22542 Dec 29 2009 05:00:44 cme/CME-7-0-full-readme-v.1.0.txt
33 462848 Dec 29 2009 05:00:50 cme/CME-locale-ru_RU-Russian-7.0.1.1.tar
34 496521 Dec 29 2009 04:41:36 cme/music-on-hold.au
35 197333 Dec 29 2009 05:09:48 crashinfo_20091229-050948

7888896 bytes available (56127488 bytes used)

******** ATA Flash Card Geometry/Format Info ********

ATA CARD GEOMETRY
Manufacturer Name
Model Number STI Flash 7.4.0
Serial Number STI J135307285231420
Firmware Revision 02-10-06
Number of Heads 8
Number of Cylinders 490
Sectors per Cylinder 32
Sector Size 512
Total Sectors 125440

ATA PARTITION 1 INFO
Start Sector 32
Number of Sectors 125408
Size in Bytes 64208896
File System Type FAT16
Number of FAT Sectors 62
Sectors Per Cluster 8
Number of Clusters 15629
Number of Data Sectors 125032
Base FAT Sector 107
Base Root Sector 231
Base Data Sector 263

ATA MONLIB INFO
Image Monlib size 118124
Disk Monlib Size 50264
Disk Space Available 54272
Name piptom-atafslib-m
Start sector 2
End sector 100
Updated By C2800NM-IPBASE-M12.3(8)T8
Version 1

Это было уже после, как с этой flash-карты был удален старый ios, md5 которого не совпадало, и залит новый.
router#copy ftp://10.0.0.100/pub/ios/c2800nm-ipvoicek9-mz.124-24.T1.bin flash:
Destination filename [c2800nm-ipvoicek9-mz.124-24.T1.bin]?
Accessing ftp://10.0.0.100/pub/ios/c2800nm-ipvoicek9-mz.124-24.T1.bin...
Loading pub/ios/c2800nm-ipvoicek9-mz.124-24.T1.bin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 48070248/4096 bytes]

48070248 bytes copied in 455.668 secs (105494 bytes/sec)

router#verify /md5 flash:c2800nm-ipvoicek9-mz.124-24.T1.bin
.....................................................................................................................................
%Error computing MD5 hash flash:c2800nm-ipvoicek9-mz.124-24.T1.bin (Unknown error 0)

Анализ crashinfo показал, что рекурсивное удаление вызвало ошибку в работе маршрутизатора и , как следствие, его перезагрузку:
CMD: 'del /r /f cme' 10:09:48 TMZ Tue Dec 29 2009

*Dec 29 05:09:48.759: %SYS-6-STACKLOW: Stack for process Virtual Exec running low, 0/12000

%Software-forced reload

Следующей командой было format flash:

CompactFlash для ISR

Речь пойдет о флешках, файловых системах. Рекомендуется к прочтению.
Штатно Integrated Service Router (ISR), в семейство которых попадает 2800 и 3800 серии, комплектуется 64мб картой compactflash
 
В маршрутизаторах допускается использование CompactFlash любого вендора, но имеются некоторые ограничения:
1. Максимально допустимый размер CF, с которого маршрутизатор может загрузить IOS с файловой системы FAT16 - это 1GB. Это не значит, что у вас не получится вставить 4GB, отформатировать, залить туда IOS. Получится, а вот у загрузчика возникнет проблема.
2. CF более 1GB следует форматировать под Low End File System, которая имеет свои ограничения.

В частности, на Low End File System нельзя создавать каталоги и проводить рекурсивные операции с файлами. Есть, правда, способ как скопировать CME вместе со структурой каталогов. Для это необходимо воспользоваться возможностями archive и распаковать архив с внешнего источника на flash'ку.

15.02.2010

Snooping предупреждает

%DHCP_SNOOPING-4-DHCP_SNOOPING_DATABASE_FLASH_WARNING: Saving DHCP snooping bindings to flash can fill up your device causing the writes of bindings to device, to fail.
%PARSER-5-CFGLOG_LOGGEDCMD: User:vit logged command:ip dhcp snooping database flash:/dhcp.snooping
%DHCP_SNOOPING-6-AGENT_OPERATION_SUCCEEDED: DHCP snooping database Write succeeded.
Ну надо же...

12.02.2010

BPDUGuard vs BPDUFilter

Первый слушает наличие любых BPDU фреймов и блокирует порт. Второй запрещает хождение BPDU в порту.

Так если на одном удаленном коммутаторе switch-02 есть:
errdisable recovery cause bpduguard
errdisable recovery interval 120

interface FastEthernet1/0/24
description *** to switch-01
switchport trunk encapsulation dot1q
switchport mode trunk
То ошибочное включение на нем spanning-tree bpduguard enable приведет к отключению порта
%SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Fa1/0/24 with BPDU Guard enabled. Disabling port.
%PM-4-ERR_DISABLE: bpduguard error detected on Fa1/0/24, putting Fa1/0/24 in err-disable state
Коммутатор автоматически включит порт через 120 секунд благодаря errdisable recovery. Пользуясь этим необходимо включить на порту ближайшего коммутатора BPDUFilter
switch-01(config)#interface FastEthernet1/0/10
switch-01(config-if)#spanning-tree bpdufilter enable
Далее немного ждем, пока порт разблокируется на switch-02
%PM-4-ERR_RECOVER: Attempting to recover from bpduguard err-disable state on Fa1/0/24
Заходим на switch-02, отключаем bpduguard.
На switch-01 отключаем bpdufilter.

11.02.2010

Подключение E1

Нет физики или перепутано прием/передача.
E1 0/0/1 is down.
...
Transmitter is sending remote alarm.
Receiver has loss of signal.
...

Есть физика до ближайшего мультиплексора, нет физики далее по участку.
E1 0/0/1 is down.
...
Transmitter is sending remote alarm.
Receiver is getting AIS.
...

Согласно FAQ предлагается поэкспериментировать с CRC4. А на самом деле какой-то мультиплексор в режиме тестирования шлет тестовые последовательности.
E1 0/2/0 is down.
...
Transmitter is sending remote alarm.
Receiver has loss of frame.
...

09.02.2010

Доступ к удаленной консоли через AUX маршуризатора

Чтобы настроить удаленно какое-нибудь устройство, например, коммутатор, маршрутизатор, ASA достаточно иметь уже настроенный маршрутизатор поблизости с AUX портом. По крайней мере, в 28ой, 38ой, 72ой такой порт имеется. Понадобится кабель utp необходимой длины, стандартно обжатый с одной стороны и наоборот с другой.

В AUX маршрутизатора добавить:
line aux 0
transport input telnet
stopbits 1

Подключаться на порт 2000 + "номер линии AUX". Смотреть show line.

Если в шкафу стоит несколько маршрутизаторов, то можно соединить консоли и aux маршрутизаторов между собой. Удобно эксплуатировать, случись что.

Анализ трафика средствами nbar

Есть интерфейс в публичную сеть и необходимо выяснить что за исходящий трафик его нагружает. Первая мысль проверить его средствами ip flow-top-talker отметается, так как nexthop меняется route-map'ом и в netflow данных о нужном интерфейсе не будет. Попытки проанализировать трафик на коллекторе netflow так же ни к чему не привели. Пробуем nbar:
interface GigabitEthernet0/1
description Internet
ip address 999.999.888.888 255.255.255.252
ip nbar protocol-discovery
ip flow ingress
ip nat outside
ip virtual-reassembly
duplex full
speed 100
media-type rj45
no cdp enable

router#show ip nbar protocol-discovery stats max-bit-rate

GigabitEthernet0/1

Last clearing of "show ip nbar protocol-discovery" counters 00:24:37


Input Output
----- ------
Protocol 5min Max Bit Rate (bps) 5min Max Bit Rate (bps)
------------------------ ------------------------ ------------------------
http 2321000 525000
gre 203000 1190000
secure-http 79000 31000

[skip]

Оказывается, что исходящий трафик генерируется туннелем, о чем можно было догадаться, посмотрев загрузку интерфейсов роутера.

08.02.2010

Понаберут параноиков на работу...

На коммутаторах 3750 можно реализовать комплексную систему безопасности локальной сети, которая будет включать в себя защиту от "левых" dhcp-серверов, контроль arp-пакетов, привязку mac-ip.
Зачем?
Затем.
Начинается все с настройки порта-аплинка. Это будет доверенный порт по всех отношениях. При настройке целого диапазона портов не стоит забывать об этом:
interface FastEthernet1/0/1
description ***** Uplink
switchport trunk encapsulation dot1q
switchport mode trunk
ip arp inspection trust
ip dhcp snooping trust



Необходимо помнить, что Dynamic ARP Inspection (DAI) и IP Source Guard используют в своей работе базу snooping database. Если данных там нет, то вся передача данных будет заблокирована.
Исходя из этого надо помнить три вещи:
1. Сохранять базу.
2. При отключении dhcp snooping выключать ARP Inspection и IP Source Guard на портах, так как база удаляется.
3. Включать ARP Inspection и IP Source Guard только после заполнения базы. Как правило, это чуть больше срока аренды dhcp. Особое внимание уделить зарезервированным ip-адресам в dhcp-пуле. Если работы проводятся на новом оборудовании, куда вообще никто не подключен, то включить, понятно, можно сразу все.

Включаем snooping для пользователей, которым в 202 и 203 vlan'е динамически раздаются адреса. 203 - голосовой для телефонов.
ip dhcp snooping vlan 202-203
no ip dhcp snooping information option
ip dhcp snooping database flash:/snoop
ip dhcp snooping

Последняя команда как раз включает/выключает. Помним про п.2-3. Я раз вместо
switch(config-if)#no ip dhcp snooping trust

бахнул
switch(config-if)#no ip dhcp snooping

Угадайте, что произошло...

Пара слов про information option. Если ваш сервер не поддерживает option 82, то ее следует отключить. В противном случае IP Source Guard не будет корректно работать. DCHP-сервер контроллера домена ее не поддерживает.

На пользовательских портах никакие изменения не нужны. Snooping будет работать на всех портах, где vlan'ы попадают в указанный ему список. За исключением trust портов.

После накопления базы
включаются остальные функции:
ip arp inspection vlan 202-203
ip arp inspection validate src-mac dst-mac ip

Для включения IP Source Guard необходимо внести изменения в настройки пользовательских портов.
switch(config-if)#ip verify source port-security


В такой конфигурации, когда фильтруется ip-адрес и mac-адрес, нельзя включать на портах port-security, так как option 82 не используется. Цитата с документации:
Note When you enable both IP Source Guard and Port Security by using the ip verify source port-security interface configuration command, there are two caveats:

•The DHCP server must support option 82, or the client is not assigned an IP address.

•The MAC address in the DHCP packet is not learned as a secure address. The MAC address of the DHCP client is learned as a secure address only when the switch receives non-DHCP data traffic.



Про частности можно почитать тут

Картинки, вдохновившие и заполнившие необходимые пробелы, смотрел в докладе Евгении Линьковой "Безопасность в коммутируемых сетях".

Snooping для принтеров

Попытки тестирования связки DHCP Snooping, IP Source Guard, Dynamic ARP Inspection выявили неработоспособность принтера hp laserjet 3055. В логах коммутатора имеем:
%SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/5, vlan 202.([0018.fea2.d7e3/10.0.0.45/[skip]

В его сетевом отчете было сказано, что для получения адреса он выбрал метод BOOTP. Пришлось отключать.




Как это было:
ip dhcp snooping vlan 202-203
no ip dhcp snooping information option
ip dhcp snooping database flash:/snoop
ip dhcp snooping
ip arp inspection vlan 202
ip arp inspection validate src-mac dst-mac ip

macro name users_security
switchport access vlan 202
switchport mode access
switchport voice vlan 203
spanning-tree portfast
spanning-tree bpduguard enable
ip verify source port-security
no ip arp inspection trust
no ip dhcp snooping trust
@

switch(config)#interface FastEthernet1/0/5
switch(config-if)#macro apply users_security


switch#sh run int FastEthernet1/0/5
Building configuration...

Current configuration : 202 bytes
!
interface FastEthernet1/0/5
switchport access vlan 202
switchport mode access
switchport voice vlan 203
spanning-tree portfast
spanning-tree bpduguard enable
ip verify source port-security
end

switch#show ip source binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
00:18:FE:A2:D7:E3 10.0.0.45 691192 dhcp-snooping 202 FastEthernet1/0/5


switch#show ip verify source
Interface Filter-type Filter-mode IP-address Mac-address Vlan
--------- ----------- ----------- --------------- ----------------- ----------
Fa1/0/5 ip-mac active 10.0.0.45 permit-all 202
Fa1/0/5 ip-mac active deny-all permit-all 203

Соответственно, в отчете принтера появился срок аренды адреса, используемый в базе snooping'а на коммутаторе

05.02.2010

Польза от port-security

Многие знают о существовании port-security в коммутаторах cisco, но, пожалуй, редко кто сталкивался с реальной необходимостью ее применения в локальной сети. Даже если на коммутаторе нет таких фич, как dhcp snooping, ip source guard - это не повод сбрасывать port-security со счетов. Был в далекой-далекой галактике старый коммутатор Cisco 2950, куда в один из портов включалось всего два хоста через простой switch. Для них был создан отдельный vlan. Как-то они перестали работать. С маршрутизатора, на котором они терминировались, не пинговались.



Вот настройки порта и список mac-адресов, прилетевших в порт:
interface FastEthernet0/1
switchport access vlan 102
switchport mode access
no ip address
end

switch#show mac-address-table vlan 102
Mac Address Table
------------------------------------------

Vlan Mac Address Type Ports
---- ----------- ---- -----
102 001d.70e9.b156 DYNAMIC Fa0/12
102 0077.8376.c872 DYNAMIC Fa0/1
102 0677.7b7d.7803 DYNAMIC Fa0/1
102 083e.1797.1852 DYNAMIC Fa0/1
102 083e.1797.6757 DYNAMIC Fa0/1
102 083e.1797.6858 DYNAMIC Fa0/1
102 083e.1797.7858 DYNAMIC Fa0/1
102 083e.17a7.1652 DYNAMIC Fa0/1
102 083e.17a7.6658 DYNAMIC Fa0/1
102 083e.17a7.7658 DYNAMIC Fa0/1
102 083e.17a7.7752 DYNAMIC Fa0/1
102 083e.17a7.7777 DYNAMIC Fa0/1
102 083e.17b7.6858 DYNAMIC Fa0/1
102 083e.7777.6858 DYNAMIC Fa0/1
102 083e.7797.1852 DYNAMIC Fa0/1
102 083e.77b7.6857 DYNAMIC Fa0/1
102 083e.7ba7.7658 DYNAMIC Fa0/1
102 0a64.d727.7b7c DYNAMIC Fa0/1
102 0a67.d727.7b7c DYNAMIC Fa0/1
102 0a74.d727.7b7c DYNAMIC Fa0/1
102 0a77.8376.c872 DYNAMIC Fa0/1
102 0a77.d727.7b7c DYNAMIC Fa0/1
102 0c7b.8c9b.7d72 DYNAMIC Fa0/1
102 1618.1777.7771 DYNAMIC Fa0/1
102 1817.1450.d762 DYNAMIC Fa0/1
102 1817.1470.2ea1 DYNAMIC Fa0/1
102 1817.1470.4705 DYNAMIC Fa0/1
102 1817.1470.4767 DYNAMIC Fa0/1
102 1817.1470.4e61 DYNAMIC Fa0/1
102 1817.1470.4e64 DYNAMIC Fa0/1
102 1817.1470.4e71 DYNAMIC Fa0/1
102 1817.1470.4e81 DYNAMIC Fa0/1
102 1817.1470.4e8b DYNAMIC Fa0/1
102 1817.1470.5e67 DYNAMIC Fa0/1
102 1817.1470.5e77 DYNAMIC Fa0/1
102 1817.1470.770d DYNAMIC Fa0/1
102 1817.1470.7c67 DYNAMIC Fa0/1
102 1817.1470.7e61 DYNAMIC Fa0/1
102 1817.1470.7e71 DYNAMIC Fa0/1
102 1817.1470.8e67 DYNAMIC Fa0/1
102 1817.1470.8e6f DYNAMIC Fa0/1
102 1817.1470.cf67 DYNAMIC Fa0/1
102 1817.1470.df62 DYNAMIC Fa0/1
102 1817.1470.fc64 DYNAMIC Fa0/1
102 1817.1470.fc67 DYNAMIC Fa0/1
102 1817.1477.4771 DYNAMIC Fa0/1
102 1817.1477.4e71 DYNAMIC Fa0/1
102 1817.1477.5e67 DYNAMIC Fa0/1
102 1817.1477.7e71 DYNAMIC Fa0/1
102 1817.147f.7c67 DYNAMIC Fa0/1
102 1817.147f.fc62 DYNAMIC Fa0/1
102 1817.147f.fc67 DYNAMIC Fa0/1
102 1817.1480.4e8b DYNAMIC Fa0/1
102 1817.14a0.5e77 DYNAMIC Fa0/1
102 1817.54a6.7e71 DYNAMIC Fa0/1
102 1817.7477.7e71 DYNAMIC Fa0/1
102 1817.7570.7e71 DYNAMIC Fa0/1
102 1817.d5a6.7e71 DYNAMIC Fa0/1
102 1817.d776.5777 DYNAMIC Fa0/1
102 1817.d7a6.7771 DYNAMIC Fa0/1
102 1817.d7a6.7777 DYNAMIC Fa0/1
102 1817.d7a6.7e71 DYNAMIC Fa0/1
102 1871.7777.7470 DYNAMIC Fa0/1
102 1877.1c72.0677 DYNAMIC Fa0/1
102 1877.7777.7470 DYNAMIC Fa0/1
102 2415.762c.eb7d DYNAMIC Fa0/1
102 2415.762c.ed7d DYNAMIC Fa0/1
102 2415.767c.eb7d DYNAMIC Fa0/1
102 2415.772c.eb7d DYNAMIC Fa0/1
102 2415.f62c.eb7d DYNAMIC Fa0/1
102 2471.772c.eb7d DYNAMIC Fa0/1
102 2474.772c.eb7d DYNAMIC Fa0/1
102 24e7.7777.7777 DYNAMIC Fa0/1
102 2c77.777a.e778 DYNAMIC Fa0/1
102 2ee7.177c.4a77 DYNAMIC Fa0/1
102 2ef7.5470.7ed7 DYNAMIC Fa0/1
102 367c.7b75.a777 DYNAMIC Fa0/1
102 3809.e77e.7775 DYNAMIC Fa0/1
102 380e.e0a8.127f DYNAMIC Fa0/1
102 422f.7977.7377 DYNAMIC Fa0/1
102 4818.1877.d0c7 DYNAMIC Fa0/1
102 4818.777a.b0c7 DYNAMIC Fa0/1
102 4878.1477.b0c7 DYNAMIC Fa0/1
102 4878.7473.b0c7 DYNAMIC Fa0/1
102 4878.74a3.b0c7 DYNAMIC Fa0/1
102 5277.f977.7777 DYNAMIC Fa0/1
102 5657.4477.7ae7 DYNAMIC Fa0/1
102 5a08.7777.5476 DYNAMIC Fa0/1
102 5a57.4447.7ae7 DYNAMIC Fa0/1
102 5a57.4477.7ae7 DYNAMIC Fa0/1
102 5a69.7777.5476 DYNAMIC Fa0/1
102 5a7e.7778.5476 DYNAMIC Fa0/1
102 607e.7782.3777 DYNAMIC Fa0/1
102 6477.7736.03e6 DYNAMIC Fa0/1
102 6887.8b8c.3707 DYNAMIC Fa0/1
102 7077.2376.c872 DYNAMIC Fa0/1
102 7077.2776.c872 DYNAMIC Fa0/1
102 7077.6787.77a7 DYNAMIC Fa0/1
102 7077.74b7.4707 DYNAMIC Fa0/1
102 7077.7782.3777 DYNAMIC Fa0/1
102 7077.77db.3d63 DYNAMIC Fa0/1
102 7077.7cb7.4707 DYNAMIC Fa0/1
102 7077.8376.c872 DYNAMIC Fa0/1
102 7078.7e75.a777 DYNAMIC Fa0/1
102 7079.77b7.4707 DYNAMIC Fa0/1
102 707a.74b7.4707 DYNAMIC Fa0/1
102 707f.6d28.e27e DYNAMIC Fa0/1
102 70a7.74b7.4707 DYNAMIC Fa0/1
102 70a9.74b7.4707 DYNAMIC Fa0/1
102 70b9.77b7.4707 DYNAMIC Fa0/1
102 7277.7797.77b6 DYNAMIC Fa0/1
102 7287.b977.74f6 DYNAMIC Fa0/1
102 728c.b977.74f6 DYNAMIC Fa0/1
102 7439.7736.03e6 DYNAMIC Fa0/1
102 7447.07f7.d786 DYNAMIC Fa0/1
102 7470.7277.e778 DYNAMIC Fa0/1
102 7474.7746.6873 DYNAMIC Fa0/1
102 7476.7277.e778 DYNAMIC Fa0/1
102 7477.777a.e778 DYNAMIC Fa0/1
102 74a0.7f74.2777 DYNAMIC Fa0/1
102 7637.7777.7777 DYNAMIC Fa0/1
102 7647.7807.70b7 DYNAMIC Fa0/1
102 7674.7746.6873 DYNAMIC Fa0/1
102 7677.1b74.7760 DYNAMIC Fa0/1
102 7678.a27e.77ed DYNAMIC Fa0/1
102 76f7.2f07.fc57 DYNAMIC Fa0/1
102 76f7.8e07.fc57 DYNAMIC Fa0/1
102 7815.7877.ad77 DYNAMIC Fa0/1
102 7817.1472.06f7 DYNAMIC Fa0/1
102 781b.7477.6087 DYNAMIC Fa0/1
102 7828.e977.829e DYNAMIC Fa0/1
102 7858.1777.7da3 DYNAMIC Fa0/1
102 7858.7157.76a3 DYNAMIC Fa0/1
102 7858.7557.76a3 DYNAMIC Fa0/1
102 7858.7737.7aa3 DYNAMIC Fa0/1
102 7858.7757.75a3 DYNAMIC Fa0/1
102 7858.7757.76a3 DYNAMIC Fa0/1
102 7858.7757.77a3 DYNAMIC Fa0/1
102 7858.7777.77a3 DYNAMIC Fa0/1
102 7858.7777.7da3 DYNAMIC Fa0/1
102 7858.7797.76a3 DYNAMIC Fa0/1
102 7867.27f4.57fa DYNAMIC Fa0/1
102 7870.5777.6a77 DYNAMIC Fa0/1
102 7873.4707.7783 DYNAMIC Fa0/1
102 7873.802e.f754 DYNAMIC Fa0/1
102 7874.7746.6873 DYNAMIC Fa0/1
102 7875.4777.ad77 DYNAMIC Fa0/1
102 7875.7777.ad77 DYNAMIC Fa0/1
102 7875.7877.ad77 DYNAMIC Fa0/1
102 7877.2ad7.7b75 DYNAMIC Fa0/1
102 7877.74b7.4707 DYNAMIC Fa0/1
102 7877.7773.b0c7 DYNAMIC Fa0/1
102 7877.77a3.b0c7 DYNAMIC Fa0/1
102 7877.7a77.3775 DYNAMIC Fa0/1
102 7877.9777.6a77 DYNAMIC Fa0/1
102 7878.9777.6a77 DYNAMIC Fa0/1
102 787a.74b7.4707 DYNAMIC Fa0/1
102 787c.74b7.4707 DYNAMIC Fa0/1
102 7887.7710.c727 DYNAMIC Fa0/1
102 7887.7710.c737 DYNAMIC Fa0/1
102 7887.7710.c7b7 DYNAMIC Fa0/1
102 78a2.7e77.ed73 DYNAMIC Fa0/1
102 78a3.7658.7397 DYNAMIC Fa0/1
102 78b7.7cb7.4707 DYNAMIC Fa0/1
102 78c3.7710.c737 DYNAMIC Fa0/1
102 78c7.7710.c727 DYNAMIC Fa0/1
102 78c7.7710.c7d7 DYNAMIC Fa0/1
102 78c7.7d78.c7ba DYNAMIC Fa0/1
102 78c7.aad7.2772 DYNAMIC Fa0/1
102 78c7.aad7.3797 DYNAMIC Fa0/1
102 78c7.aad7.7772 DYNAMIC Fa0/1
102 78c7.ba72.3778 DYNAMIC Fa0/1
102 78c7.ba72.3797 DYNAMIC Fa0/1
102 78c7.ba78.3797 DYNAMIC Fa0/1
102 78c7.bad7.2756 DYNAMIC Fa0/1
102 78c7.bad7.27ea DYNAMIC Fa0/1
102 78c7.bad7.3750 DYNAMIC Fa0/1
102 78c7.bad7.3757 DYNAMIC Fa0/1
102 78c7.bad7.3777 DYNAMIC Fa0/1
102 78c7.bad7.3778 DYNAMIC Fa0/1
102 78c7.bad7.3790 DYNAMIC Fa0/1
102 78c7.bad7.3797 DYNAMIC Fa0/1
102 78c7.bad7.37c1 DYNAMIC Fa0/1
102 78c7.bad7.37c4 DYNAMIC Fa0/1
102 78c7.bad7.37e7 DYNAMIC Fa0/1
102 78c7.bad7.7772 DYNAMIC Fa0/1
102 78c7.bcd3.7772 DYNAMIC Fa0/1
102 78c7.bcd7.3778 DYNAMIC Fa0/1
102 78d3.300f.fc57 DYNAMIC Fa0/1
102 78d3.7777.c728 DYNAMIC Fa0/1
102 78d8.7977.877b DYNAMIC Fa0/1
102 78df.7277.829e DYNAMIC Fa0/1
102 78e8.1777.78d8 DYNAMIC Fa0/1
102 7a57.d213.c872 DYNAMIC Fa0/1
102 7a64.d727.7b7c DYNAMIC Fa0/1
102 7a74.d727.7b7c DYNAMIC Fa0/1
102 7a77.2376.c872 DYNAMIC Fa0/1
102 7a77.2776.c872 DYNAMIC Fa0/1
102 7a77.7270.c872 DYNAMIC Fa0/1
102 7a77.7276.c872 DYNAMIC Fa0/1
102 7a77.7870.c872 DYNAMIC Fa0/1
102 7a77.7d77.7777 DYNAMIC Fa0/1
102 7a77.8376.c872 DYNAMIC Fa0/1
102 7a77.8771.4101 DYNAMIC Fa0/1
102 7a77.d283.c872 DYNAMIC Fa0/1
102 7a77.d727.7b7c DYNAMIC Fa0/1
102 7a78.2171.4101 DYNAMIC Fa0/1
102 7a78.7777.4101 DYNAMIC Fa0/1
102 7a78.8771.4101 DYNAMIC Fa0/1
102 7a78.8777.4101 DYNAMIC Fa0/1
102 7a7b.8376.c872 DYNAMIC Fa0/1
102 7a7c.d727.7b7c DYNAMIC Fa0/1
102 7ab8.0777.4101 DYNAMIC Fa0/1
102 7ad7.8734.777b DYNAMIC Fa0/1
102 7c0a.7797.7707 DYNAMIC Fa0/1
102 7c17.627a.e778 DYNAMIC Fa0/1
102 7c17.687a.e778 DYNAMIC Fa0/1
102 7c17.727a.e778 DYNAMIC Fa0/1
102 7c27.9977.6a77 DYNAMIC Fa0/1
102 7c47.07f7.d786 DYNAMIC Fa0/1
102 7c4a.7777.7775 DYNAMIC Fa0/1
102 7c77.2376.c872 DYNAMIC Fa0/1
102 7c77.2776.c872 DYNAMIC Fa0/1
102 7c77.7276.c872 DYNAMIC Fa0/1
102 7c77.7777.6a77 DYNAMIC Fa0/1
102 7c77.8376.c872 DYNAMIC Fa0/1
102 7c77.9777.6a77 DYNAMIC Fa0/1
102 7c77.a67a.e778 DYNAMIC Fa0/1
102 7c77.b7a3.c872 DYNAMIC Fa0/1
102 7c7a.7277.00f7 DYNAMIC Fa0/1
102 7c7a.7727.705b DYNAMIC Fa0/1
102 7c7a.7727.7077 DYNAMIC Fa0/1
102 7c7a.7727.8052 DYNAMIC Fa0/1
102 7c7a.7727.805b DYNAMIC Fa0/1
102 7c7a.7727.807b DYNAMIC Fa0/1
102 7c7a.7727.e077 DYNAMIC Fa0/1
102 7c7a.7774.8052 DYNAMIC Fa0/1
102 7c7a.7777.8052 DYNAMIC Fa0/1
102 7c7a.7777.805b DYNAMIC Fa0/1
102 7c7a.7777.e0f7 DYNAMIC Fa0/1
102 7c7a.c727.8052 DYNAMIC Fa0/1
102 7c7a.c774.2077 DYNAMIC Fa0/1
102 7c7a.c774.7058 DYNAMIC Fa0/1
102 7c7a.c774.7077 DYNAMIC Fa0/1
102 7c7a.c774.70b7 DYNAMIC Fa0/1
102 7c7a.c774.7658 DYNAMIC Fa0/1
102 7c7a.c774.7677 DYNAMIC Fa0/1
102 7c7a.c774.7678 DYNAMIC Fa0/1
102 7c7a.c774.76b7 DYNAMIC Fa0/1
102 7c7a.c774.7a58 DYNAMIC Fa0/1
102 7c7a.c774.7a77 DYNAMIC Fa0/1
102 7c7a.c774.8052 DYNAMIC Fa0/1
102 7c7a.c774.8652 DYNAMIC Fa0/1
102 7c7a.c777.8052 DYNAMIC Fa0/1
102 7c7a.c778.2057 DYNAMIC Fa0/1
102 7c7a.c778.2077 DYNAMIC Fa0/1
102 7c7a.c778.7077 DYNAMIC Fa0/1
102 7c7a.c778.8052 DYNAMIC Fa0/1
102 7c7a.c778.805b DYNAMIC Fa0/1
102 7c7a.c778.8a52 DYNAMIC Fa0/1
102 7c7a.c784.7058 DYNAMIC Fa0/1
102 7c7a.c788.8052 DYNAMIC Fa0/1
102 7c87.9777.6a77 DYNAMIC Fa0/1
102 7c8a.7777.7775 DYNAMIC Fa0/1
102 7ca8.8777.4101 DYNAMIC Fa0/1
102 7cb7.59e7.1618 DYNAMIC Fa0/1
102 7cb8.8777.4101 DYNAMIC Fa0/1
102 7cda.7777.776b DYNAMIC Fa0/1
102 7cea.7727.807b DYNAMIC Fa0/1
102 7cea.7727.e077 DYNAMIC Fa0/1
102 7e0a.7797.7707 DYNAMIC Fa0/1
102 7e67.7d78.8777 DYNAMIC Fa0/1
102 7e74.77f7.c7b7 DYNAMIC Fa0/1
102 7e77.758f.74c6 DYNAMIC Fa0/1
102 7e77.7777.d739 DYNAMIC Fa0/1
102 7e77.7777.d779 DYNAMIC Fa0/1
102 7e83.7710.c727 DYNAMIC Fa0/1
102 7e87.7710.c727 DYNAMIC Fa0/1
102 7e87.7710.c737 DYNAMIC Fa0/1
102 7ea7.777d.4843 DYNAMIC Fa0/1
102 7ea7.777d.4873 DYNAMIC Fa0/1
102 7ea7.777d.48db DYNAMIC Fa0/1
102 7ea7.777d.5877 DYNAMIC Fa0/1
102 7eb7.c477.76d2 DYNAMIC Fa0/1
102 8420.f7d7.858e DYNAMIC Fa0/1
102 844f.07f7.d786 DYNAMIC Fa0/1
102 8827.7777.5077 DYNAMIC Fa0/1
102 8c37.07e8.724f DYNAMIC Fa0/1
102 8c9b.7d72.7777 DYNAMIC Fa0/1
102 8e27.7777.5077 DYNAMIC Fa0/1
102 907f.8c2a.e777 DYNAMIC Fa0/1
102 9c77.777a.e778 DYNAMIC Fa0/1
102 9c77.a67a.e778 DYNAMIC Fa0/1
102 a07f.7427.7776 DYNAMIC Fa0/1
102 a677.8a97.7777 DYNAMIC Fa0/1
102 aa77.7736.03e6 DYNAMIC Fa0/1
102 ae07.e779.8772 DYNAMIC Fa0/1
102 b8c7.76a9.1652 DYNAMIC Fa0/1
102 b8c7.76a9.7658 DYNAMIC Fa0/1
102 b8c7.77a9.1652 DYNAMIC Fa0/1
102 b8c7.77a9.7658 DYNAMIC Fa0/1
102 c817.77c0.7777 DYNAMIC Fa0/1
102 ce17.77c0.7777 DYNAMIC Fa0/1
102 d27e.a717.7bd4 DYNAMIC Fa0/1
102 d477.707e.370c DYNAMIC Fa0/1
102 d477.7827.76de DYNAMIC Fa0/1
102 d477.7827.77de DYNAMIC Fa0/1
102 d477.7f2c.77de DYNAMIC Fa0/1
102 d657.a94e.7777 DYNAMIC Fa0/1
102 d858.70a9.7752 DYNAMIC Fa0/1
102 d8c7.76a9.1652 DYNAMIC Fa0/1
102 d8c7.77a9.1652 DYNAMIC Fa0/1
102 da77.7777.6b3c DYNAMIC Fa0/1
102 da77.7777.6b7d DYNAMIC Fa0/1
102 e477.d687.7778 DYNAMIC Fa0/1
102 e817.77c0.7777 DYNAMIC Fa0/1
102 e857.7157.76a3 DYNAMIC Fa0/1
102 e857.7557.76a3 DYNAMIC Fa0/1
102 e857.7757.75a3 DYNAMIC Fa0/1
102 e857.7757.76a3 DYNAMIC Fa0/1
102 e857.7757.77a3 DYNAMIC Fa0/1
102 e857.7787.77a3 DYNAMIC Fa0/1
102 e857.7797.76a3 DYNAMIC Fa0/1
102 ec4a.7777.7775 DYNAMIC Fa0/1
102 ee17.77c0.7777 DYNAMIC Fa0/1
102 f437.7874.76de DYNAMIC Fa0/1
102 f477.77a3.b0c7 DYNAMIC Fa0/1
102 f477.77c3.b0c7 DYNAMIC Fa0/1
102 f478.71c3.b0c7 DYNAMIC Fa0/1
102 f478.74a3.b0c7 DYNAMIC Fa0/1
102 f478.77c3.b0c7 DYNAMIC Fa0/1
102 f4c7.77a3.b0c7 DYNAMIC Fa0/1
102 f817.77c0.7777 DYNAMIC Fa0/1
102 f838.1797.6858 DYNAMIC Fa0/1
102 f838.17b7.6857 DYNAMIC Fa0/1
102 f838.17b7.6858 DYNAMIC Fa0/1
102 f848.7779.1652 DYNAMIC Fa0/1
102 f848.7779.7658 DYNAMIC Fa0/1
102 f848.77a9.7752 DYNAMIC Fa0/1
102 f858.7079.7752 DYNAMIC Fa0/1
102 f858.70b9.6858 DYNAMIC Fa0/1
102 f858.7187.75a3 DYNAMIC Fa0/1
102 f858.7757.75a3 DYNAMIC Fa0/1
102 f858.7770.7d74 DYNAMIC Fa0/1
102 f858.7770.7d77 DYNAMIC Fa0/1
102 f858.7770.7d87 DYNAMIC Fa0/1
102 f858.7777.2277 DYNAMIC Fa0/1
102 f858.7777.22c7 DYNAMIC Fa0/1
102 f858.7777.7587 DYNAMIC Fa0/1
102 f858.7777.7d77 DYNAMIC Fa0/1
102 f858.7777.7d87 DYNAMIC Fa0/1
102 f858.7777.7da3 DYNAMIC Fa0/1
102 f858.7777.7dc7 DYNAMIC Fa0/1
102 f858.7777.8377 DYNAMIC Fa0/1
102 f858.7777.8977 DYNAMIC Fa0/1
102 f858.7777.89c7 DYNAMIC Fa0/1
102 f858.7777.8aa3 DYNAMIC Fa0/1
102 f858.7777.8d77 DYNAMIC Fa0/1
102 f858.7777.8d87 DYNAMIC Fa0/1
102 f858.7777.8dc7 DYNAMIC Fa0/1
102 f858.7777.ed74 DYNAMIC Fa0/1
102 f858.7777.ed77 DYNAMIC Fa0/1
102 f858.7787.75a3 DYNAMIC Fa0/1
102 f858.7787.77a3 DYNAMIC Fa0/1
102 f858.77b7.2274 DYNAMIC Fa0/1
102 f858.77b9.6858 DYNAMIC Fa0/1
102 f858.77d7.2274 DYNAMIC Fa0/1
102 f858.77d7.2277 DYNAMIC Fa0/1
102 f858.77f7.7aa3 DYNAMIC Fa0/1
102 f877.1777.b0c7 DYNAMIC Fa0/1
102 f877.1777.d0c7 DYNAMIC Fa0/1
102 f877.177f.b0c3 DYNAMIC Fa0/1
102 f877.177f.b0c7 DYNAMIC Fa0/1
102 f877.177f.d0c7 DYNAMIC Fa0/1
102 f877.17c7.b0c7 DYNAMIC Fa0/1
102 f877.7773.b0c7 DYNAMIC Fa0/1
102 f877.77a3.b0c7 DYNAMIC Fa0/1
102 f877.77c3.b0c7 DYNAMIC Fa0/1
102 f878.7173.b0c7 DYNAMIC Fa0/1
102 f878.71a3.b0c7 DYNAMIC Fa0/1
102 f878.71c3.b0c7 DYNAMIC Fa0/1
102 f878.74a3.b0c7 DYNAMIC Fa0/1
102 f878.74c3.b0c7 DYNAMIC Fa0/1
102 f878.77d7.2274 DYNAMIC Fa0/1
102 f888.7770.7d71 DYNAMIC Fa0/1
102 f888.7770.7d77 DYNAMIC Fa0/1
102 f888.77d7.2274 DYNAMIC Fa0/1
102 f8c7.7679.7752 DYNAMIC Fa0/1
102 f8c7.76a9.1652 DYNAMIC Fa0/1
102 f8c7.76a9.6657 DYNAMIC Fa0/1
102 f8c7.76a9.6658 DYNAMIC Fa0/1
102 f8c7.76a9.7658 DYNAMIC Fa0/1
102 f8c7.76b9.6857 DYNAMIC Fa0/1
102 f8c7.7779.1652 DYNAMIC Fa0/1
102 f8c7.7779.6657 DYNAMIC Fa0/1
102 f8c7.77a9.1652 DYNAMIC Fa0/1
102 f8c7.77a9.6657 DYNAMIC Fa0/1
102 f8c7.77a9.6658 DYNAMIC Fa0/1
102 f8c7.77b9.6858 DYNAMIC Fa0/1
102 f8d7.77d7.2274 DYNAMIC Fa0/1
102 fc57.e715.7777 DYNAMIC Fa0/1
102 fc77.2778.7808 DYNAMIC Fa0/1
102 fcd7.2778.7808 DYNAMIC Fa0/1
102 fe17.77c0.7777 DYNAMIC Fa0/1
Total Mac Addresses for this criterion: 404

То есть, вместо трех адресов имеем 404. Причем генерированных случайным образом. На коммутаторе была возможность разрешить средствами port-security только определенные адреса, а так же ограничить их количество. Из arp-таблицы роутера были взяты "правильные" mac-адреса хостов.
switch#show run int fa0/1
Building configuration...

Current configuration : 346 bytes
!
interface FastEthernet0/1
switchport access vlan 102
switchport mode access
switchport port-security
switchport port-security maximum 2
switchport port-security violation protect
switchport port-security mac-address 0026.1841.43e4
switchport port-security mac-address 0090.e804.36f7
no ip address
end

switch#show mac-address-table vlan 102
Mac Address Table
------------------------------------------

Vlan Mac Address Type Ports
---- ----------- ---- -----
102 001d.70e9.b156 DYNAMIC Fa0/12
102 0026.1841.43e4 STATIC Fa0/1
102 0090.e804.36f7 STATIC Fa0/1
Total Mac Addresses for this criterion: 3

Конечно, проблема в пределах неуправляемого коммутатора, куда эти хосты были подключены - осталась.

Можно считать данное сообщение рекламой управляемых коммутаторов.

Отладка distribute-list в протоколах маршрутизации

Как частный случай можно рассмотреть EIGRP в такой конструкции. В последовательности команд закладывается ошибка.
router(config)#ip prefix-list AAA permit 192.168.2.0/24
router(config)#do show ip prefix-list AAA
ip prefix-list BBB: 1 entries
seq 5 permit 192.168.1.0/24
router(config)#ip prefix-list BBB permit 192.168.2.0/24
router(config)#do show ip prefix-list BBB
ip prefix-list BBB: 1 entries
seq 5 permit 192.168.2.0/24
router(config)#ip prefix-list CCC permit 192.168.2.0/24
router(config)#do show ip prefix-list CCC
ip prefix-list CCC: 1 entries
seq 5 permit 192.168.3.0/24
router(config)#ip prefix-list DDD permit 192.168.2.0/24
router(config)#do show ip prefix-list DDD
ip prefix-list DDD: 1 entries
seq 5 permit 192.168.4.0/24
router(config)#ip prefix-list EEE permit 192.168.2.0/24
router(config)#do show ip prefix-list EEE
ip prefix-list EEE: 1 entries
seq 5 permit 192.168.5.0/24

Далее создается route-map с использованием префикс-листов
router#show route-map FA_0_1_OUT
route-map FA_0_1_OUT, permit, sequence 10
Match clauses:
ip address prefix-lists: AAA
Set clauses:
Policy routing matches: 0 packets, 0 bytes
route-map FA_0_1_OUT, permit, sequence 20
Match clauses:
ip address prefix-lists: BBB
Set clauses:
Policy routing matches: 0 packets, 0 bytes
route-map FA_0_1_OUT, permit, sequence 30
Match clauses:
ip address prefix-lists: CCC
Set clauses:
Policy routing matches: 0 packets, 0 bytes
route-map FA_0_1_OUT, permit, sequence 40
Match clauses:
ip address prefix-lists: DDD
Set clauses:
Policy routing matches: 0 packets, 0 bytes
route-map FA_0_1_OUT, permit, sequence 50
Match clauses:
ip address prefix-lists: FFF
Set clauses:
Policy routing matches: 0 packets, 0 bytes

route-map применяется для фильтрации префиксов в EIGRP
router eigrp 1
network 10.0.0.0
distribute-list route-map FA_0_1_OUT out FastEthernet0/1
no auto-summary

По итогу отправлены все имеющиеся маршруты, потому что prefix-list FFF не существует. Следует обратить внимание, что отображение несуществующего листа и несуществующего листа, примененного в route-map отличаются
router#sh ip prefix-list FFF
ip prefix-list FFF: 0 entries
router#sh ip prefix-list JJJ
(пусто)
router#

Правила для FTP Passive

Вот как рекомендована реализация с использованием списка доступов ACL для корректной работы с ftp-серверами, работающими в пассивном режиме. Пассивный режим характерен тем, что недостаточно открыть порты ftp и ftp-data, так как в течение сессии соединение с сервером устанавливается повторно на случайный порт из определенного диапазона. Разные версии серверов, понятно, настроены по-разному и эти диапазоны различны. Поэтому, если необходимо открыть доступ к публичным ftp серверам, то получается примерно такие правила:
permit tcp 10.0.0.0 0.0.0.255 any eq ftp
permit tcp 10.0.0.0 0.0.0.255 any eq ftp-data
permit tcp 10.0.0.0 0.0.0.255 any range 1024 65535

Очевидное неудобство заключается в открытии всего диапазона tcp портов, куда попадают большинство приложений, например, torrent'ы.
На такой случай в IOSах есть фича Context-based access control (CBAC) , которая отслеживает сессии, создает динамические правила на определенное время.
ip inspect name LAN ftp

interface FastEthernet0/0.100
description LAN
encapsulation dot1Q 100
ip address 10.0.0.254 255.255.255.0
ip access-group LAN.in in
ip inspect LAN in

ip access-list extended LAN.in
permit ip 10.0.0.0 0.0.0.255 10.0.0.0 0.255.255.255
permit tcp 10.0.0.0 0.0.0.255 any eq ftp
permit tcp 10.0.0.0 0.0.0.255 any eq ftp-data
permit tcp 10.0.0.0 0.0.0.255 any eq www

В ACL создан минимум правил, которые разрешают неограниченный доступ из локальной сети LAN в другие подсети корпоративной сети, разрешают ftp,www доступ в сеть интернет. Без inspect'а можно было работать с ftp-серверами, поддерживающими активный режим.
Для проверки будем скачивать антивирусную утилиту CureIT от DrWeb, которая размещена на многих ftp-серверах, размещенных в свою очередь у различных операторов по всему миру. Очевидно, что без inspect перечислять все эти сети в ACL было бы бесполезно:
# host ftp.drweb.com
ftp.drweb.com is an alias for rr.drweb.com.
rr.drweb.com has address 210.233.71.100
rr.drweb.com has address 81.176.67.170
rr.drweb.com has address 81.176.67.171
rr.drweb.com has address 81.176.67.173
rr.drweb.com has address 81.177.37.3
rr.drweb.com has address 83.102.130.174
rr.drweb.com has address 87.242.75.130
rr.drweb.com has address 87.242.75.131
rr.drweb.com has address 91.121.123.94
rr.drweb.com has address 194.67.52.58
rr.drweb.com has address 210.233.71.98

В итоге наблюдаем, как справился с работой inspect:
router#show ip inspect all
Session audit trail is disabled
Session alert is enabled
one-minute (sampling period) thresholds are [unlimited : unlimited] connections
max-incomplete sessions thresholds are [unlimited : unlimited]
max-incomplete tcp connections per host is unlimited. Block-time 0 minute.
tcp synwait-time is 30 sec -- tcp finwait-time is 5 sec
tcp idle-time is 3600 sec -- udp idle-time is 30 sec
tcp reassembly queue length 16; timeout 5 sec; memory-limit 1024 kilo bytes
dns-timeout is 5 sec
Inspection Rule Configuration
Inspection name LAN
ftp alert is on audit-trail is off timeout 3600

Interface Configuration
Interface FastEthernet0/0.100
Inbound inspection rule is LAN
ftp alert is on audit-trail is off timeout 3600
Outgoing inspection rule is not set
Inbound access list is LAN.in
Outgoing access list is not set

Established Sessions
Session 48941834 (10.0.0.100:2701)=>(83.102.130.174:21) ftp SIS_OPEN
Session 4893E35C (10.0.0.100:2702)=>(83.102.130.174:64471) ftp-data SIS_OPEN
Session 4893FF2C (10.0.0.100:2704)=>(83.102.130.174:64487) ftp-data SIS_OPEN
Session 4893E624 (10.0.0.100:2703)=>(83.102.130.174:21) ftp SIS_OPEN

04.02.2010

Peak или не peak

О работе shape peak и police'ров с PIR почитать тут. Сделал точно так же и посмотрел как работает.
ip access-list extended mg
permit ip host 10.255.255.210 host 10.0.0.125
permit ip host 10.0.0.125 host 10.255.255.210

class-map match-all mg
match access-group name mg
policy-map speedtest.out
class mg
shape peak 64000 6400 6400
policy-map speedtest.in
class mg
police rate 64000 peak-rate 128000
conform-action set-prec-transmit 1
exceed-action set-prec-transmit 0
violate-action drop

interface FastEthernet0/0.100
encapsulation dot1Q 100
ip address 10.0.0.253 255.255.255.0
service-policy input speedtest.in
service-policy output speedtest.out

Тестируется shape iperf'ом. На 10.0.0.125 запущен сервер iperf -s -u, а с клиента генерируется трафик iperf -c 10.0.0.125 -u -bXXXk. Для начала проверка полосы, не превышающей CIR
[root@mg]# iperf -c 10.0.0.125 -u -b63k -t 300

Смотрим результаты на роутере
router#sh policy-map interface FastEthernet0/0.100 output
FastEthernet0/0.100

Service-policy output: speedtest.out

Class-map: mg (match-all)
1081 packets, 1638796 bytes
2 minute offered rate 64000 bps, drop rate 0 bps
Match: access-group name mg
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 2/0/0
(pkts output/bytes output) 1081/1638796
shape (peak) cir 64000, bc 6400, be 6400
target shape rate 128000

Class-map: class-default (match-any)
[skip]

Результаты показывают, что потерь нет.
[  3] local 10.255.255.210 port 51144 connected with 10.0.0.125 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-302.2 sec 2.25 MBytes 62.6 Kbits/sec
[ 3] Sent 1608 datagrams
[ 3] Server Report:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-564.8 sec 2.25 MBytes 33.5 Kbits/sec 92.753 ms 0/ 1608 (0%)

Увеличиваем поток данных до 128к.
router#sh policy-map interface FastEthernet0/0.100 output
FastEthernet0/0.100

Service-policy output: speedtest.out

Class-map: mg (match-all)
4260 packets, 6443740 bytes
30 second offered rate 132000 bps, drop rate 1000 bps
Match: access-group name mg
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 64/59/0
(pkts output/bytes output) 4201/6354296
shape (peak) cir 64000, bc 6400, be 6400
target shape rate 128000
Class-map: class-default (match-any)
[skip]

Видно, что данные начинаю отбрасываться. Сервер дает в итоге отчет о передаче данных
[  3] local 10.0.0.125 port 5001 connected with 10.255.255.210 port 51762
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-304.2 sec 4.44 MBytes 122 Kbits/sec 169.930 ms 55/ 3222 (1.7%)
[ 3] 0.0-304.2 sec 1 datagrams received out-of-order

Ограничение исходящего с порта маршрутизатора проверили, теперь необходимо ограничить входящий трафик. Как известно, shape'ры предназначены только для ограничения исходящего трафика, а для входящего используют police'ры.
Сервера меняются ролями. Клиент становится сервером и наоборот.
Что по итогу:
router#sh policy-map int FastEthernet0/0.100 input
FastEthernet0/0.100

Service-policy input: speedtest.in

Class-map: mg (match-all)
901 packets, 1365916 bytes
2 minute offered rate 132000 bps, drop rate 4000 bps
Match: access-group name mg
police:
rate 64000 bps, burst 2000 bytes
peak-rate 128000 bps, peak-burst 4000 bytes
conformed 427 packets, 647332 bytes; actions:
set-prec-transmit 1
exceeded 446 packets, 676136 bytes; actions:
set-prec-transmit 0
violated 28 packets, 42448 bytes; actions:
drop
conformed 61000 bps, exceed 64000 bps, violate 4000 bps

Class-map: class-default (match-any)
[skip]

Изменение приоритетов предположительно может далее использоваться для уже других shape'ров на этом роутере. Интересно, что в более привычной конфигурации...
conform-action transmit
exceed-action drop

... имеем
router#sh policy-map int FastEthernet0/0.100 input
FastEthernet0/0.100

Service-policy input: speedtest.in

Class-map: mg (match-all)
3819 packets, 5760764 bytes
2 minute offered rate 120000 bps, drop rate 69000 bps
Match: access-group name mg
police:
rate 64000 bps, burst 2000 bytes
peak-rate 128000 bps, peak-burst 4000 bytes
conformed 2651 packets, 3990076 bytes; actions:
transmit
exceeded 1087 packets, 1647892 bytes; actions:
drop
violated 81 packets, 122796 bytes; actions:
drop
conformed 63000 bps, exceed 65000 bps, violate 3000 bps

[root@mg]# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 41.1 KByte (default)
------------------------------------------------------------
[ 3] local 10.255.255.210 port 5001 connected with 10.0.0.125 port 58066
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-300.5 sec 2.16 MBytes 60.3 Kbits/sec 20.402 ms 1727/ 3267 (53%)