Skip to main content

Виртуальная сеть на базе Cisco CSR 1000V


Во время обучения, для того чтобы лучше разобраться как работает та или иная технология я пользовался и программой моделирования сетей DYNAGEN, и удаленным доступом к стенду с реальным оборудованием, любезно предоставленным нам организаторами обучения. Это, конечно же очень помогало, но меня все время не оставляла мысль найти какой-то вариант, который позволил бы иметь ощущение реальности при работе с устройством и в тоже время чтобы я мог его крутить так как мне захочется и в любое время, когда мне захочется.
Я пробовал и GNS3, и IOU, при этом продолжая поиски. Так я узнал о таком продукте от CISCO как CSR 1000V Cloud Services Routerhttp://www.cisco.com/c/en/us/products/routers/cloud-services-router-1000v-series/index.html , скачать который можно в нашей подборке Cisco IOS.
Небольшие выдержки из документации:
«Развернутый на виртуальной машине Cisco CSR 1000V с IOS XE обеспечивает точно такую же функциональность, как если бы IOS XE работала на традиционной аппаратной платформе Cisco. Cisco CSR 1000V содержит виртуальный Route Processor (RP) и виртуальный ForwardingProcessor (FP) как часть своей архитектуры.»
Немного почитав, что это такое, для чего нужно и оценив предъявляемые требования решил попробовать его в действии. На одной из моих машин стоит гипервизор ESXi 5.1 от VMware, который я использую как площадку для всяческих экспериментов и который как нельзя лучше подходит для этого.

Сказано — сделано!
Установка.
На cisco.com скачиваю (требуется учетная запись) последнюю на то время версию iso-образа csr1000v-universalk9.03.11.00.S.154-1.S-std.iso. Доступен также OVA и BIN (для апгрейда), но решил устанавливать из ISO, чтобы самому создать VM в минимально необходимой конфигурации.
Используя vSphere Client перемещаю загруженный образ в папку на datastore1, в которой у меня хранятся все загрузочные образы.
После этого создаю виртуальную машину Version 8, типа Linux “Other 2.6x Linux (64-bit) setting”, с одним одноядерным vCPU, 2,5 GB RAM и диском в 8GB (это минимально рекомендуемые требования для работы с производительностью 250 Mbps, хотя на пробном периоде в 60 дней она составляет 50 Mbps максимум, и максимальным пакетом поддерживаемых технологий “Premium”), на которой будет работать CSR 1000V. Машина должна иметь минимум три сетевых адаптера типа VMXNET 3, CSR развернутый на VMware ESXi может иметь до 10 адаптеров. Далее монтирую загрузочный образ в CD-привод созданной машины и включаю ее.
Начинается процесс загрузки и установки, который продолжается не более 10 минут и не требует никакого участия.
По окончании распаковки и установки начнется загрузка самого CSR 1000V и через несколько секунд появляется запрос на использование диалога конфигурации, и если от него отказаться, то маршрутизатор выводит приглашение пользовательского режима EXEC.
После этого я выключил виртуальную машину, чтобы извлечь загрузочный образ из привода и перезагрузить маршрутизатор. После повторного включения VM и загрузки маршрутизатора производим начальные настройки (hostname, пароли vty и enable), настраиваем один из интерфейсов, который будет «смотреть» в LAN, для подключения по telnet. После этого я подключил к этому же интерфейсу одну из виртуальных машин на которой работает Windows XP с которой и буду подключаться используя Putty. Вот что после подключения мне вывела команда
show version:
CSR 1000V в качестве PPPoE клиента.
Ну что же, маршрутизатор есть и можно приступать к экспериментам. Первое, что решил попробовать, это настроить его в качестве шлюза в Интернет. К провайдеру я подключен по технологии ADSL, поэтому пошел на Cisco Feature Navigator посмотреть, как у него обстоит дело с функционированием в качестве PPPoE Client. И вот, что мне выдал навигатор (почему-то версия 3.11 отсутствует):

