Рачунарске мреже 2/Пројекат

Извор: SI Wiki
< Рачунарске мреже 2
Датум измене: 26. септембар 2023. у 12:56; аутор: KockaAdmiralac (разговор | доприноси) (Zamena etf.kocka.tech linkova sa GitHub linkovima)
Пређи на навигацију Пређи на претрагу

Пројекат из Рачунарских мрежа 2 је додатна активност која замењује други колоквијум и другу и трећу лабораторијску вежбу уколико се изабере. Тема пројекта је комуницирање са рутерима преко СНМП протокола кроз Јава код. Вреди укупно 40 бодова, и искуство колега које су га радили је да се завршава за од 2 до 8 сати рада. Пошто су се неколико година заредом појавиле исте поставке пројекта, испод је дата генерална поставка варијанти и савети о томе како их радити. Као и на свим предметима који укључују код, и овде се проверава сличност радова.

Опште

Пројекат се ради на Убунту виртуелној машини на симулатору ГНС3, као и лабораторијске вежбе. Користе се иРеасонинг-ов СНМП АПИ и МИБ Броwсер за израду пројекта (могуће је изабрати и неку другу СНМП библиотеку). Неки од корисних линкова су:

  • СНМП АПИ страница — можете преузети в2ц или в3 АПИ, свеједно је.
    • Поред ЈАР фајлова које убацујете у свој пројекат, овде се налазе и examples фолдер који демонстрира коришћење АПИ функција
  • СНМП АПИ Јавадоц — детаљна документација свих функција СНМП АПИ
  • МИБ Броwсер страница

Препоручује се да пре почетка израде пронађете податке који су вам потребни у МИБ стаблу кроз МИБ Броwсер, онда нађете одговарајући пример из examples директоријума библиотеке, на основу њега направите пројекат и на крају верификујете решење. Пробајте да ГУИ који је од вас у пројекту тражен направите што је боље могуће, како се професор не би љутио на лош ГУИ на одбрани.

У прегледу по варијантама испод наведене су неки примери решења од претходних година. Ови примери представљају предате пројекте и не препоручује се њихово копирање због провере сличности са пројектима од претходних година. Ако узимате те примере као инспирацију, битно је да разумете шта се у њима дешава, како бисте успешно урадили модификацију са тим знањем.

Модификације

На одбрани може као модификација да дође нека друга варијанта пројекта, али без делова које нису уско у вези са СНМП (дакле, без ГУИ). Препоручује се да урадите више од једне варијанте пројекта како бисте били спремни на ову ситуацију и сигурнији у своје знање СНМП АПИ (није познато да ли је забрањено предати више од једне варијанте, додуше).

Уколико не знате да урадите модификацију а основни пројекат ради, добијате 25 од 40 бодова. На одбрани је такође доступан examples директоријум.

Варијанта 1

Апликација треба да очитава и прати статусе свих интерфејса на свим рутерима у мрежи и да приказује за сваки интерфејс следеће податке: опис, тип, МТУ, брзину интерфејса, физичку адресу, административни и оперативни статус. Административни и оперативни статус треба да се приказује у форми двобојног (црвено/зелено) индикатора за стања доwн (црвено - ) и уп (зелено - ). Подаци се прикупљају периодично са периодом од 10с, тако да се последњи очитани статус приказује на екрану. Податке треба груписати по рутеру, на следећи начин:

  • Рутер 1
    • интерфејс 1
      • опис
      • тип
      • ...
    • интерфејс 2
      • опис
      • тип
      • ...
    • ...
  • Рутер 2
    • интерфејс...

Верификација решења

Верификација решења ће се вршити променама статуса интерфејса (схут/но схут), што треба да се види у апликацији као промена одговарајућег статуса.

Варијанта 2

Потребно је очитавати и пратити укупан број пакета и проток (број бита у јединици времена) који улазе и излазе кроз све интерфејсе свих рутера. Такође, потребно је пратити и број уникаст и не-уникаст пакета и њихове протоке. Податке прикупљати периодично са периодом од 10с. Прикупљене податке презентовати у облику графика који приказује промену очитаног параметра у времену. Са сваком очитаном новом вредношћу график се допуњава. Како су на рутерима променљиве које описују број бајтова који су прошли кроз рутер кумулативне, за проток је потребно приказати разлику вредности између два интервала као:

проток (бит/с)=8*(број_бајтова(т)-број_бајтова(т-10с))/10с

Верификација решења

Пустиће се саобраћај између рутера (нпр. велики број пинг пакета). У зависности од тога куда пакети пролазе, треба да се овај проток види на графику.

Варијанта 3

Потребно је приказати садржај табела рутирања за све рутере у мрежи. Табела рутирања треба да садржи адресе рута, њихове маске, неxт хоп адресе на које те руте указују, порекло руте (из ког протокола рутирања потичу). Податке прикупљати периодично са периодом од 10с и освежавати приказ у складу са евентуалним променама. Податке груписати табеларно.

