В последнее время в процессе работы все меньше времени удается уделять написанию статей в своем бложике. По большей части это связано с тем, что теперешний мой профиль заключается на 90% в работе с активным сетевым оборудованием Cisco Systems, а этому мне еще учится и учится - собственных наработок пока нет.
Так что теперь, по мере сил, буду писать о том что пишут другие, т.е. буду публиковать ссылки.
Интересный функционал обнаружился в ройтерах Cisco в статье TTCP (cisco), некий аналог IPERF (linux) - оказывается в роутерах есть генератор тестового трафика и некий его (трафика) приемник! Проверил на Cisco 2941-MWR - работает! Полностью заменить iperf не может, но жизнь явно будет облегчать :)
Вникаю в мозгодробительную тему мультихоуминга CE-роутеров в MPLS сетях, в часности с применением EIGRP на уровне PE-CE.
Для затравки рекомендую прочитать Multihomed MPLS VPN sites running EIGRP. После чего досканально вникнуть в EIGRP PE-CE Routing Protocol Overview, Configuration, and Verification - очень подробное руководство с очень подробными примерами! Себе даже в pdf копию напечатал :)
Берегите мозг, Коллеги! :)
12.05.2011
26.03.2011
Установка Vmware Guest Additions в FreeBSD 8.2
Vmware Guest Additions имеется в портах FreeBSD.
Однако процесс установки имеет два бага.
В портах Vmware Guest Additions находится в директории
Переходим в каталог и выполняем:
Первую ошибку получаем уже на этапе установки:
Внимательно посмотрев на список файлов в директории /usr/ports/emulators/vmware-guestd6/work/, видим что как раз там находится, так необходимый системе "vmmemctl.ko".
В качестве костыля выполняем:
И заново запускаем
Далее процесс установки вроде бы проходит нормально, и даже завершается установкой каких-то файлов, но если внимательно приглядется, видим:
Ищем vmware-guestd, и смотрим каких же библиотек ему не хватает:
В директории
Ее то и не "видит" vmware-guestd.
Копируем ее систему и перезамускаем установку порта:
Однако процесс установки имеет два бага.
В портах Vmware Guest Additions находится в директории
/usr/ports/emulators/vmware-guestd6/Переходим в каталог и выполняем:
#make && make installПервую ошибку получаем уже на этапе установки:
install: /usr/ports/emulators/vmware-guestd6/work/vmmemctl-only/vmmemctl.ko: No such file or directory
*** Error code 71
Внимательно посмотрев на список файлов в директории /usr/ports/emulators/vmware-guestd6/work/, видим что как раз там находится, так необходимый системе "vmmemctl.ko".
В качестве костыля выполняем:
#cd /usr/ports/emulators/vmware-guestd6/work/vmmemctl-only/
#ln -s ../vmmemctl.ko vmmemctl.ko
И заново запускаем
#make install.Далее процесс установки вроде бы проходит нормально, и даже завершается установкой каких-то файлов, но если внимательно приглядется, видим:
/libexec/ld-elf.so.1: Shared object "libdnet.so.1" not found, required by "vmware-guestd"
*** Error code 1 (ignored)
Ищем vmware-guestd, и смотрим каких же библиотек ему не хватает:
#ldd /usr/ports/emulators/vmware-guestd6/work/vmware-tools-distrib/lib/sbin32-6.vmware-guestd
vmware-guestd:
libdnet.so.1 => not found (0x0)
libc.so.6 => /usr/local/lib/compat/libc.so.6 (0x280d3000)
В директории
/usr/ports/emulators/vmware-guestd6/work/vmware-tools-distrib/lib/lib32-6/libdnet.so.1/ находится одноименная библиотека.Ее то и не "видит" vmware-guestd.
Копируем ее систему и перезамускаем установку порта:
#cp /usr/ports/emulators/vmware-guestd6/work/vmware-tools-distrib/lib/lib32-6/libdnet.so.1/libdnet.so.1 /lib
#cd /usr/ports/emulators/vmware-guestd6/
#make deinstall
#make install
07.01.2011
Проблемы при подключении по ssh между маршрутизаторами Cisco
Сегодня наткнулся на довольно странную и неоднозначную проблему.
При подключении по SSH с одного маршрутизатора Cisco на другой получал многообещающий ответ:
Причем подобное сообщение получал и при попытке обратного подключения.
Гугл навел на команду дебага:
Повторяю попытку подключения:
Далее поиск по фразе "SSH CLIENT0: protocol version exchange failure (code = 1)" дал понять что проблема может крыться в разнице используемых версий протокола SSH и/или первоначальном обмене ключами.
Выяснилось, что на одном из роутеров я забыл поменять версию протокола SSH на v2.
Смена версии также потребовала увеличения длинны ключа.
После перегенерации ключа длинной более 768 бит соединение устанавливается без проблем.
При подключении по SSH с одного маршрутизатора Cisco на другой получал многообещающий ответ:
c2811-01#ssh 172.16.11.76
[Connection to 172.16.11.76 aborted: error status 0]
Причем подобное сообщение получал и при попытке обратного подключения.
Гугл навел на команду дебага:
c2811-01##debug ip ssh client
SSH Client debugging is on
Повторяю попытку подключения:
c2811-01#ssh 172.16.11.76
[Connection to 172.16.11.76 aborted: error status 0]
c2811-01#
Jan 7 11:51:52.454 MSK: SSH CLIENT0: protocol version id is - SSH-1.5-Cisco-1.25
Jan 7 11:51:52.454 MSK: SSH CLIENT0: protocol version exchange failure (code = 1)
Jan 7 11:51:52.458 MSK: SSH CLIENT0: Session disconnected - error 0x00
Далее поиск по фразе "SSH CLIENT0: protocol version exchange failure (code = 1)" дал понять что проблема может крыться в разнице используемых версий протокола SSH и/или первоначальном обмене ключами.
Выяснилось, что на одном из роутеров я забыл поменять версию протокола SSH на v2.
Смена версии также потребовала увеличения длинны ключа.
После перегенерации ключа длинной более 768 бит соединение устанавливается без проблем.
10.11.2010
Расширение сознания через MPLS
До недавнего времни имел очень узкое представление о MPLS как о простой коммутации на основе меток.
На Opennet.ru нашелся замечательный сборник документации по MPLS на русском: http://www.opennet.ru/docs/RUS/mpls/
Читать следует с большой осторожностью, особенно новичкам - ломота в мозге и сны с "облаками" гарантированны.
Всем новичкам MPLS советую ознакомится.
На Opennet.ru нашелся замечательный сборник документации по MPLS на русском: http://www.opennet.ru/docs/RUS/mpls/
Читать следует с большой осторожностью, особенно новичкам - ломота в мозге и сны с "облаками" гарантированны.
Всем новичкам MPLS советую ознакомится.
25.08.2010
AACSource - сорс клиент для IceCast2
Более двух лет назад, работал на местном радио.
Директор поставил задачу транслировать эфир радио в интернет в формате AAC.
После долгих поисков бесплатного свободного сервера транслирующего поток в формате AAC, решено было самостоятельно написать сорс-клиент для IceCast2.
За основу был взят собственный сорс-клиент IceCast в части формата взаимодействия с сервером.
Поскольку на тот момент у меня небыло опыта компилирования Си-кода под линукс, а также опыта написания системных утилит, пришлось писать на Shell.
Итак, по просьбам некоторых коллег, представляю исходники моего "безобразия" по имени AACSource:
Срипт запуска
Конфигурационный файл
Собственно сам AACSource
Директор поставил задачу транслировать эфир радио в интернет в формате AAC.
После долгих поисков бесплатного свободного сервера транслирующего поток в формате AAC, решено было самостоятельно написать сорс-клиент для IceCast2.
За основу был взят собственный сорс-клиент IceCast в части формата взаимодействия с сервером.
Поскольку на тот момент у меня небыло опыта компилирования Си-кода под линукс, а также опыта написания системных утилит, пришлось писать на Shell.
Итак, по просьбам некоторых коллег, представляю исходники моего "безобразия" по имени AACSource:
Срипт запуска
Конфигурационный файл
Собственно сам AACSource
09.08.2010
08.08.2010
Пишем анти-спуфинг ACL
Написано дабы самому не забыть и товарищам почитать.
Итак, задача укрепить защиту маршрутизатора напрямую подключенного в Интернет.
Первым делом защитимся от спуфинга - исключим из обработки (попросту отбросим) все пакеты идущие от серых (частных) сетей. Серые сети это сети предназначенные для частного использования и не маршрутизируемые в сети Интернет. Данные сети описаны в RFC1918, это префиксы 10/8, 172.16/12, 192.168/16.
В сети Интернет имеется еще несколько диапазонов адресов, появление которых на интерфейсе подключенном к сети интернет, в нормальных условиях будет по меньшей мере необычным. Данные сети описаны в RFC3330.
Следует понимать, что RFC3330 описывает сети специального назначения. Некоторые из этих сетей успели поменять свое назначение на "Reserved but subject to allocation", т.е. зарезервированы, но могут быть предоставленны в пользование. В общем случае такие сети блокировать не стоит, так как в случае передачи этих сетей в пользование, вы не сможете обмениваться с этой сетью данными.
Итак, составим список сетей которые мы будем блокировать на внешнем интерфейсе:
Также, тем кто получил собственный диапазон адресов, рекомендуется добавить собственную сеть в данный список на граничных маршрутизаторах.
На основе полученного списка сетей, составим ACL.
В данном случае я буду использовать extended acl, просто для возможности в будущем фильтровать еще и по адресу назначения.
У меня получился такой список доступа:
В данном списке доступа, кроме перечиленных выше префиксов, добавлено еще два хостовых адреса:
Также следует помнить, что на интерфейсах с настроенными туннелями IPSec, ACL повешенный на вход интерфейса проверяет сначала заголовок пакета IPSec, а затем этот же ACL проверяет заголовок шифрованного пакета. Таким образом упоминание в данном ACL частных сетей может нарушить функционирование туннеля.
После написания списка доступа, применяем его на вход на всех интерфейсах подключенных в сеть Интернет или в другие не безопасные сети:
Такая настройка внешних интерфейсов поможет избежать атаки с подделаных адресов.
Источники:
Итак, задача укрепить защиту маршрутизатора напрямую подключенного в Интернет.
Первым делом защитимся от спуфинга - исключим из обработки (попросту отбросим) все пакеты идущие от серых (частных) сетей. Серые сети это сети предназначенные для частного использования и не маршрутизируемые в сети Интернет. Данные сети описаны в RFC1918, это префиксы 10/8, 172.16/12, 192.168/16.
В сети Интернет имеется еще несколько диапазонов адресов, появление которых на интерфейсе подключенном к сети интернет, в нормальных условиях будет по меньшей мере необычным. Данные сети описаны в RFC3330.
Следует понимать, что RFC3330 описывает сети специального назначения. Некоторые из этих сетей успели поменять свое назначение на "Reserved but subject to allocation", т.е. зарезервированы, но могут быть предоставленны в пользование. В общем случае такие сети блокировать не стоит, так как в случае передачи этих сетей в пользование, вы не сможете обмениваться с этой сетью данными.
Итак, составим список сетей которые мы будем блокировать на внешнем интерфейсе:
- 10.0.0.0/8 - описана в RFC1918;
- 172.16.0.0/12 - описана в RFC1918;
- 192.168.0.0/16 - описана в RFC1918;
- 224.0.0.0/4 - RFC3330, Мультикастовые сети;
- 127.0.0.0/8 - RFC3330, Лупбэк сеть;
- 169.254.0.0/8 - RFC3330, RFC3927, Zeroconf адреса;
- 192.0.2.0/24 - RFC3330, Сеть для тестирования и использования в публикациях;
- 240.0.0.0/4 - RFC3330, Зарезервировано для будущего использования.
Также, тем кто получил собственный диапазон адресов, рекомендуется добавить собственную сеть в данный список на граничных маршрутизаторах.
На основе полученного списка сетей, составим ACL.
В данном случае я буду использовать extended acl, просто для возможности в будущем фильтровать еще и по адресу назначения.
У меня получился такой список доступа:
#sho ip access-list
Extended IP access list AntiSpoof
10 deny ip host 0.0.0.0 any
20 deny ip 10.0.0.0 0.255.255.255 any
30 deny ip 172.16.0.0 0.15.255.255 any
40 deny ip 192.168.0.0 0.0.255.255 any
50 deny ip host 255.255.255.255 any
60 deny ip 224.0.0.0 15.255.255.255 any
70 deny ip 127.0.0.0 0.255.255.255 any
80 deny ip 169.254.0.0 0.0.255.255 any
90 deny ip 192.0.2.0 0.0.0.255 any
100 deny ip 240.0.0.0 15.255.255.255 any
110 permit ip any any
В данном списке доступа, кроме перечиленных выше префиксов, добавлено еще два хостовых адреса:
- 0.0.0.0;
- 255.255.255.255;
Также следует помнить, что на интерфейсах с настроенными туннелями IPSec, ACL повешенный на вход интерфейса проверяет сначала заголовок пакета IPSec, а затем этот же ACL проверяет заголовок шифрованного пакета. Таким образом упоминание в данном ACL частных сетей может нарушить функционирование туннеля.
После написания списка доступа, применяем его на вход на всех интерфейсах подключенных в сеть Интернет или в другие не безопасные сети:
#conf t
#int f0/0
#ip access-group AntiSpoof
#end
Такая настройка внешних интерфейсов поможет избежать атаки с подделаных адресов.
Источники:
Подписаться на:
Сообщения (Atom)