Ну раз так, за дело. Еще немного подготовительных мероприятий в ESXi. К интерфейсу маршрутизатора, который будет смотреть в WAN я подключил физический адаптер хоста, на котором работает гипервизор и который в свою очередь подключен к ADSL модему. Вот так это выглядит в vSphere Client, ну а топология самая что ни на есть простая:


Теперь можно переходить к настройке CSR в качестве PPPoE клиента. Настраиваю внешний интерфейс и интерфейс Dialer, который будет инициировать подключение к провайдеру.
После настройки проверяю получил ли интерфейс Dialer IP-адрес от провайдера и его состояние. Состояние интерфейса UP/UP, но IP-адрес не присвоен. Вывожу более детальную информацию об интерфейсе Dialer и вижу что LCP закрыт. Делаю вывод, что что-то не так надо определить в чем проблема. Хотя и закрадывается сомнение, а может ли CSR вообще работать в роли PPPoE клиента.

Пробую включить отладку PPPoE из консоли виртуальной машины на которой работает CSR.
Вижу, что CSR посылает PADI провайдеру, но больше ничего не происходит. Решаю подключить машину на которой работает Windows XP к коммутатору vSwitch5, переведя коммутатор в режим Promiscuous для того чтобы видеть трафик на всех его интерфейсах и захватить трафик в между CSR и ISP при помощи Wireshark. Настраиваю в Wireshark фильтр, где MAC-источник — мой или MAC-назначения — мой и протокол PPPoED. Делаю захват и смотрю что получилось:

Здесь вижу немного больше. Вижу, что маршрутизатор отправляет бродкастом провайдеру PADI, концентраторы доступа провайдера отвечают мне множеством PADO, но маршрутизатор на них никак не реагирует. Почему?!
Думаю, продолжаю искать информацию и читаю документацию по CSR. Натыкаюсь на следующее:
«При первой загрузке CSR 1000V загружается в режиме, который ограничивает функциональность и производительность. Для того, чтобы получить полную функциональность соответствующего пакета технологий и производительность вам необходимо либо установить соответствующую лицензию, либо активировать пробный период.»
И это действительно так, и show version об этом говорит.
Ну что же, поскольку нам дают, совершенно бесплатно, 60 дней пробного периода, почему бы этим не воспользоваться. Активируем пробный период с пакетом технологий Premium — license bootlevel premium. Надо еще согласиться с условиями лицензионного соглашения, сохранить текущую (running) конфигурацию в начальную (startup) и перезагрузить маршрутизатор, чтобы изменения вступили в силу.
После этого вывод show version будет следующим:

и show platform hardware throughput level покажет максимальную пропускную способность для пробного периода.
Еще раз проверяю состояние интерфейсов . . ., и сейчас интерфейс Dialer1 уже имеет IP-адрес от провайдера. Прописываю маршрут по умолчанию и проверяю доступность «внешнего мира» - CSR 1000V настроен как PPPoE клиент и имеет доступ в Интернет, УРА!
Интернет для LAN и ZBF.
Что дальше? Ну если по порядку, то надо предоставить доступ в Интернет локальной сети, через CSR и настроить минимальную защиту. Настраиваю PAT и проверяю, что компьютер из LAN получил доступ в Интернет:

Теперь немного безопасности. Сначала определю зоны WAN и LAN, и интерфейсы Dialer1 и GigabitEthernet1, которые будут принадлежать соответствующей зоне. Схематично это будет выглядеть так:

Сейчас необходимо создать так называемые классмапы, в которых будет описан трафик, который будет отбираться для применения политик, которые будут описаны позже. Под итоговую классмапу, которая называется LANNET-PROT-CLASSMAP, будет попадать трафик протоколов или tcp, или udp, или icmp, отправленный с любого адреса в LAN.