Верификација решења

У мрежи ће се додавати или повлачити неке руте додавањем нових лоопбацк интерфејса на рутерима, а то треба да се види у апликацији, тако што ће она у сваком тренутку приказивати ажурну верзију табеле рутирања еквивалентну оној која је у табели рутирања.

Варијанта 4

Потребно је очитати и приказати скуп БГП суседа једног од рутера у мрежи и њихове особине као што су:

  • Идентификатор суседа
  • стање БГП сесије са суседом (име стања у машини стања)
  • верзија БГП која се користи
  • ИП адреса суседа
  • Аутономни систем у којем је сусед
  • Број примљених упдате порука
  • Број послатих упдате порука по суседу
  • Кеепаливе време
  • Елапсед тиме од како је добијен последњи упдате од свих суседа

Поруке треба да се ажурирају са периодом од 10с и у сваком тренутку апликација треба да прикаже ажурне вредности ових информација.

Верификација решења

У мрежи ће се додавати нове мреже које се оглашавају путем БГП-а што треба да буде видљиво у промењеном броју упдате порука и времену од последње поруке, такође, могу да се промене стања БГП сесија кроз укидање БГП-а на суседном рутеру што такође треба да се види приказано у апликацији.

Савети

  • У пројекту је потребно учитати BGP4-MIB користећи SnmpSession.loadMib. Фајл мора да вам се налази у корену пројекта, на истом нивоу као и src директоријум, уколико методи задате само име фајла а не целу путању.
  • МИБ табела од интереса је bgpPeerTable.
  • Пример варијанте.
  • Пример од интереса вам је snmpgettable.java.

Варијанта 5

Потребно је очитати садржај БГП табеле и приказати скуп свих БГП рута на једном од рутера, као и све њихове њихове атрибуте. Атрибути који треба да се прикажу за сваку руту су:

  • Оригин
  • АС-Патх листа
  • Неxт Хоп
  • МЕД
  • Лоцал ПреференцеАтомиц аггрегате
  • Аггрегатор АС
  • Аггрегатор Аддресс
  • Да ли је рута најбоља (најбољу руту приказати другом бојом)

Руте и њихове атрибуте приказати у табеларном облику. Информације о рутама треба да се очитавају са периодом од 10с, тако да апликација у сваком тренутку приказује последњу очитану вредност.

Верификација решења

У топологији ће се додавати нове мреже или повлачити постојеће које се оглашавају путем БГП-а што треба да буде видљиво тако што ће се појавити нове руте или ће се губити старе. Такође, мењаће се топологија мреже или неки атрибути рута како би се променили атрибути рута и неке друге мреже прогласиле за најбоље, а све ово треба да буде коректно приказано у апликацији.

Савети

  • У пројекту је потребно учитати BGP4-MIB користећи SnmpSession.loadMib. Фајл мора да вам се налази у корену пројекта, на истом нивоу као и src директоријум, уколико методи задате само име фајла а не целу путању.
  • МИБ табела од интереса је bgp4PathAttrTable.
  • Атрибут bgp4PathAttrASPathSegment може да има неки чудан формат у исписаној табели, због тога што је то бинарни податак.
    • Први бајт одређује тип:
      • 1 значи AS_SET, односно да следи неуређени скуп аутономних система
      • 2 значи AS_SEQUENCE, односно да следи уређени скуп аутономних система
    • Други бајт одређује број аутономних система који следе.
    • После дужине следе парови од по два бајта, где је први бајт виши а други нижи, који представљају број АС-а
  • Пример варијанте.
  • Пример од интереса вам је snmpgettable.java.

Варијанта 6

На рутерима Р1, Р2 и Р3 подесити СНМП трап-ове и то за ове променљиве из БГП МИБ-а:

  • .iso.org.dod.internet.mgmt.mib2.bgp.bgpNotification.bgpEstablishedNotification
  • .iso.org.dod.internet.mgmt.mib2.bgp.bgpNotification.bgpBackwardTransNotification

Направити апликацију која континуирано ослушкује ове трап-ове и одмах по добијању избацује на екран аларм да је дошло до једног од ова два догађаја, на ком рутеру је дошло до овог догађаја и тачно време догађаја. Начин конфигурисања трапова на рутерима је описан на овој страници.

Верификација решења

Испробаће се промене суседских односа и појава трапа на екрану.

