Ciscoman's notes (Записки цыщика c дипломом)
Обо мне
четверг, 31 декабря 2009 г.
понедельник, 14 декабря 2009 г.
WishList
1. Маршрутизатор Cisco CISCO857-K9
2. CCIE Routing and Switching Exam Certification Guide (4th Edition)
Второе я уже себе заказал, первое, скорее всего, останестя несбыточным в этом году =(
А меж тем на работе нам тоже сделали подарок к Н.Г., выгнали нас в ночную смену. Вот такие вот яйца.
воскресенье, 29 ноября 2009 г.
ASA и NetFlow
Включается так:
flow-export destination inside x.x.x.x yyyy
access-list flow_export_acl permit ip host x.x.x.x host x.x.x.x
class-map flow_export_class
match access-list flow_export_acl
policy-map flow_export_policy
class flow_export_class
flow-export event-type flow-creation destination x.x.x.x
service-policy flow_export_policy global
x.x.x.x - NetFlow коллектор
yyyy - порт, на котором слушает коллектор.
http://www.cisco.com/en/US/docs/security/asa/asa82/netflow/netflow.html
четверг, 19 ноября 2009 г.
Нестандартные VPI/VCI
Иногда бывает, что провайдер выдает нестандартные значения VPI/VCI. (VPI>31 или VCI > 1023). Решается очень просто:
atm vc-per-vp 512 (например).
Подробности здесь:
http://www.cisco.com/en/US/tech/tk39/tk48/technologies_tech_note09186a00801086c5.shtml
понедельник, 16 ноября 2009 г.
Juniper for Security Platforms
IPSec supports both unicasts and multicasts traffic.
Однако, ещё из курса Cisco ISCW известно, что "IPmc is not supported with IPsec Direct Encapsulation. IPsec was created to be a security protocol
between two and only two devices, so a service such as multicast is problematic.". Примерно то же говорит RFC 2401. Понятно, конечно, что в Juniper используется IPSec over GRE (точее, route-based ipsec vpn через интерфейс st), однако об этом прямо не сказано, зачем же людей путать?
Спустя несколько дней:
Выясняются ещё более интересные подробности:
A route-based VPN is required for which scenario?Т.е это не GRE. Тогда мне совсем не ясно как это работает.
A. when the remote VPN peer is behind a NAT device
B. when multiple networks need to be reached across the tunnel and GRE cannot be used
C. when the remote VPN peer is a dialup or remote access client
D. when a dynamic routing protocol is required across the VPN and GRE cannot be used
Answer: D
суббота, 24 октября 2009 г.
Cisco Bugs #1
Let's look at this mac access filter:
mac access-list extended bridge_in
permit any host 000c.4209.536b
permit any host 0007.b359.6b60
permit any host 0007.b359.6b61
permit any host 0013.c39a.7c10
permit any host 0013.c39a.7c11
permit any host ffff.ffff.ffff
!
This filter was used on Catalyst 2960 with c2960-lanbasek9-mz.122-40.SE (also tested with c2960-lanbasek9-mz.122-52.SE.bin)
What do you think, should it block all OSPF multicast (0100.5e00.0005, 0100.5e00.0006) and prevent routers from forming OSPF neighbor adjacencies? Answer is YES. But this is not working on this switch. Maybe this is feature?
Let's look at the another switch - Catalyst 2950 with c2950-i6k2l2q4-mz.121-22.EA10a.bin
Here was used this mac access list:
mac access-list extended bridge_in
permit any host 000c.4203.4ca5
permit any host ffff.ffff.ffff
permit any host 000c.421c.f855
!
And it is working! Routers is not forming OSPF neighbor adjacencies because OSPF multicasts are blocked.
Updated:
another funny bug with Catalyst 2960 (IOS 122(40)):
sw#show clock
10:14:42.496 MSK Sun Oct 25 2009
sw#reload at 04:00 26 oct
Reload scheduled for 19:40:34 MSK Tue Dec 8 2009 (in 1065 hours and 26 minutes) by admin on vty0 (192.168.0.1)
Proceed with reload? [confirm]
sw#show reload
No reload is scheduled.
понедельник, 12 октября 2009 г.
Вычисление оптимального MTU и MSS для TCP/IP траффика в сетях VPN
Пример:
1500 байт - стандартный размер MTU (Для Ethernet фрейма размером 1518 байт - 1500 + 14 MAC заголовок + 4 FCS)
- 20 байт - IP заголовок
- 4 байт - заголовок туннеля GRE
- 8 байт - заголовок PPPoE
- 20 байт - заголовок TCP
- 52 байта - заголовок IPSec туннельном режиме
или
- 32 байта - заголовок IPSec в транспортном режиме
Выполним подсчёт MTU и MSS для удаленного офиса, подключенного к интернет по протоколу PPPoE в случае использования DMVPN:
(Макс. MTU) - [ (GRE Encaps) + (IPSec Transport) + (PPPoE) ] = ( MTU )
(1500) - [ ( 24 ) + ( 32 ) + ( 8 ) ] = ( 1436 )
(Макс. MTU) - [ (GRE Encaps) + (IPSec Transport) + (PPPoE) + ( TCP ) + ( IP ) ] = ( MSS )
(1500) - [ ( 24 ) + ( 32 ) + ( 8 ) + ( 20 ) + ( 20 ) ] = ( 1396 )
P.S. Заголовки следуют в следующем порядке:
PPPoE - IPSec - GRE - original IP - TCP ...
P.P.S Если нет ip tcp ajust-mss или неправильно выставлено значение ip mtu, а на ingress интерфейсе стоит no ip unreachables - могут быть проблемы с фрагментацией, т.к. ICMP fragmentation needed не будет приходить (PMTUD не работает). Точнее не будут прихоить сообщения ICMP destination unreachable с соответствующим кодом.
суббота, 3 октября 2009 г.
Конфигурация для возврата к исходному состоянию
Бывает такое, что нужно провести полную реконфигурацию маршрутизатора (например, с помощью скрипта загрузить на несколько однотипных удаленных маршрутизаторов новый startup-config по tftp и перезагрузиться, чтобы не вычищать тонны мусора, оставшиеся от предыдущей конфигурации). Однако, людям свойственно ошибаться, и в некоторых случаях новые параметры могут оказаться неработоспособными. Для этого я разработал следующую конфигурацию:
Задаем параметры ip sla, будем отслеживать состояние IP адреса 192.168.0.44 - доступен ли он (успешно доставлены 10 icmp-echo с таймаутом 2000 мс):
ip sla 100
icmp-jitter 192.168.0.44 num-packets 10
timeout 2000
frequency 5
ip sla мониторинг запустим через 5 минут, чтобы избежать неверных
срабатываний (например, маршрутизатор ещё не поднял pppoe соединение):
ip sla schedule 100 life forever start-time after 00:05:00
object-id 15 будет отслеживать событие изменения состояния ip sla:
track 15 rtr 100 reachability
delay down 180
Изменение состояния объекта на down сделаем с задержкой 3 минуты (180 сек.), чтобы объект имел возможность восстановиться (icmp-echo пакеты пройдут) и избежать ложного срабатывания. Далее создаем аплет, который по состоянию down объекта c id 15 будет выполнять не интерактивные команды, заданные в action. Т.к. команды не интерактивные, нам потребуется выполнить дополнительную настройку (1.2 – 1.4), а затем скопировать предварительно сохраненные файлы конфигурации и затем перезагрузиться. failed-config нужен для последующего анализа:
event manager applet IfPingFailed
event track 15 state down
action 1.0 syslog msg "Ping has failed, reverting configuration!"
action 1.1 cli command "enable"
action 1.2 cli command "configure terminal"
action 1.3 cli command "file prompt quiet"
action 1.4 cli command "end"
action 2.0 cli command "copy startup-config failed-config"
action 3.0 cli command "copy backup-config startup-config"
action 4.0 reload
Добавлено. В результае долгих экспериментов выяснил, что если такая конфигурация используется первый раз, например, когда вы загружаете startup-config по tftp и затем перезагружаете маршрутизатор, object trackig имеет состояние down сразу же после загрузки маршрутизатора. Соответственно состояние не меняется и возврат к исходному состоянию не происходит. Я вылечил это так:
event manager applet schedule_script
event timer countdown time 60
action 0.0 syslog msg "Tiggering rollback script!"
action 1.0 cli command "enable"
action 2.0 cli command "configure terminal"
action 3.0 cli command "no event manager applet schedule_script"
action 4.0 cli command "end"
action 5.0 cli command "write"
action 6.0 reload
Этот апплет удаляет сам себя, сохраняет конфигурацию и перезагружает маршрутизатор. Приследующей загрузке object tracking уже нормально срабатывает
пятница, 17 июля 2009 г.
Храните деньги в сберегательной кассе
четверг, 9 июля 2009 г.
BCMSN Self Study Guide ошибки
Вот, пример, на странице 238 сабжа:
Set port cost Switch(config)# spanning-tree [vlan vlan-id] cost cost
Set port priority Switch(config)# spanning-tree [vlan vlan-id] port-priority
port-priority
На самом деле стоимость и приоритет для порта указывается в режиме конфигурации интерфейса, а не в режиме глобальной конфигурации:
Set port cost Switch(config-if)# spanning-tree [vlan vlan-id] cost cost
Set port priority Switch(config-if)# spanning-tree [vlan vlan-id] port-priority port-priority
И вот ещё на странице 590:
After a switch receives news of a topology change, how long does it wait to ush entries from
its CAM table?
Answer: The switch flushes entries immediately instead of employing the timer reduction that
802.1D uses.
Имелось ввиду flush, очистка, а не "ush".
Затем на странице 372 есть такая фраза по поводу DSCP:
The relationship is confusing, and Table 14-2 should
be a handy aid.
Однако таблица 14-2 относится к PoE. Имелась ввиду таблица 14-4.
И снова на странице 395 опечатка:
...naïve user sending...
среда, 17 июня 2009 г.
Статья в MikroTik Wiki об OSPF
Русская версия статьи здесь.
OSPF Summarization and redistribution complex example
Материал из MikroTik Wiki.
Содержание |
Let's look at the network topology shown below. We have three routers connected to each other via ethernet. Routers R0 and R1 are MikroTik RouterBOARDs running RouterOS 3.25 and router R2 is Cisco 2611. R2 can be any other router, so cisco is taken just for example. Loopback interface on R0 also is just for example because I do not have ether3 on this router.
Basic OSPF configuration
OSPF areas configuration is introduced below:
Router R1 is Area Border Router. We will make summarization here.
First of all let's configure basic parametrs on our routers.
R0 without external routes summarization
/ip address
add address=192.168.88.2/25 broadcast=192.168.88.127 comment="" disabled=no \
interface=ether1 network=192.168.88.0
add address=192.168.88.129/25 broadcast=192.168.88.255 comment="" disabled=no \
interface=ether2 network=192.168.88.128
add address=192.168.85.1/24 broadcast=192.168.85.255 comment="" disabled=no \
interface=loopback0 network=192.168.85.0
This blackhole route will emulate remote network 192.168.84.0/24, which is reachable via static route:
/ip route
add disabled=no distance=1 dst-address=192.168.84.0/24 type=blackhole
Here we will start OSPF process on router R0 and change default parameters to enable redistribution of connected and static routes. Also we will add 192.168.88.0/24 network to OSPF routing process:
/routing ospf area
set backbone area-id=0.0.0.0 authentication=none disabled=no name=backbone \
type=default
/routing ospf
set distribute-default=never metric-bgp=20 metric-connected=20 \
metric-default=1 metric-rip=20 metric-static=20 mpls-te-area=unspecified \
mpls-te-router-id=unspecified redistribute-bgp=no redistribute-connected=\
as-type-1 redistribute-rip=no redistribute-static=as-type-1 router-id=0.0.0.0
/routing ospf network
add area=backbone disabled=no network=192.168.88.0/24
Lets's look at R0 routing table:
[admin@R0] > /ip route print Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY-STATE GATEWAY DISTANCE INTERFACE
1 A SB 192.168.84.0/24 1
2 ADC 192.168.85.0/24 192.168.85.1 0 loopback0
3 ADC 192.168.88.0/25 192.168.88.2 0 ether1
4 ADC 192.168.88.128/25 192.168.88.129 0 ether2
5 ADo 192.168.89.64/26 reachable 192.168.88.3 110 ether1
R1 without inter-area summarization
/ip address
add address=192.168.88.3/25 broadcast=192.168.88.127 comment="" disabled=no \
interface=ether1 network=192.168.88.0
add address=192.168.89.66/26 broadcast=192.168.89.127 comment="" disabled=no \
interface=ether2 network=192.168.89.64
In the same way we will start OSPF process on router R1 as on R0. Similarly, we will add 192.168.89.64/26 and 192.168.88.0/25 networks to OSPF routing process:
/routing ospf area
set backbone area-id=0.0.0.0 authentication=none disabled=no name=backbone \
type=default
add area-id=0.0.0.1 authentication=none default-cost=1 disabled=no \
inject-summary-lsa=no name=area1 type=default
/routing ospf
set distribute-default=never metric-bgp=20 metric-connected=20 \
metric-default=1 metric-rip=20 metric-static=20 mpls-te-area=unspecified \
mpls-te-router-id=unspecified redistribute-bgp=no redistribute-connected=\
no redistribute-rip=no redistribute-static=no router-id=0.0.0.0
/routing ospf network
add area=area1 disabled=no network=192.168.89.64/26
add area=backbone disabled=no network=192.168.88.0/25
Lets's look at R1 routing table:
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY-STATE GATEWAY DISTANCE INTERFACE
0 ADo 192.168.84.0/24 reachable 192.168.88.2 110 ether1
1 ADo 192.168.85.0/24 reachable 192.168.88.2 110 ether1
2 ADC 192.168.88.0/25 192.168.88.3 0 ether1
3 ADo 192.168.88.128/25 reachable 192.168.88.2 110 ether1
4 ADC 192.168.89.64/26 192.168.89.66 0 ether2
R2 configuration
R2 configuration is very simple even if you don't know the syntax of Cisco IOS configuration:
interface Ethernet0/0
ip address 192.168.89.65 255.255.255.192
!
interface Ethernet0/1
ip address 192.168.89.1 255.255.255.192
!
router ospf 1
network 192.168.89.64 0.0.0.63 area 1
!
0.0.0.63 is wildcard mask for network mask 255.255.255.192. Corresponding RouterOS configuration should look like this:
/routing ospf network
add area=area1 disabled=no network=192.168.89.64/26
Lets's look at R2 routing table (output omitted):
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
ia - IS-IS inter area, * - candidate default, U - per-user static route
...
192.168.89.0/26 is subnetted, 2 subnets
C 192.168.89.0 is directly connected, Ethernet0/1
C 192.168.89.64 is directly connected, Ethernet0/0
192.168.88.0/25 is subnetted, 2 subnets
O IA 192.168.88.0 [110/20] via 192.168.89.66, 00:10:10, Ethernet0/0
O IA 192.168.88.128 [110/30] via 192.168.89.66, 00:10:14, Ethernet0/0
O E1 192.168.85.0/24 [110/40] via 192.168.89.66, 00:09:28, Ethernet0/0
O E1 192.168.84.0/24 [110/40] via 192.168.89.66, 00:09:57, Ethernet0/0
Redistributing static routes and summarization
It's time to start inter-area routes and external routes summarization.
R0
Let's add blackhole summary route for static route 192.168.84.0/24 and connected route 192.168.85.0/24:
/ip route
add comment="" disabled=no distance=254 dst-address=192.168.84.0/23 type=\
blackhole
With help of routing filter we will allow only summary route advertisement:
/routing filter
add action=accept chain=ospf-out comment="" disabled=no invert-match=no \
prefix=192.168.84.0/23
add action=discard chain=ospf-out comment="" disabled=no invert-match=no
Let's look at the routing table of R0 again:
[admin@R0] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY-STATE GATEWAY DISTANCE INTERFACE
0 A SB 192.168.84.0/23 254
1 A SB 192.168.84.0/24 1
2 ADC 192.168.85.0/24 192.168.85.1 0 loopback0
3 ADC 192.168.88.0/25 192.168.88.2 0 ether1
4 ADC 192.168.88.128/25 192.168.88.129 0 ether2
5 ADo 192.168.89.0/24 reachable 192.168.88.3 110 ether1
Notice that route number 0 was added.
R1
R1 is Area Border Router. Here we can make inter-area summarization. Inter-area summarization was made with help of area ranges. Networks 192.168.88.0/25 and 192.168.88.128/25 are combined in 192.168.88.0/24. Network 192.168.89.64/26 is summarized in 192.168.89.0/24 (f.e. for future use):
/routing ospf area range
add advertise=yes area=backbone cost=default disabled=no range=192.168.88.0/24
add advertise=yes area=area1 cost=default disabled=no range=192.168.89.0/24
Let's look at the routing table after aggregation and summarization:
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY-STATE GATEWAY DISTANCE INTERFACE
0 ADo 192.168.84.0/23 reachable 192.168.88.2 110 ether1
1 ADC 192.168.88.0/25 192.168.88.3 0 ether1
2 ADo 192.168.88.128/25 reachable 192.168.88.2 110 ether1
3 ADoU 192.168.89.0/24 110
4 ADC 192.168.89.64/26 192.168.89.66 0 ether2
Notice that route number 3 for 192.168.89.0/24 is presented as unreachable.
This route is created automatically by routing process because it can't announce network until it have not any route to it (this is similarly to cisco ios behavior which creates automatic route to Null0 interface for such purpose).
R2
New routing table on router R2 will look as follows:
192.168.89.0/26 is subnetted, 2 subnets
C 192.168.89.0 is directly connected, Ethernet0/1
C 192.168.89.64 is directly connected, Ethernet0/0
O IA 192.168.88.0/24 [110/30] via 192.168.89.66, 00:00:02, Ethernet0/0
O E1 192.168.84.0/23 [110/40] via 192.168.89.66, 00:00:02, Ethernet0/0
Area 1 in stub configuration
Finally let's configure area1 as a stub area. For this purpose we will configure area type as stub on both R1 and R2. In other case routers will not agree the Stub Area Flag and will not form the adjacency (like then authentication parameters did not match).
R1
/routing ospf area
add area-id=0.0.0.1 authentication=none disabled=no name=area1 type=stub
R2
router ospf 1
area 1 stub
network 192.168.89.64 0.0.0.63 area 1
Routing from the stub area is made via default route:
192.168.89.0/26 is subnetted, 2 subnets
C 192.168.89.0 is directly connected, Ethernet0/1
C 192.168.89.64 is directly connected, Ethernet0/0
O*IA 0.0.0.0/0 [110/11] via 192.168.89.66, 00:06:33, Ethernet0/0
понедельник, 15 июня 2009 г.
Сетевой турнир Cisco, Конкурс «Беспроводные технологии»
с 8 по 14 июня Сетевая Академия "Ланит" и и Cisco Systems проводили очередной этап онлайн-состязания «Сетевой турнир Cisco». Конкурс был посвящен беспроводным технологиям, естественно, упустить возможность поучаствовать в нем мы (я и мои коллеги) не могли, тем более что все предыдущие этапы мы, к сожалению, пропустили. Вопросы, нужно сказать, попались достаточно интересные. Конечно, я себя не считаю знатоком беспроводных технологий, но по уровню, как минимум, тест соответствовал CCNA Wireless. Так как достоверные ответы неизвестны (организаторы не публикуют их), а в сети найти это не всегда возможно, думаю, интересно будет опубликовать вопросы и ответы здесь. Обсуждение приветствуется:
Какие два средства есть для администрирования сетей, построенных на легковесных (lightweight) точках доступа Cisco?
A. Wireless LAN Controller (WLC)
B. Wireless Control System (WCS)
C. Wireless LAN Solution Engine (WLSE)
D. Access Control Server (ACS)
N.B Wireless LAN Solution Engine (WLSE) предназначен для управления автономными AP. М.б. ACS здесь тоже уместен.
Какое утверждение истинно в отношении "температурных" карт (heat maps) на Cisco WCS?
Heat maps показывают предсказываемые уровни сигналов и зависят от точности информации, предоставленной вместе с картой этажа здания
Какие описания соответствуют типам EAP, поддерживаемым точками доступа Cisco?
Механизм аутентификации, основанный на клиентском пароле – LEAP
Механизм аутентификации, основанный на клиентских и серверных сертификатах – EAP-TLS
Механизм аутентификации, основанный на Protected Access Credential (PAC) – EAP-FAST
Механизм аутентификации, основанный на серверном сертификате и клиентском пароле - PEAP
Какая из приведенных точек доступа Cisco не поддерживает протокол LWAPP?
1400
Кто разрабатывает спецификации Cisco Compatible Extensions?
Cisco Systems
Что из следующего является корректной комбинацией опций WEP?
Открытая аутентификация, шифрация WEP
Какова цель использования 2 антенн, применяемых на большинстве точек доступа и на некоторых беспроводных сетевых адаптерах?
(Выберите два правильных ответа.)
Одновременная работа в двух диапазонах: 2,4 ГГц и 5,2 ГГц
- Борьба с интерференциями, возникающими в результате многолучевого прохождения радиоволн
В какомвиде доступна система Cisco WCS (Wireless Control System)?
Только в виде программы
- Сопоставьте компоненты модели аутентификации 802.1X, отмеченные на рисунке цифрами, с их англоязычными терминами.
1 – supplicant
2 – authenticator
3 - authentication server
4 - EAP
- 5 - RADIUS
Какова роль интерфейса AP-Manager на беспроводном контроллере?
Интерфейс для управления точками доступа по протоколу LWAPP 3 уровня
Как называется встроенная в Windows утилита конфигурации беспроводной ЛВС?
Wireless Zero Configuration (WZC)
Какое физическое явление вызывает многолучевое прохождение радиоволн (multipath distortion)?
A. Отражение B. Затухание C. Преломление D. Излучение E. Поглощение
Ссылка: http://supportwiki.cisco.com/ViewWiki/index.php/What_is_multipath_distortion%3F
Как dBm соотносится с dBi?
A. Соотношение dBm и dBi зависит от коэффициента усиления антенны
B. Прямой связи между dBm и dBi нет
C. 1 dBi = 2.14 dBm
- D. 1 dBm = 2.14 dBi
В каких сценариях применение Cisco Wireless Location Appliance будет наиболее полезным?
(Выберите три правильных ответа.)
Определение местонахождения сотрудников предприятия
- Обнаружение места расположения незаконных (rogue) точек доступа на предприятии
- Обеспечение Wi-Fi мобильной телефонной связи на территории предприятия
Какая конфигурационная информация на точке доступа не сбрасывается, если в Cisco WCS щелкнуть по кнопке Reset AP?
Никакая информация не сбрасывается, только перезагружается точка доступа
IP-адрес точки доступа, если он задан статически
Имя основного контроллера
- Место размещения (location) точки доступа
На какой из приведенных фотографий сетевых адаптеров изображен адаптер Cisco AIR-PI21AG?
Мониторинг уровня безопасности беспроводных ЛВС
- Построение организационных диаграмм внедрения беспроводных ЛВС
Базовый анализ условий эксплуатации беспроводных ЛВС
- Диагностика и устранение неисправностей беспроводных ЛВС
- Почему во многих странах для безлицензионного использования выделяется диапазон частот 2,4 ГГц?
(Выберите три правильных ответа.)
A. На этой частоте трудно обеспечить качественную узкополосную связь |
B. Передачи на этой частоте сложнее перехватить злоумышленникам |
C. На этой частоте работает много промышленных, научных, медицинских и бытовых приборов |
D. Передачи на этой частоте легче контролировать спецслужбам |
E. Это частота резонанса молекул воды |
F. Это частота резонанса молекул азота, основного компонента воздуха |
Что из следующего представляет одно из отличий WPA2 от 802.11i?
A. WPA2 требует использования AES-CCMP, а 802.11i разрешает использование AES и TKIP |
B. WPA2 специфицирует только фиксированные подключения, а в 802.11i рассматривается и роуминг |
C. WPA2 не поддерживает EAP-SIM, а 802.11i поддерживает |
D. 802.11i поддерживает ad-hoc сети, а WPA2 не поддерживает |
Чему равно 23 dBm?
A. 23 мВт |
B. 200 мВт |
C. 25.14 dBi |
D. 25.14 dBd |
В каких двух кадрах из указанных всегда передается SSID?
A. Маяк (beacon) |
B. Сброс (reset frame) |
C. Пробный запрос (probe requests) |
D. Запрос на аутентификацию (authentication requests) |
NB. Я посчитал что этот вопрос на засыпку, т.к. в указанных фреймах даже при сокрытии SSID (hide-ssid), Service Set ID фактически установлен в (null). Скорее всего, я здесь ошибаюсь.
Какие два объекта могут быть настроены при помощи утилиты Cisco ACAU?
A. Профили беспроводных сетей для клиента
- B. Поведение и доступные опции клиента Cisco ADU
C. Конфигурация точки доступа
- D. Конфигурация контроллера LWAPP точек доступа
Возможно ли одновременно использовать WZC и Cisco ADU для конфигурации беспроводных адаптеров Cisco?
A. Да, Cisco ADU предоставляет драйверы адаптеров, а WZC настраивает профили беспроводных сетей |
B. Нет, поскольку Cisco ADU выключает WZC для адаптеров Cisco |
C. Да, но для создания сложных профилей и аутентификации 802.1X следует использовать ADU |
D. Нет, поскольку они конфликтуют между собой и ведут к краху операционной системы |
Для внедрения передачи голоса по беспроводной сети какое минимальное значение RSSI должно быть обеспечено на границе ячейки покрытия?
A. 67 dBm
B. 80 dBm
C. 94 dBm
- D. 20 dBm
- Что такое бимформинг (beamforming) при передаче?
A. Это возможность динамически изменять форму передаваемого радиолуча, адаптируясь к окружающей среде |
B. Это возможность посылки трех независимых сигналов одновременно, которые принимаются одной антенной |
C. Это процесс, при котором MIMO-устройство принимает сигнал одновременно с нескольких антенн |
D. Это механизм выбора антенны, обеспечивающей наилучший прием для каждого кадра |
- Как может быть сделан апгрейд программного обеспечения LWAPP точки доступа?
A. Как через веб-интерфейс, так и через интерфейс командной строки контроллера, используя команду config ap |
B. Только через интерфейс командной строки контроллера, используя команду config ap |
C. Апгрейд вообще не требуется, так как LWAPP точка доступа не имеет собственного программного обеспечения |
D. Только через интерфейс командной строки точки доступа, используя команду tftp |
E. Ручной апгрейд не требуется, обновление ПО будет автоматически получено при подключении к контроллеру |
- Для какой цели используется аутентификация в корпоративных беспроводных сетях?
A. Аутентификация доказывает, что клиент принадлежит корпоративной сети |
B. Аутентификация используется для динамической генерации ключей |
C. Аутентификация предоставляет ключ для шифрования трафика |
D. Аутентификация обеспечивает конфиденциальность передаваемых данных |
- Какой способ расширения частотного спектра используется в стандарте IEEE 802.11g на скорости 54 Мб/с?
A. Frequency Hopping Spread Spectrum (FHSS) |
B. Time Division Multiplexing (TDM) |
C. Orthogonal Frequency Division Multiplexing (OFDM) |
D. Direct Sequence Spread Spectrum (DSSS) |
- Сколько времени точка доступа затрачивает на сканирование каждого канала в локальном режиме?
A. 60 мс |
B. 6 мс |
C. 0.6 с |
D. 6 с |
- Какой протокол Cisco WCS использует для коммуникаций с беспроводной инфраструктурой?
A. SNMP для взаимодействия с Location Appliance и LWAPP для взаимодействия с контроллерами |
B. SNMP для взаимодействия с контроллерами |
C. LWAPP для взаимодействия с легковесными точками доступа |
D. SOAP API для взаимодействия с контроллерами |
NB. Как я уже сказал, мы не знатоки LWAPP. Возможно, правильный вариант ответа С: "LWAPP выступает в качестве управляющего и транспортного протокола для поддержки услуг позиционирования". Источник: http://www.cisco.com/web/RU/products/hw/wireless/ps6108/products_white_paper0900aecd8040f7b2.html
воскресенье, 14 июня 2009 г.
Борьба со спамом в Mikrotik RouterOS
#Конфигурация для борьбы со спамом 1
/ip firewall filter
add action=drop chain=forward comment="bloack spam" disabled=no dst-port=25 protocol=tcp \
src-address-list=spammer
add action=add-src-to-address-list address-list=spammer address-list-timeout=\
1d chain=forward comment="detect spam" connection-limit=30,32 disabled=no \
dst-port=25 protocol=tcp
Вторая конфигурация более изящна и предназначенна для борьбы со спам ботами и рассчитана на то, что бот при попытке соединиться с заданным smtp-сервером 1 раз при недоступности оного прекратит повторные попытки. IP-адрес первый раз попадает в address-list first-smtp, при повторной поптыке - в approved-smtp. Первое содинение всегда отбрасывается, при этом генерируется icmp сообщение network-unreachable. Новые соединения маркируются в /ip firewall mangle c меткой smtp.
#Конфигурация для борьбы со спамом 2
/ ip firewall mangle
add chain=prerouting connection-state=new protocol=tcp src-port=1024-65535 dst-port=25 action=mark-connection new-connection-mark=smtp passthrough=no
/ ip firewall filter
add action=jump chain=forward comment="anti-spam policy" connection-mark=smtp \
disabled=no jump-target=smtp-first-drop
add action=add-src-to-address-list address-list=approved-smtp \
address-list-timeout=1d chain=smtp-first-drop comment="" disabled=no \
src-address-list=first-smtp
add action=return chain=smtp-first-drop comment="" disabled=no \
src-address-list=approved-smtp
add action=add-src-to-address-list address-list=first-smtp \
address-list-timeout=1d chain=smtp-first-drop comment="" disabled=no
add action=reject chain=smtp-first-drop comment="" disabled=no reject-with=\
icmp-network-unreachable
воскресенье, 3 мая 2009 г.
Маршрутизатор Cisco как PPTP клиент
service internal
!
no ip gratuitous-arps
ip cef
!
ip multicast-routing
vpdn enable
!
vpdn-group 1
request-dialin
protocol pptp
rotary-group 1
initiate-to ip 172.28.254.21
!
!
interface FastEthernet 0/0
ip dhcp
!
interface Dialer1
mtu 1450
ip address negotiated
ip pim dense-mode
encapsulation ppp
dialer in-band
dialer idle-timeout 0
dialer string 123
dialer vpdn
dialer-group 1
ppp pfc local request
ppp pfc remote apply
ppp encrypt mppe auto
ppp chap hostname myusername
ppp chap password 0 mypassword
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 Dialer1
ip route 172.28.254.21 255.255.255.255 FastEthernet0/0
!
!
dialer-list 1 protocol ip permit
!
end
суббота, 18 апреля 2009 г.
Перепаковка Cisco IOS или Исследования на тему юзабильности устаревшего оборудования Cisco
Эта версия оригинальная и не исправленная редакторами.
Статья, которая была создана изначально в целях систематизации своих изысканий, затем переросла в блогопост, ну и вот затем только в конечный вариант. Just4Fun.
Приветствую, дорогой читатель! Сегодня мы будем давать вторую молодость, а может даже жизнь старым маршрутизаторам Cisco.
Имеем исходные данные: старенькая кошка Cisco 2611 c двумя Ethernet(!) портами, 64 Мб RAM и 16 MB на flash. Эти параметры являются максимально возможными из поддерживаемых данной платформой (читай — увеличить объем DRAM памяти и flash физически не представляется возможным из-за отсутствия в природе комплектующих больших объемов). Исходя из данных Cisco IOS Feature Navigator (http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp) последней версией IOS для данного маршрутизатора является 12.3(26), что естественного для столь старого продукта (End-of-Sale - апрель 2003, End-of-Life – апрель 2008). Однако, иногда хочется получить только все самое последнее и новое, а все самое новое и вкусное доступно только в версии 12.4 (точнее 12.4T). Посыл номер два, или дополнительные исходные данные: если внимательно следить за модельным рядом маршрутизаторов Cisco или просто хорошо ознакомиться с информацией о продуктах на официальным сайте, то можно обнаружить что серия 2600 включает в себя, например, маршрутизаторы 2611XM. Отличается эта серия от своего предшественника незначительно:
- Максимальный объем flash-памяти увеличен до 48 MB (в 2611 — 16 MB)
- Максимальный объем SDRAM-памяти увеличен до 128 MB (в 2611 — 64 MB)
- Интегрированные 10/100 Fast Ethernet порты (в 2611 — 10 Мбит/c Ethernet)
Для такой кошки Cisco IOS Feature Navigator сообщит, что последний IOS за версией 12.4(23).
Системные требования для IOS 12.4(21) с набором Enterprise Base или Advanced Security составляют 128 MB DRAM и 32 MB flash. Конечно, у нас нет 128 MB памяти, но попытка не пытка, да и пропускная способность портов у нас невысокая, что позволяет сделать предположение о том, что ОС возможно запустить на моем устройстве. Осталось предположения превратить в практику.
Идея проста - загнать бинарный образ операционной системы Cisco IOS 12.4(21) с набором фьючерсов Enterprise Base на старенький маршрутизатор 2611 c исходными данными, представленными выше и в последующем использовать его как тестовый стенд, ибо 10-ти мегабитные интерфейсы ограничивают его применение в дикой природе, или, как говорится, in production. Хотя с таким же успехом это устройство может надежно служить файрволлом корпоративной сети взамен какого-нибудь PIX, если, конечно, достаточно пропускной способности в 10 Мбит, но тогда встает вопрос — а есть ли такой функционал, который может вам потребоваться в IOS 12.4, но которого нет в 12.3? За подсказкой вновь отправляю к Cisco IOS Feature Navigator (http://tools.cisco.com/ITDIT/CFN/Dispatch). Утилита сравнения образов вам в помощь, но ответ скорее всего будет - нет. Отсюда вывод — не стоит меня корить в малой практичности данной статьи, так как изначально она в большей степени исследовательская (jus for fun), чем практическая.
Возвращаясь от лирических отступлений к делу, скажу, что у меня не возникла бы потребность в написании статьи, если бы не одна, а точее две небольших проблемы. О первой из них я уже упомянул — это объем DRAM памяти. К сожалению, я не повелитель паяльника и вольтметра, так что здесь поделать ничего не можем. Стоит только надеяться, что ОС не уйдет в core в самый ответственный момент из-за недостатка пямяти. Вторая проблема, которая застигла меня врасплох — это размер самого образа образа IOS 12.4 и тот факт, что он не помещается на флеш объемом 16 МB. Этот образ принципиально туда не помещается из за своего размера, точнее сам маршрутизатор глаголет, что данный образ не поместится, и неудивительно. Файл образа — c2600-entbasek9-mz.124-9.T1.bin , который я взял для эксперимента, занимает 16,4 MB, то есть 17 257 364 байт. Флеш же размером 16 MB ровно (show flash: сообщает, что всего 16777212 байт или 16384K). Даже если стереть флеш с опцией no-squeeze-reserve-space:
router#erase /no-squeeze-reserve-space flash:
это нам не поможет, хотя в свое время для образа c2600-ik9o3s3-mz.123-13.bin являлось решением проблемы (этот образ чуть меньше размера самой флеш и для его загрузки требуется отформатировать ее с опцией, запрещающей резервировать свободное место).
Таким образом, решения здесь может быть два - грузиться с tftp, например, что не всегда удобно, либо же похекать образ так, чтобы его размер стал меньше, грубо говоря перепаковать (что, собственно, и было отчасти сделано). Посылом номер три является эмулятор Dynamips. Причем он здесь? А притом, что именно он натолкнул меня на мысль о перепаковке образа. Если взглянуть на раздел «How to use?» на официальном сайте проекта (http://www.ipflow.utc.fr/index.php/Cisco_7200_Simulator), то можно обнаружить, что эмулятор использует распакованные образы для ускорения загрузки:
…
To boot quickly, the preferred method is to decompress the IOS image with the "unzip" utility. It avoids to run the self-decompressing process in the emulator.
chris@portchris2:~/dynamips-0.2.5$ unzip -p c7200-advipservicesk9-mz.124-9.T.bin > image.bin
warning [c7200-advipservicesk9-mz.124-9.T.bin]: 27904 extra bytes at beginning or within zipfile
(attempting to process anyway)
chris@portchris2:~/dynamips-0.2.5$ file image.bin
image.bin: ELF 32-bit MSB executable, cisco 7200, version 1 (SYSV), statically linked, stripped
You can ignore the warning, unzip has just skipped the self-decompressing code at the beginning of the image.
Now, you can boot the imagе
…
Значит, если есть запакованный образ, то можно попытаться использовать более оптимальные параметры(!) сжатия, которые позволят разместить образ на флеш. Обращаю внимание на одну важную деталь — так как мы не собираемся переписывать самораспаковывающися код, то есть заниматься дизассемблированием, да и ассемблер под 32х битные процессоры PowerPC я не знаю (да и под 64х битные тоже), то сам алгоритм сжатия менять мы не сможем. Самораспаковывающаяся часть просто не сможет распаковать архивы, сжатые другими методами. По поводу используемого в образе алгоритма сжатия можно взглянуть сюда: Cisco IOS Configuration Fundamentals Configuration Guide, Release 12.4 - Loading and Managing System Images, пункт Image Naming Conventions. Поле «тип» в имени образа как раз отвечает за его характеристики:
f - The image runs from flash memory.
m - The image runs from RAM.
r - The image runs from ROM.
l - The image is relocatable.
z - The image is zip compressed.
x -The image is mzip compressed.
В нашем случае образ имеет тип mz – работает в памяти и запакован как раз в zip-архив. Убедиться в этом просто — большинство архиваторов (WinZIP, WinRAR, 7zip) c легкостью открывают и распаковывают архив.
Не мудрствуя лукаво, пытаемся перепаковать архив заново с максимально возможной степенью сжатия. Сразу же отмечаем, что используемый метод — deflate и изменить его не получится. Я использовал 4 архиватора, чтобы сравнить их и получил следующий результат:
7-zip 4.65 со следующими параметрами:
Формат архива — zip
Уровень сжатия — Ультра
Метод сжатия — Deflate
Размер словаря — 32КB
Размер слова — 258
В результате был получен архив следующих размеров: 15,7 MB (16 489 764 bytes)
WinZIP 11.2 при использовании улучшенного метода Deflate выдал файл размером 16,0 MB (16 803 634 bytes)
WinRAR 3.80 формат архива — zip с наилучшими параметрами сжатия: 16,3 MB (17131 353 bytes)
PKZIP 9.00 от создателей формата совсем подвел, и по методу Deflate с максимальным сжатием произвел файл, размером 16,3 MB (17 094 474 bytes).
Итогом моего небольшого сравнительного тестирования стал выбор для экспериментов архива, как нетрудно догадаться, созданного 7zip. Далее требуется этот архив поместить вместо оригинального образа. Чтобы проделать это, нам понадобится шестнадцатеричный редактор типа WinHex, HT Editor или hview. Я предпочитаю WinHex, но нам понадобится еще и HT, чуть позже объясню почему.
Как вы можете видеть на скриншоте, скорее всего бинарный образ IOS есть ничто иное, как исполняемый файл в формате ELF (Executable and Linkable Formate). ELF-формат является основным исполняемым файлом в *nix-like системах, неудивительно встретить его здесь. По ELF-формату существует четкая спецификация, последняя версия которой 1.2, однако для наших целей будет достаточно, например, заголовочного файла из состава libc - elf.h. Обычный бинарный ELF файл представляет собой структуру следующего вида:
ELF Header
Program Header Table (optional)
Section 1
Section 2
…
Section n
Section Header Table
Не углубляясь в описание, дабы не повторяться, отправляю вас к спецификации.
Так как весь процесс исследования я проводил в MS Windows, то пришлось искать замену утилите readelf из состава binutils. Этой заменой и оказался шестнадцатеричный редактор HT (http:///hte.sf.net), который умеет читать и модифицировать структуры данных исполняемых файлов ELF. При попытке открыть подопытный образ c2600-entbasek9-mz.124-9.T1.bin, HT сразу меня обругал, что и привлекло мое внимание. Обратимся к elf.h, структура данных, отвечающая за ELF-заголовок выглядит так:
typedef struct {
Elf_Char e_ident[EI_NIDENT];
Elf32_Half e_type;
Elf32_Half e_machine;
Elf32_Word e_version;
Elf32_Addr e_entry;
Elf32_Off e_phoff;
Elf32_Off e_shoff;
Elf32_Word e_flags;
Elf32_Half e_ehsize;
Elf32_Half e_phentsize;
Elf32_Half e_phnum;
Elf32_Half e_shentsize;
Elf32_Half e_shnum;
Elf32_Half e_shstrndx;
} Elf32_Ehdr;
В нашем случае поле e_machine имеет значение 0x002b или 43, что соответствует процессору SPARC v9:
#define EM_SPARCV9 43 /* SPARC v9 64-bit */
Однако нам известно, что маршрутизатор 2611 использует процессор Motorolla MPC860, значит поле должно иметь значение 0x0014, что соответствует:
#define EM_PPC 20 /* PowerPC */
Скорее всего, это есть простейшая защита от дизассемблирования образа, однако нам это не сильно помешает. С помощью F6 открываем режим просмотра elf/header. Из него нам становятся известны следующие подробности:
- elf header size 0x34
- program header entry size 0x20
- program header count 1
- section header entry size 0x28
- section header count 6
Что в сумме нам дает размер 52+32+6*40=324 или 0x144.
То есть в файле всего 6 секций (соответственно 6 заголовков секций) и 1 заголовок программы. Вероятнее всего одна из секций предназначена для хранения архива с исполняемым образом IOS. Эту секцию можно вычислить либо по размеру (логично, что ее размер должен быть максимальным), либо по типу секции. Заголовок таблицы секций можно просмотреть, нажав F6 и выбрав elf/section headers, но для начала обратимся к описанию секции:
typedef struct {
Elf32_Word sh_name;
Elf32_Word sh_type;
Elf32_Word sh_flags;
Elf32_Addr sh_addr;
Elf32_Off sh_offset;
Elf32_Word sh_size;
Elf32_Word sh_link;
Elf32_Word sh_info;
Elf32_Word sh_addralign;
Elf32_Word sh_entsize;
} Elf32_Shdr;
Поле sh_type и будет отвечать за искомый тип. К сожалению здесь меня ждал облом, большинство из секций имело тип SHT_PROGBITS, предназначенный для секций, значение которых определяется самой программой. Однако 4-я секция, имела тип отличный от предыдущих и имела значение 0x00000007, секция предназначена для каких-либо программных заметок. Первая (нулевая) секция также имеет отличный от предыдущих тип (SHT_NULL), исходя из этого становится ясно что она пустая и ни с чем не ассоциирована. В итоге приходится искать секцию с максимальным размером (поле sh_size), ее оказывается секция за номером пять, ее размер 0x1070e7c или 17239676 байт. Вернемся к hex-виду (F6 - hex) и перейдем по смещению (поле sh_offset) с помощью кнопки F5:
И что же мы здесь видим? Где же наш архив, который должен начинаться с сигнатуры PK, а точнее если следовать спецификации PKZIP-формата (http://www.pkware.com/documents/casestudies/APPNOTE.TXT) 0x04034b50 в обратном порядке? Как не странно эта сигнатура обнаруживается на 22 байта позже. Однако, если хорошо присмотреться, то отказывается, что сразу за значением 0xFEEDFACE идет размер распакованного образа 0x02AED904. Если внимательно поискать в Сети, то можно наткнуться на информацию из книги Cisco Networks Hacking Exposed издательства McGraw-Hill/Osborne. Наши русские парни Andrew A. Vladimirov, Konstantin V. Gavrilenko, Janis N. Vizulis and Andrei A. Mikhailovsky еще в 2006 году занимались разработкой бинарного патчинга IOS 12.3(6). Им удалось выяснить что после магического значения 0xFEEDFACE идут последовательно uncompressed image size, compressed image size, compressed image checksum, uncompressed image checksum. Помимо этого, им стало известно, что алгоритм вычисления контрольной суммы представляет собой модифицированный алгоритм контрольной суммы в Интернет, однако нам, к счастью, не придется их вычислять — как проверено позже на практике,маршрутизатор сам скажет нам какое значение должно иметь это поле, если конечно подсчитанная контрольная сумма и записанная в соответствующем поле не совпадут:
Error : compressed image checksum is incorrect 0xB99D8823
Expected a checksum of 0xF6F69877
*** System received a Software forced crash ***
signal= 0x17, code= 0x5, context= 0x800805f0
PC = 0x0, Vector = 0x0, SP = 0x0
Итак, перейдем к активным действиям. Для начала вырезаем из файла старую 4ю секцию, содержащую zip архив за исключением 20 байт, начиная с магического значения 0xFEEDFACE до сигнатуры zip не включая, то есть со смещения 0x44F8 по смещение 0x1075360 + 0x44F8. Затем по смещению 0x44F8 вставляем новый архив.
Соединим всю известную нам информацию воедино. Размер старой секции (№5), содержащей архив с образом IOS, загружаемым в память 0x1070e7c или 17239676 (включая 20 байт с 0xFEEDFACE по 0x504B0304 не включая). Размер новой секции, содержащей архив 0xFB9D38 или 16489784 (опять же включая те 20 байт). Разница между старым и новым значением составит 0xB7158 — 749912. То есть смещение 4й секции, физически расположенной в файле после 5й секции, требуется изменить с 0x1075360 на 0xFBE208.
Старые значения после магической записи 0xFEEDFACE:
unpacked image size: 0x02AED904 45013252
packed image size: 0x01070E66 17239654 (разница с размером 5й секции - на 22 байта меньше)
packed image checksum: 0xB58BE139
unpacked image checksum: 0xA29D4F6E
затем идет сигнатура: 0x504B0304
Новые значения после магической записи 0xFEEDFACE:
unpacked image size: 0x02AED904 (остался тот же)
packed image size: 0x00FB9D22 16489762 (разница с размером 5й секции - на 22 байта меньше)
packed image checksum: нам неизвестна, можно заменить на что-нибудь приметное, типа 0x48000000
unpacked image checksum: 0xA29D4F6E (остался тот же)
Новую контрольную сумму, как я уже говорил, сообщит сам маршрутизатор.
После всех манипуляций конечный образ был получен, однако размер его меня не впечатлил. К сожалению, по сравнению с изначальным размером 16,4 MB (17257364 bytes) я получил всего лишь 15,7 MB (16507472 bytes), то есть разница, которую я уже посчитал выше, составила 749912 байт. Конечно, это позволит загрузить образ на flash, но скорее всего придется применять опцию /no-squeeze-reserve-space. Однако, когда при копировании маршрутизатор запросит повторное стирание flash, подтверждать действие не нужно:
router#erase /no-squeeze-reserve-space flash:
Erasing the flash filesystem will remove all files! Continue? [confirm]
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeee ...erased
Erase of flash: complete
router#copy tftp://172.22.1.17/c2600-entbasek9-mz.124-9.T1-shad-pk.bin flash:
Destination filename [c2600-entbasek9-mz.124-9.T1-shad-pk.bin]?
Accessing tftp://172.22.1.17/c2600-entbasek9-mz.124-9.T1-shad-pk.bin...
Erase flash: before copying? [confirm]n
Loading c2600-entbasek9-mz.124-9.T1-shad-pk.bin from 172.22.1.17 (via Ethernet0/0): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!![OK - 16507472 bytes]
Verifying checksum... CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC OK (0xE6ED)
16507472 bytes copied in 178.188 secs (92641 bytes/sec)
router#reload
Proceed with reload? [confirm]
Естественно, такая ситуация была бы только в том случае, если образ был бы сформирован правильно. Поэтому я не стал спешить, и для загрузки образа защел в режим rommon по Ctrl+Break, затем со своего компьютера загрузил образ по tftp напрямую в RAM:
rommon 1>tftpdnld -r
После загрузки маршрутизатор сказал:
TFTP flash copy: Error, image size (16507470) mismatches netsize (16507472).
Оказалось, что при редактировании размера 5й секции я ошибся на 2 байта (те самые 20 байт с 0xFEEDFACE + 2).
После второй попытки загрузки выяснилось, что контрольная сумма запакованного образа — 0xB0257B0D:
Error : compressed image checksum is incorrect 0xB99D8823
Expected a checksum of 0x48000000
*** System received a Software forced crash ***
signal= 0x17, code= 0x5, context= 0x800805f0
PC = 0x0, Vector = 0x0, SP = 0x0
Корректируем соответствующее поле после 0xFEEDFACE (Загружаем файл в HT по F3, переходим по смещению с помощью F5 и редактируем по F4, не забывая сохраняться по F2), затем снова грузимся.
rommon 4>reset -s
Дальше соответственно все ок, однако затем IOS вываливается, и отказывается работать по причине недостатка памяти:
System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
Copyright (c) 1999 by cisco Systems, Inc.
TAC:Home:SW:IOS:Specials for info
PC = 0xfff0a530, Vector = 0x500, SP = 0x680127c8
PC = 0xfff0a530, Vector = 0x500, SP = 0x680127b0
C2600 platform with 65536 Kbytes of main memory
PC = 0xfff0a530, Vector = 0x500, SP = 0x80004684
monitor: command "boot" aborted due to user interrupt
rommon 1 > tftpdnld -r
IP_ADDRESS: 172.22.1.199
IP_SUBNET_MASK: 255.255.255.0
DEFAULT_GATEWAY: 172.22.1.1
TFTP_SERVER: 172.22.1.17
TFTP_FILE: c2600-entbasek9-mz.124-9.T1-shad-pk.bin
Receiving c2600-entbasek9-mz.124-9.T1-shad-pk.bin from 172.22.1.17 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!
File reception completed.
program load complete, entry point: 0x80008000, size: 0xfbe0d8
Self decompressing the image : ################################################## ################################################## ################################################## ## [OK]
Smart Init is enabled
smart init is sizing iomem
ID MEMORY_REQ TYPE
000092 0X000B3280 C2600 Dual Ethernet
0X00098670 public buffer pools
0X00211000 public particle pools
TOTAL: 0X0035C8F0
If any of the above Memory Requirements are
"UNKNOWN", you may be using an unsupported
configuration or there is a software problem and
system operation may be compromised.
Rounded IOMEM up to: 3Mb.
Using 5 percent iomem. [3Mb/64Mb]
Cisco IOS Software, C2600 Software (C2600-ENTBASEK9-M), Version 12.4(9)T1, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2006 by Cisco Systems, Inc.
Compiled Wed 30-Aug-06 15:43 by prod_rel_team
Image text-base: 0x800080E4, data-base: 0x81B46C00
SYSTEM INIT: INSUFFICIENT MEMORY TO BOOT THE IMAGE!
%Software-forced reload
00:00:16 UTC Fri Mar 1 2002: Unexpected exception to CPUvector 700, PC = 0x8069DE48, LR = 0x8069DD88
-Traceback= 0x8069DE48 0x8069DD88 0x80014B10 0x81B3BAA4 0x8170812C 0x817082A4 0x816E3D68 0x816E3DF4 0x816E3ED4 0x816E3E38 0x816E3ED4 0x816E3E38 0x816E3ED4 0x816E4A1C 0x8171AB4C 0x81729008
CPU Register Context:
MSR = 0x00029032 CR = 0x33000095 CTR = 0x806A2518 XER = 0x8000FE00
R0 = 0x00000000 R1 = 0x82EDD858 R2 = 0x82AF0000 R3 = 0x00000003
R4 = 0xFFFFFFFE R5 = 0x00000000 R6 = 0x00000003 R7 = 0x00009032
R8 = 0x82AF0000 R9 = 0x82820000 R10 = 0x82BBCC50 R11 = 0x00000000
R12 = 0x00004117 R13 = 0xFFF48A24 R14 = 0x80A82090 R15 = 0x00000000
R16 = 0x00000000 R17 = 0x00000000 R18 = 0x00000000 R19 = 0x00000000
R20 = 0x00000000 R21 = 0x00000000 R22 = 0x81B47998 R23 = 0x00000000
R24 = 0x81B47A48 R25 = 0x81708128 R26 = 0x81708128 R27 = 0x00002814
R28 = 0x00000000 R29 = 0x82C8F368 R30 = 0x00000000 R31 = 0x82AF0000
Writing crashinfo to flash:crashinfo_20020301-000016
Однако, здесь я не расстроился, и решил взяться за другой образ — c2600-advsecurityk9-mz.124-21.bin. После аналогичных манипуляций с байтами, даже при использовании 128 битного слова в 7zip, размер составил 15947076 (против изначального размера 16635336), что позволило загрузить его во flash. Помимо прочего, этот образ уже не ругался на недостаток памяти RAM и прекрасно чувствовал себя на этой платформе:
router#show version
Cisco IOS Software, C2600 Software (C2600-ADVSECURITYK9-M), Version 12.4(21), RELEASE SOFTWARE (fc1)
router#show memory summary
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 82A44240 20244772 8718640 11526132 10171028 10098348
I/O 3CA3400 3525632 1650536 1875096 1875096 1875068
router#show flash:
System flash directory:
File Length Name/status
1 15947076 c2600-advsecurityk9-mz.124-21-shad-pk.bin
[15947140 bytes used, 830072 available, 16777212 total]
16384K bytes of processor board System flash (Read/Write)
Однако, у нас остается еще одна небольшая проблема. Если запустить проверку:
router#verify flash:c2600-advsecurityk9-mz.124-21-shad-pk.bin
Маршрутизатор обругает нас, сообщив, что Embedded hash и Calculated hash не совпадают. Исправить это очень просто — 16 байт контрольной суммы находится в самом конце бинарного файла образа. Обнаружить это можно даже с помощью простого поиска:
После исправления маршрутизатор сообщает, что контрольная сумма успешно подсчитана и совпадает:
Embedded Hash MD5 : 3DD2C6591FF4F033425147DE4540F9CD
Computed Hash MD5 : 3DD2C6591FF4F033425147DE4540F9CD
CCO Hash MD5 : 79020945BDFE2A354E012C8303136360
Embedded hash verification successful.
File system hash verification successful.
Вот и все, новый образ готов и правильно сформирован. На этом мои изыскания успешно заканчиваются, а все вопросы, пожелания и в особенности идеи, мой дорогой читатель, я готов получить по электронной почте. С радостью отвечу на них и помогу по мере сил. Удачи в бинарном патчинге и не только.
четверг, 19 февраля 2009 г.
Статья в MikroTik Wiki об IPSec
MikroTik router to CISCO PIX Firewall IPSEC
Contents1 How to interconnect two networks with IPSec between Mikrotik ROS and Cisco PIX |
How to interconnect two networks with IPSec between Mikrotik ROS and Cisco PIX
This example shows how to interconnect remote offices uses IPSec VPN between Mikrotik RouterOS device and Cisco PIX Firewall or Cisco Router, running Cisco IOS. Also I show you how to provide Internet access for network using masquerade/PAT on Mikrotik RouterOS, Cisco PIX Firewall and Cisco Router, running Cisco IOS. Network topology is shown below. We would like to interconnect networks 172.22.1.1/24 and 172.22.2.1/24 using corresponding public addresses 1.0.0.2 and 2.0.0.2. Assume 1.0.0.1 is default gateway for router, running Mikrotik RouterOS and 2.0.0.1 is default gateway for router running Cisco IOS or Cisco PIX Firewall, running Cisco PIX OS. This configuration tested and works well with Mikrotik RouterOS 3.20, Cisco IOS 12.4(21) and 12.3(26) advanced security features set with encryption and PIX OS 6.3(5).
Configuration of router running Mikrotik RouterOS
This configuration is simple and very similar to official 3.0 ipsec manual page
Mikrotik Router
Add addresses on interfaces
[admin@Mikrotik] > ip address add \
address=1.0.0.2/30 broadcast=1.0.0.3 disabled=no \
interface=public network=1.0.0.0
[admin@Mikrotik] > ip address add \
address=172.22.1.1/24 broadcast=172.22.1.255 disabled=no \
interface=inside network=172.22.1.0
Add ip routes
[admin@Mikrotik] > ip route add \
disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.0.0.1 \
scope=30 target-scope=10
Add accept and masquerading rules in SRC-NAT
[admin@Mikrotik] > ip firewall nat add \
chain=srcnat \
src-address=172.22.1.0/24 \
dst-address=172.22.2.0/24 action=accept
[admin@Mikrotik] > ip firewall nat add \
chain=srcnat out-interface=public action=masquerade
Add peer (with phase1 configuration parameters), DES and SHA1 will be used to protect IKE traffic for MikroTik router
[admin@MikroTik] > ip ipsec peer add \
address=2.0.0.2 secret="gvejimezyfopmekun" enc-algorithm=des
Set encryption proposal (phase2 proposal - settings that will be used to encrypt actual data) to use DES to encrypt data for MikroTik router
[admin@MikroTik] > ip ipsec proposal set default enc-algorithms=des
Add policy rule that matches traffic between subnets and requires encryption with ESP in tunnel mode for MikroTik router
[admin@MikroTik] > ip ipsec policy add \
src-address=172.22.2.0/24 \
dst-address=172.22.1.0/24 \
action=encrypt \
tunnel=yes sa-src=1.0.0.2 sa-dst=2.0.0.2
Add firewall rules to permit VPN traffic and private traffic
[admin@Mikrotik] >ip firewall add \
action=accept chain=input disabled=no protocol=ipsec-esp src-address=2.0.0.2
[admin@Mikrotik] >ip firewall add \
action=accept chain=customer disabled=no dst-address=172.22.1.0/24 \
in-interface=public out-interface=inside src-address=172.22.2.0/24
Cisco PIX Firewall configuration
I think this configuration is quiet clear because of detailed comments.
Cisco PIX Firewall
PIX Version 6.3(5)
nameif ethernet0 outside security0
nameif ethernet1 inside security100
!
!--- Create access list that matches traffic that should be encrypted (traffic to RouterOS device)
access-list myacl permit ip 172.22.2.0 255.255.255.0 172.22.2.0 255.255.255.0
!
!--- Create access list that matches traffic that should not be NATed (traffic to RouterOS device)
access-list nonat permit ip 172.22.2.0 255.255.255.0 172.22.1.0 255.255.255.0
!
!--- Configuring NAT
ip address outside 2.0.0.2 255.255.255.252
ip address inside 172.22.2.1 255.255.255.0
!
global (outside) 1 2.0.0.2
!
!--- Do not make NAT for traffic to RouterOS device
nat (inside) 0 access-list nonat
nat (inside) 1 172.22.2.0 255.255.255.0 0 0
!
route outside 0.0.0.0 0.0.0.0 2.0.0.1 1
!
sysopt connection permit-ipsec
!
!--- Create IPsec transform set - transformations that should be applied to
!--- traffic - ESP encryption with DES and ESP authentication with SHA1
!--- This must match "/ip ipsec proposal"
crypto ipsec transform-set myset esp-des esp-sha-hmac
crypto ipsec security-association lifetime seconds 1800
!
!--- Create crypto map that will use transform set "myset", use peer 1.0.0.2
!--- to establish SAs and encapsulate traffic and use access-list myacl to
!--- match traffic that should be encrypted
crypto map mymap 21 ipsec-isakmp
crypto map mymap 21 match address myacl
crypto map mymap 21 set peer 1.0.0.2
crypto map mymap 21 set transform-set myset
crypto map mymap interface outside
!
!--- Configure ISAKMP policy (phase1 config, must match configuration
!--- of "/ip ipsec peer" on RouterOS).
isakmp enable outside
!--- Add preshared key to be used when talking to RouterOS
isakmp key gvejimezyfopmekun address 1.0.0.2 netmask 255.255.255.255
isakmp identity address
isakmp policy 20 authentication pre-share
isakmp policy 20 encryption des
isakmp policy 20 hash md5
isakmp policy 20 group 2
: end
Corresponding Cisco Router configuration
This configuration is just for example. You can use Cisco router instead Cisco PIX Firewall.
Cisco Router
!--- Configure ISAKMP policy (phase1 config, must match configuration
!--- of "/ip ipsec peer" on RouterOS). Note that DES is default
!--- encryption algorithm on Cisco. SHA1 is default authentication
!--- algorithm
crypto isakmp policy 20
authentication pre-share
hash md5
exit
!
!--- Add preshared key to be used when talking to RouterOS
crypto isakmp key gvejimezyfopmekun address 1.0.0.2
!
! Create IPsec transform set - transformations that should be applied to
! traffic - ESP encryption with DES and ESP authentication with SHA1
! This must match "/ip ipsec proposal"
crypto ipsec transform-set myset esp-des esp-sha-hmac
mode tunnel
exit
!
!
!--- Create crypto map that will use transform set "myset", use peer 1.0.0.2
!--- to establish SAs and encapsulate traffic and use access-list 101 to
!--- match traffic that should be encrypted
crypto map mymap 21 ipsec-isakmp
set peer 1.0.0.2
set transform-set myset
set pfs group2
match address 101
exit
!
!
!--- And finally apply crypto map to outside interface
interface Ethernet0
ip address 2.0.0.2 255.255.255.252
no ip directed-broadcast
ip nat outside
crypto map mymap
!
interface Ethernet1
ip address 172.22.2.1 255.255.255.0
no ip directed-broadcast
ip nat inside
!
!
!--- Create NAT pool
ip nat pool mypool 2.0.0.2 2.0.0.2 netmask 255.255.255.252
!
!--- Do not make NAT for traffic to RouterOS device
ip nat inside source route-map nonat pool mypool overload
ip classless
ip route 0.0.0.0 0.0.0.0 2.0.0.1
!
!--- Create access list that matches traffic that should be encrypted (traffic to RouterOS device)
access-list 101 permit ip 172.22.2.0 0.0.0.255 172.22.1.0 0.0.0.255
!
!--- Create access list that matches traffic that should not be NATed (traffic to RouterOS device):
access-list 102 deny ip 172.22.2.0 0.0.0.255 172.22.1.0 0.0.0.255
access-list 102 permit ip 172.22.2.0 0.0.0.255 any
!
!--- Create route-map for traffic that should be NATed
route-map nonat permit 10
match ip address 102
!
end
понедельник, 9 февраля 2009 г.
Статья про IPSec в MikroTik Wiki от меня
MikroTik router to CISCO PIX Firewall IPSEC
How to interconnect two networks with IPSec between Mikrotik ROS and Cisco PIX
Configuration of router running Mikrotik RouterOS
This configuration is simple and very similar to official 3.0 ipsec manual pageMikrotik Router
Add addresses on interfaces
[admin@Mikrotik] > ip address add address=1.0.0.2/30 broadcast=1.0.0.3 comment="" disabled=no interface=\ public network=1.0.0.0 [admin@Mikrotik] > ip address add address=172.22.1.1/24 broadcast=172.22.1.255 comment="" disabled=no \ interface=inside network=172.22.1.0Add ip routes
[admin@Mikrotik] > ip route add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.0.0.1 \ scope=30 target-scope=10
Add accept and masquerading rules in SRC-NAT
[admin@Mikrotik] > ip firewall nat add chain=srcnat src-address=172.22.1.0/24 \ \... dst-address=172.22.2.0/24 action=accept [admin@Mikrotik] > ip firewall nat add chain=srcnat out-interface=public \ \... action=masqueradeAdd peer (with phase1 configuration parameters), DES and SHA1 will be used to protect IKE traffic for MikroTik router
[admin@MikroTik] > ip ipsec peer add address=2.0.0.2 \ \... secret="gvejimezyfopmekun" enc-algorithm=desSet encryption proposal (phase2 proposal - settings that will be used to encrypt actual data) to use DES to encrypt data for MikroTik router
[admin@MikroTik] > ip ipsec proposal set default enc-algorithms=desAdd policy rule that matches traffic between subnets and requires encryption with ESP in tunnel mode for MikroTik router
[admin@MikroTik] > ip ipsec policy add \ \... src-address=172.22.1.0/24 dst-address=172.22.2.0/24 action=encrypt \ \... tunnel=yes sa-src=1.0.0.2 sa-dst=2.0.0.2
Cisco PIX Firewall configuration
I think this configuration is quiet clear because of detailed comments.Cisco PIX Firewall
PIX Version 6.3(5) nameif ethernet0 outside security0 nameif ethernet1 inside security100 ! !--- Create access list that matches traffic that should be encrypted (traffic to RouterOS device) access-list myacl permit ip 172.22.2.0 255.255.255.0 172.22.2.0 255.255.255.0 ! !--- Create access list that matches traffic that should not be NATed (traffic to RouterOS device) access-list nonat permit ip 172.22.2.0 255.255.255.0 172.22.1.0 255.255.255.0 ! !--- Configuring NAT ip address outside 2.0.0.2 255.255.255.252 ip address inside 172.22.2.1 255.255.255.0 ! global (outside) 1 2.0.0.2 ! !--- Do not make NAT for traffic to RouterOS device nat (inside) 0 access-list nonat nat (inside) 1 172.22.2.0 255.255.255.0 0 0 ! route outside 0.0.0.0 0.0.0.0 2.0.0.1 1 ! sysopt connection permit-ipsec ! !--- Create IPsec transform set - transformations that should be applied to !--- traffic - ESP encryption with DES and ESP authentication with SHA1 !--- This must match "/ip ipsec proposal" crypto ipsec transform-set myset esp-des esp-sha-hmac crypto ipsec security-association lifetime seconds 1800 ! !--- Create crypto map that will use transform set "myset", use peer 1.0.0.2 !--- to establish SAs and encapsulate traffic and use access-list myacl to !--- match traffic that should be encrypted crypto map mymap 21 ipsec-isakmp crypto map mymap 21 match address myacl crypto map mymap 21 set peer 1.0.0.2 crypto map mymap 21 set transform-set myset crypto map mymap interface outside ! !--- Configure ISAKMP policy (phase1 config, must match configuration !--- of "/ip ipsec peer" on RouterOS). isakmp enable outside !--- Add preshared key to be used when talking to RouterOS isakmp key gvejimezyfopmekun address 1.0.0.2 netmask 255.255.255.255 isakmp identity address isakmp policy 20 authentication pre-share isakmp policy 20 encryption des isakmp policy 20 hash md5 isakmp policy 20 group 2 : end
Corresponding Cisco Router configuration
This configuration is just for example. You can use Cisco router instead Cisco PIX Firewall.Cisco Router
!--- Configure ISAKMP policy (phase1 config, must match configuration !--- of "/ip ipsec peer" on RouterOS). Note that DES is default !--- encryption algorithm on Cisco. SHA1 is default authentication !--- algorithm crypto isakmp policy 20 authentication pre-share hash md5 exit ! !--- Add preshared key to be used when talking to RouterOS crypto isakmp key gvejimezyfopmekun address 1.0.0.2 ! ! Create IPsec transform set - transformations that should be applied to ! traffic - ESP encryption with DES and ESP authentication with SHA1 ! This must match "/ip ipsec proposal" crypto ipsec transform-set myset esp-des esp-sha-hmac mode tunnel exit ! ! !--- Create crypto map that will use transform set "myset", use peer 1.0.0.2 !--- to establish SAs and encapsulate traffic and use access-list 101 to !--- match traffic that should be encrypted crypto map mymap 21 ipsec-isakmp set peer 1.0.0.2 set transform-set myset set pfs group2 match address 101 exit ! ! !--- And finally apply crypto map to outside interface interface Ethernet0 ip address 2.0.0.2 255.255.255.252 no ip directed-broadcast ip nat outside crypto map mymap ! interface Ethernet1 ip address 172.22.2.1 255.255.255.0 no ip directed-broadcast ip nat inside ! ! !--- Create NAT pool ip nat pool mypool 2.0.0.2 2.0.0.2 netmask 255.255.255.252 ! !--- Do not make NAT for traffic to RouterOS device ip nat inside source route-map nonat pool mypool overload ip classless ip route 0.0.0.0 0.0.0.0 2.0.0.1 ! !--- Create access list that matches traffic that should be encrypted (traffic to RouterOS device) access-list 101 permit ip 172.22.2.0 0.0.0.255 172.22.1.0 0.0.0.255 ! !--- Create access list that matches traffic that should not be NATed (traffic to RouterOS device): access-list 102 deny ip 172.22.2.0 0.0.0.255 172.22.1.0 0.0.0.255 access-list 102 permit ip 172.22.2.0 0.0.0.255 any ! !--- Create route-map for traffic that should be NATed route-map nonat permit 10 match ip address 102 ! end