Стенд CISCO из реального оборудования, который можно использовать для отработки лабораторных работ ICND2 или более сложных.
Намучившись с всякого рода эмуляторами, было решено попробовать собрать стенд из настоящего оборудования.
У меня имеются в распоряжении несколько роутеров и свичей, конкретно для первой версии стенда были выбраны:
Два маршрутизатора CISCO 1841, один маршрутизатор CISCO 2691 и три коммутатора Cisco Catalyst 2960.
Топология похожа на ту, что преподают на курсах ICND2.
Все это оборудование подключено консолями в Cisco 2509 в котором имеются 8 Async портов, с его настройки и начнем.
version 12.1service timestamps debug datetime localtimeservice timestamps log datetime localtimeservice password-encryption!hostname ip_console!logging buffered 16000 debuggingenable secret 5 $1$RFgS$F0VtNMme1SJxJwDrkfBlt1!username admin privilege 15 password 7 021212E1B5940480713181Fusername terminal password 7 1403171123123128!clock timezone FET 3ip subnet-zerono ip fingerip host port9 2009 10.8.202.1ip host port8 2008 10.8.202.1ip host port7 2007 10.8.202.1ip host port6 2006 10.8.202.1ip host port5 2005 10.8.202.1ip host port4 2004 10.8.202.1ip host port3 2003 10.8.202.1ip host port2 2002 10.8.202.1ip host port1 2001 10.8.202.1ip name-server 10.8.1.2!interface Loopback0 ip address 10.8.202.1 255.255.255.255!interface Ethernet0 ip address 10.8.21.100 255.255.255.0 no cdp enable!interface Serial0 no ip address shutdown no cdp enable!interface Async1 no ip address shutdown!interface Async2 no ip address shutdown!interface Async3 no ip address shutdown!interface Async4 no ip address shutdown!interface Async5 no ip address shutdown!interface Async6 no ip address shutdown!interface Async7 no ip address shutdown!interface Async8 no ip address shutdown!ip classlessip route 0.0.0.0 0.0.0.0 10.8.21.1no ip http server!logging trap debugginglogging facility local0no cdp run!menu cserver title ^CCTo get back to the menu press "CTRL+SHIFT+6"then "X". You must then clear the connection andbegin a new console session to re-connect tothat device.--------------------------------------------------------1 - Connect to console1 | c1 - clear console 12 - Connect to console2 | c2 - clear console 23 - Connect to console3 | c3 - clear console 34 - Connect to console4 | c4 - clear console 45 - Connect to console5 | c5 - clear console 56 - Connect to console6 | c6 - clear console 67 - Connect to console7 | c7 - clear console 78 - Connect to console8 | c8 - clear console 89 - Connect to console9 | c9 - clear console 9| c0 - clear console 0--------------------------------------------------------show - show lines in use | prompt - exit menuExit - logout |--------------------------------------------------------^Cmenu cserver prompt ^CCPlease enter command or selection:^Cmenu cserver command 1 telnet port1menu cserver command 2 telnet port2menu cserver command 3 telnet port3menu cserver command 4 telnet port4menu cserver command 5 telnet port5menu cserver command 6 telnet port6menu cserver command 7 telnet port7menu cserver command 8 telnet port8menu cserver command 9 telnet port9menu cserver command menuexit menu-exitmenu cserver command exit exitmenu cserver command show show linemenu cserver options show pausemenu cserver command c1 clear line 1menu cserver command c2 clear line 2menu cserver command c3 clear line 3menu cserver command c4 clear line 4menu cserver command c5 clear line 5menu cserver command c6 clear line 6menu cserver command c7 clear line 7menu cserver command c8 clear line 8menu cserver command c9 clear line 9menu cserver command c0 clear line 0menu cserver command prompty menu-exitmenu cserver clear-screenmenu cserver single-space!line con 0 session-timeout 30 login local transport input noneline 1 8 no exec exec-timeout 0 0 transport preferred none transport input all transport output telnet telnet break-on-ip telnet sync-on-break telnet ip-on-break flowcontrol hardwareline aux 0 no exec exec-timeout 0 0 transport preferred none transport input all transport output telnet telnet break-on-ip telnet sync-on-break telnet ip-on-break flowcontrol hardwareline vty 0 4 session-timeout 15 login local autocommandmenu cserver!ntp clock-period 17180213ntp source Ethernet0ntp masterntp server 10.8.200.1 preferendЭто классическая конфигурация для сервера терминалов, нужно создать непривилегированного пользователя terminal, которым можно будет заходить на наш сервер, линии vty 0 4 настроены так, что бы вызывалось меню cserver. В котором выполняются вызовы телнет, на наши линии. Подключаться нужно на ip адрес указанный на интерфейсе E0. Так же нужно создать Loopback0 и назначит ему какой-то адрес. Последним шагом надо прописать наши привязки вида: ip host port1 2001 10.8.202.1, теперь если мы подключимся телнетом на порт 2001, то соединимся с консолью через Async1, Порт 2002 это Async2 и т.д. Если зайдем на 23-й порт и залогинимся, то попадем в меню, где так же можем подключиться на наши линии.
Подключаться телнетом на разные порты или выходить через меню 2509 хорошо, но хотелось бы более приятного интерфейса, хотя бы немного похожего как на авторизованных курсах CISCO. Поэтому нам понадобится java клиент, который сможет подключаться телнетом из браузера, качаем такую штуку отсюда:
http://www.cryptzone.com/products/mindterm
Нам нужна free версия.
Скачав mindterm_4.1.1-bin.zip распаковываем и получаем mindterm.jar
Теперь нам нужен JDK, надеюсь вы знаете, что это и где брать.
Создаем хранилище сертификата:
keytool -genkey -keystore .keystore -alias "Cert" -validity 99999где Cert - название alias нашего сертификата;
99999 - срок в месяцах валидности сертификата;
.keystore - имя файла создаваемого хранилища.
В случае успешного запуска команды, система спросит нас пароль нашего хранилища, а также некоторую информацию о сертификате (ФИО, название компании, город, страну...)
В результате будем иметь файл .keystore. Это и есть наше хранилище, которым мы будем подписывать разные апплеты.
Подписываем jar следующей командой:
jarsigner -keystore .keystore mindterm.jar "Cert"Пароль вводим тот, который вводили при создании сертификата.
Теперь кладем этот файл на HTTP-сервер. Так же создаем такие файлики и кладем туда же:
<HTML> <HEAD> <TITLE>Cisco</TITLE> </HEAD> <BODY> <APPLET CODE="com.mindbright.application.MindTermTelnet.class" ARCHIVE="mindterm.jar" WIDTH=600 HEIGHT=600> <PARAM NAME="sepframe" value="true"> <PARAM NAME="bg-color" value="black"> <PARAM NAME="fg-color" value="white"> <PARAM NAME="cursor-color" value="white"> <PARAM NAME="server" value="10.8.21.100:2001"> </APPLET> </BODY> </HTML>
Тут 10.8.21.100:2001 - это ip-адрес нашей 2509 и порт 2001 для Async1
Создадим index.html примерно такого содержания:
<HTML> <HEAD> <TITLE>Cisco</TITLE> </HEAD> <BODY> <a href="sw1.html" target=".blank">CoreSwitchA</a><br> <a href="sw2.html" target=".blank">SwitchH</a><br> <a href="sw3.html" target=".blank">SwitchA</a><br> <a href="r3.html" target=".blank">CoreRouter</a><br> <a href="r2.html" target=".blank">RouterH</a><br> <a href="r1.html" target=".blank">RouterA</a> </BODY> </HTML>
Тут ссылки на файлы, которые мы создали. В результате в каталоге сервера у меня есть следующие файлы
[sf@mserver learn]$ ls -1index.htmlmindterm.jarr1.htmlr2.htmlr3.htmlsw1.htmlsw2.htmlsw3.htmlindex.html можно создать и более толковый и красивый, вставить туда картинку с топологией или т.п.
Правда есть во всем этом одно неудобство, несмотря на то, что в ссылках приписано targer=".blank", все ссылки открываются в новом, но единственном окне (вкладке) в результате не получается открыть более двух консолей одновременно, поэтому приходится ссылки открывать правой кнопкой и говорить, открыть в новой вкладке, тогда все корректно работает.