Hej
Nie wiedzialem gdzie to umiescic, wiec zamieszczam tutaj. Ostatnio moja wrodzona ciekawosc do swiata informatyki sklonila mnie abym napisal program z bazowa implementacja OSPF Hello/DBD/LSAupd/LSAck/LSReq + OSPF LSA1.
Udalo mi sie zestawic sesje OSPF z IOS-XE po WIFI. W sensie IOS-XE siedzi na ESXi podlaczonym do ASA a do ASA jest AP do ktorgeo ja sie lacze korzystajac z sieci LAN w domu.
Zauwazylem pewne niescislosci w wiedzy ktora posiadalem do tej pory a low-level praktyka ktora doswiadczylem.
Rzecz pierwsza:
W momencie gdy ustawie w pakiecie OSPF Hello, pole DR na sztywno na siebie oraz Priority na 0. Zostaje DRem w segmencie a IOS-XE widzi moj program jako DR z priority 0. Gdzie przeciez zgodnie z zalozeniami priority, router ktory ma ustawione prio na 0 nigdy nie powinien byc ani DR ani BDR.
Rzecz druga:
UStawiajac flage Master +More+Init automatycznie zostaje wybrany jako Master, przez IOS-XE. Nastepnie wysylam MS+M oraz sama flage M. W ten sposob dostaje LSUpd od IOS-XE, potwierdzam ACk i mam FULL sesje i poisonuje tablice OSPFa skraftowanymi LSA Type1, ocztwiscie wyliczajac odpowiednio sume kontrolna dla LSA zgodnie z algorytmem Fletchera.
Czy to nie sa bledy implementacyjne po stronie IOS-XE ?
Po prostu omijam pewne State machine kroki, ktore nie sa standardowa procedura dla wyboru DR i tak samo dla elekcji master/slave jesli chodzi o wybranie kto ma wysylac pierwszy DBD i z jakim numerem sekwencyjnym. To jest akceptowane przez IOS-XE jako prawidlowe nawiazanie sasiedztwa a raczej nie powinno.
hacking OSPF on IOS-XE Temat rozwiązany
Re: hacking OSPF on IOS-XE
Gwałcisz RFC 2328 w punkcie 9.4, więc trudno określic zachowanie drugiej strony. Inicjując link powinieneś sprawdzić jacy inni speakerzy są na linku, ustawić swoje pola BDR/DR na 0.0.0.0 i sprawdzić, co dzieje się w sieci. Z tego co piszesz, wchodzisz od razu z butami.horac pisze:Rzecz pierwsza:
W momencie gdy ustawie w pakiecie OSPF Hello, pole DR na sztywno na siebie oraz Priority na 0. Zostaje DRem w segmencie a IOS-XE widzi moj program jako DR z priority 0. Gdzie przeciez zgodnie z zalozeniami priority, router ktory ma ustawione prio na 0 nigdy nie powinien byc ani DR ani BDR.
Formalnie, w RFC jest opisane zachowanie które mówi, że jeśli zrobisz się DRem to zostaniesz DRem niezależnie od wartości priority - rzuć okiem do punktu 7.3: "In general, when a router's interface to a network first becomes functional, it checks to see whether there is currently a Designated Router for the network. If there is, it accepts that Designated Router, regardless of its Router Priority.". Słowo 'regardless' jest kluczowe.
Cisco IOS XE Software, Version 03.12.00.S - Standard Support Releasemstan pisze:Jakiej wersji IOS-XE uzywasz ?
Czy chcialbys sie moze podzielic swoim programem do celow dalszych testow ?
Cisco IOS Software, CSR1000V Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.4(2)S, RELEASE SOFTWARE (fc2)
Mysle ze wersja znaczenia nie ma, podzielic sie moge
Re: hacking OSPF on IOS-XE
Racja wchodze z butami bo taki jest cel, chce posprawdzac jak sie zachowa siec przy niestandardowych pakietach. A co z elekcja Master Slave, tutaj tez wchodze z butami, a powinien decydowac router ID. Sam algorytm fletchera tez nie powala poziomem skomplikowania zeby zrobic wlasne LSA i poisonowac routery. Oczywiscie chodzi o ogolne dzialanie OSPFa a nie wytykanie bledow na Cisco. Bo pewnie kazdy router innego vendora zachowa sie podobnie.lbromirs pisze:
W momencie gdy ustawie w pakiecie OSPF Hello, pole DR na sztywno na siebie oraz Priority na 0. Zostaje DRem w segmencie a IOS-XE widzi moj program jako DR z priority 0. Gdzie przeciez zgodnie z zalozeniami priority, router ktory ma ustawione prio na 0 nigdy nie powinien byc ani DR ani BDR.
Gwałcisz RFC 2328 w punkcie 9.4, więc trudno określic zachowanie drugiej strony. Inicjując link powinieneś sprawdzić jacy inni speakerzy są na linku, ustawić swoje pola BDR/DR na 0.0.0.0 i sprawdzić, co dzieje się w sieci. Z tego co piszesz, wchodzisz od razu z butami.
Formalnie, w RFC jest opisane zachowanie które mówi, że jeśli zrobisz się DRem to zostaniesz DRem niezależnie od wartości priority - rzuć okiem do punktu 7.3: "In general, when a router's interface to a network first becomes functional, it checks to see whether there is currently a Designated Router for the network. If there is, it accepts that Designated Router, regardless of its Router Priority.". Słowo 'regardless' jest kluczowe.