hacking OSPF on IOS-XE Temat rozwiązany

Wszystkie rozmowy związane z problemem z hardwarem, supportowanymi funkcjonalnościami, wydajnością urządzeń itp.
Wiadomość
Autor
horac

hacking OSPF on IOS-XE

#1

#1 Post autor: horac »

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.

Awatar użytkownika
mstan
wannabe
wannabe
Posty: 94
Rejestracja: 18 lip 2013, 18:21

#2

#2 Post autor: mstan »

Jakiej wersji IOS-XE uzywasz ?
Czy chcialbys sie moze podzielic swoim programem do celow dalszych testow ? :)

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

Re: hacking OSPF on IOS-XE

#3

#3 Post autor: lbromirs »

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.
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.

horac

#4

#4 Post autor: horac »

mstan pisze:Jakiej wersji IOS-XE uzywasz ?
Czy chcialbys sie moze podzielic swoim programem do celow dalszych testow ? :)
Cisco IOS XE Software, Version 03.12.00.S - Standard Support Release
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

horac

Re: hacking OSPF on IOS-XE

#5

#5 Post autor: horac »

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.
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.

ODPOWIEDZ