Савети

  • На модификацијама вам може доћи исто као и свима осталима, иако нисте радили са SnmpSession већ са SnmpTrapdSession! Због овога пробајте да урадите још једну варијанту која није ваша како бисте видели како се ради са SnmpSession.
  • Немогуће је ухватити поменуте трап-ове јер рутери не шаљу уопште те трап-ове већ њихове застареле верзије, .iso.org.dod.internet.mgmt.mib2.bgp.bgpTraps.bgpEstablished и .iso.org.dod.internet.mgmt.mib2.bgp.bgpTraps.bgpBackwardTransition. Професор је рекао да ово није проблем.
  • СНМП трап-ове можете да омогућите користећи:
    • snmp-server enable traps bgp
    • snmp-server host 192.168.122.1 traps version 2c si2019 udp-port 1620 bgp
  • У МИБ Броwсер постоји Трап Листенер опција коју можете да користите да бисте проверили да ли вам рутери шаљу трап-ове.
  • Метода SnmpTrapdSession#waitForTrap блокира тренутну нит, тако да ћете морати да SnmpTrapdSession покренете у новој нити.
  • Пример варијанте.
  • Пример од интереса вам је snmptrapd.java.

Варијанта 7

На рутеру Р3 конфигурисати да све руте које долазе од Р1 добију Лоцал Преференце (ЛП) вредност 100, а да све руте које долазе од Р2 да добијају ЛП вредност 150. На Р3 конфигурисати да када за неку руту прими руту уз коју је додата цоммунитy вредност 3:50, да се за ту руту поставља вредност ЛП на 50, а да када прими руту са Цоммунитy вредношћу 3:200 да се за ту руту поставља ЛП на 200. На рутеру Р1 конфигурисати да се уз руту 192.168.10.0/24 када се оглашава ка Р3 придружује Цоммунитy вредност 3:200. Начин конфигурисање Цоммунитy вредности је дат овде.

Направити апликацију која прати рад СНМП протокола на свим рутерима. Користити СНМП део МИБ-2. Апликација треба да сваких 10с прикупља следеће статистичке параметре о раду СНМП на рутеру: Број долазних СНМП пакета, број одлазних СНМП пакета, број гет захтева, број сет захтева, број генерисаних трап-ова, број неисправних цоммунитy вредности у захтевима.

Верификација решења

Укључивање трап-ова, генерисање захтева са погрешним цоммунитy вредностима, континуирано праћење СНМП статистике.

Савети

  • Није потребно да конфигуришете све параметре поменуте изнад пре почетка израде пројекта, могу и приликом фазе тестирања.
  • МИБ ОИД-ови од интереса су под .1.3.6.1.2.1.11
  • Уколико SnmpPoller проследите атрибуте из МИБ стабла по имену може се десити да добијете погрешне атрибуте, па пробајте да му проследите атрибуте по ОИД уместо тога.
  • Пример варијанте.
  • Пример од интереса вам је snmppoll.java.

Варијанта 8

Направити апликацију која континуирано прати рад свих рутера и прати заузеће њихових процесора и меморије. У оквиру графичког интерфејса апликације поставити да је могуће да се на почетку рада апликације постави вредност за период са којим ће апликација очитавати потребне променљиве (у секундама). Прикупљене податке презентовати у облику графика који приказује промену очитаног параметра у времену. Са сваком очитаном новом вредношћу график се допуњава. Потребно је пратити следеће параметре: заузеће процесора током претходних 5с, 1мин и 5 мин, количина заузете и слободне меморије у свим меморијским пооловима које поседује рутер и ознаке (имена тих поол-ова). За ово користити Цисцо-ве СНМП МИБове: ЦИСЦО-МЕМОРY-ПООЛ, ЦИСЦО-ПРОЦЕСС-МИБ.

Верификација решења

Укључивање нових функционалности на рутеру које треба да повећају оптерећење процесора (ресет БГП сесије, додавање нових рута и сл.).

Варијанта 9

Направити апликацију која континуирано прати све ТЦП сесије које су активне на рутеру и отворене УДП портове. Сесије и портове треба проверавати сваких 5 секунди и увек приказивати у форми табеле која ће се ажурирати само оне које су активне (оне које су између два упита нестале треба избрисати, а нове додавати). За сваку сесију је потребно приказати локалну и удаљену ИП адресу, локални и удаљени порт, а за отворене УДП портове адресе и бројеве портова. Користити УДП и ТЦП делове СНМП МИБ-2 стабла. На рутеру Р1 конфигурисати веб сервер. Из броwсера на виртуелној машини се повезивати на рутер и тако верификовати рад апликације (створиће се нова ТЦП сесија). Начин конфигурације веб сервер на рутеру је дат овде.

Верификација решења

Креирање нових сесија и верификација њиховог приказивања.

Савети

  • ХТТП сервер на рутеру палите помоћу команди:
    • enable password nesto
    • ip http authentication enable
    • ip http server
    • а затим можете да му приступите преко http://192.168.10.1, са корисничким именом и лозинком nesto.
  • МИБ табеле од интереса су tcpConnTable и udpTable.
  • Пример варијанте.
  • Пример од интереса вам је snmpgettable.java.