Далее надо создать полисимапу в соответствии с которой будет инспектироваться трафик, определенный класмапой. Затем создать пару зон и указать, что полисимапа будет применяться к трафику, идущему из LAN в WAN. После всех этих действий трафик из LAN в WAN соответствующий указанным в классмапе условиям будет инспектироваться и обратный трафик будет разрешен. Трафик из WAN в LAN будет запрещен.

После этого я опять сделал захват пакетов, приходящих из Интернета и посмотрел, как на них реагирует маршрутизатор. Получилась такая картина: на приходящий на внешний интерфейс UDP трафик маршрутизатор отвечает «Destination unreachable» (ICMP тип 3, код 3), что говорит сканирующей системе, что порт закрыт; на входящие TCP-[SYN] отвечает TCP-[RST], что говорит о том, что попытка установить входящее соединение отклоняется.


Компьютер из LAN имеет доступ в Интернет.
И казалось бы все хорошо, но возникла еще одна небольшая проблема. Когда я открывал в браузере страницы, то некоторые открывались нормально, а некоторые грузились долго или вообще с ошибками. Мои подозрения сразу пали на размер передаваемых данных. Я проверил и это было действительно так. При согласовании TCP соединения в качестве размера MSS (Maximum Segment Size) передавалось значение 1460 bytes, при этом в IP-заголовке был выставлен бит «Don’t fragment». И если к этому значению добавить 20 байт TCP-заголовка и 20 байт IP-заголовка, то размер MTU получался 1500 байт, что было бы приемлемо для Ethernet, но не для PPPoE (1492). Поэтому маленькие пакеты передавались нормально, например, при установлении TCP-соединения, а большие при передаче данных терялись.
Для решения этой проблемы выполняю команду ip tcp adjust-mss 1452 на интерфейсе к которому подключена локальная сеть. После этого маршрутизатор будет заменять значение MSS в TCP-заголовке и обмен данными будет происходить без потерь.
На этом первое знакомство с продуктом CSR 1000V от Cisco буду считать свершившимся. Впечатления самые хорошие.

Popular posts from this blog

Attacking BGP routers for BitCoin hijacking

A few days ago researchers at Dell SecureWorks published the details of an attacker repeatedly hijacking BGP prefixes for numerous large providers such as Amazon, OVH, Digital Ocean, LeaseWeb, Alibaba and more. The goal of the operation was to intercept data between Bitcoin miners and Bitcoin mining pools. They estimated that $83,000 was made with this attack in just four months. Let's take a closer look at  the BGP details of this specific attack.

BGP Attack details Our friends at Dell SecureWorks decided not to name the network from which the hijacks originated. As a result we won’t name the exact Autonomous System either, instead we will suffice by saying that the originator of this hijack is a network operating in Eastern Canada.



Initial experiment
BGPmon detected the first BGP attack by this Canadian Autonomous System on October 8th 2013. For about 14 minutes a more specific /24 IP prefix for a Palestinian network was hijacked. Looking at geographical scope of the announcements a…

Проникновение в сеть оператора связи

Перво наперво стоит провести анализ идущего мимо сетевого трафика с помощью любого сетевого анализатора в "неразборчивом" режиме работы сетевой карты (promiscuous mode). В качестве сетевого анализатора для подобных целей замечательно подходит Wireshark или CommView. Чтобы выполнить этот этап, хватит и пары часов работы сетевого анализатора. По прошествии этого времени накопится достаточно данных для проведения анализа перехваченного трафика. И в первую очередь при его анализе следует обратить внимание на следующие протоколы: протоколы коммутации (STP, PVST+, CDP, DTP, VTP, и им подобные)протоколы маршрутизации (RIP, BGP, EIGRP, OSPF, IS-IS и другие)протоколы динамической конфигурации узла (DHCP, BOOTP)открытые протоколы (telnet, rlogin и подобные) Что касается открытых протоколов, – вероятность того, что они попадутся во время сбора пакетов проходящего мимо трафика в коммутируемой сети, достаточно мала. Однако, если такого трафика много, то в обследуемой сети явно наблюдаютс…