Masterpresentasjon Wireless Extension to OSPF: Implementation of the Overlapping Relays Proposal Kenneth Holter Veiledere: Andreas Hafslund, Frank Y. Li og Knut Øvsthus 14. juni 2006 1
Oversikt MANET, OSPF og OLSR Bakgrunn og motivasjon Cisco sitt Overlapping Relays draft Design og implementasjon Andre problemstillinger Konklusjon og videre arbeid 14. juni 2006 2
Mobile Ad Hoc Networks (MANETs) Ingen infrastruktur Dynamisk topologi Typisk lite ressurser Trådløst Scenario: Node A skal kommunisere med node D Mitt fokus: Ruting Hvordan avgjøre neste hopp? Oppgaven til en rutingprotokoll Problem: Hvordan begrense ressursbruken til rutingprotokollen? Rutingprotokollen avgjør til hvilken nabo node A skal sende pakken Node C flytter på seg www.netlab.tkk.fi/opetus/ s38121/s04/slides/s121-10-adhoc-e.pdf 14. juni 2006 3
Open Shortest Path First (OSPF) Link State ruting protokoll Designet for relativt statiske nettverk Hello protocol Link State Database Link State Advertisements (LSAs) Dijkstras algoritme Nettverkstyper/interfaces Broadcast, Point-to-MultiPoint, etc Pålitelig flooding Designated Router (DR) Areas Adjacency (neste slide) Optimeringer 14. juni 2006 4
Typisk OSPF operasjon LSA'er legges til retransmission list for ruter A. Sendes i LS Update pakker. Neighbor state: EXCHANGE Naboene blir adjacent Hello protokollen (DR for OSPF-nettet) To-veis kommunikasjon bekreftes hvert HelloInterval (RFC 2328: 10 sekunder) 14. juni 2006 5
Optimized Link State Routing (OLSR) Link State ruting protokoll Designet for MANETs Hello protocol Informasjon om nettverket Topology Control (TC) Dijkstras algortime Optimalisert, upålitelig flooding MultiPoint Relays (MPRs) MPR Selectors 14. juni 2006 6
Optimized Link State Routing (OLSR) MPR selector Vanlig flooding n 1 retransmisjoner Flooding ved bruk av MPRs Implementing and extending the Optimized Link State Routing Protocol av Andreas Tønnesen 14. juni 2006 7
Bakgrunn og motivasjon OLSR er veldig lovende MPR funksjonalitet Bruke OLSR funksjonalitet i OSPF-baserte MANETs? OLSR ~ OSPF Hvorfor OSPF? Interoperabilitet med trådbaserte nett Moden protokoll OSPF for IPv6 (kjent som OSPFv3) 14. juni 2006 8
OSPF for MANETs To konkurrerende forslag hos IETF Cisco sitt forslag: Overlapping Relays Redusere antall protokollpakker OLSRs MPR funksjonalitet Pålitelig flooding Incremental Hellos: Redusere størrelse på Hello pakker Noen bytes pr pakke * mange pakker Redusere størrelse på pakker Link Local Signaling (LLS) Bevare eksisterende pakkeformat 14. juni 2006 9
Link Local Signaling Ny informasjon signaliseres i Type/Length/Value (TLV) triplets eks: 14. juni 2006 10
OSPF-MANET interface OSPFs Point-to-MultiPoint interface Samling av Point-to-Point linker Mange adjacencies Overlapping Relays og Incremental Hellos anvendes på slike interfaces Vår implementasjon kalles WOSPF-OR («trådløst interface») Wireless OSPF with Overlapping Relays 14. juni 2006 11
Incremental Hellos Kun endringer signaliseres Adjacent naboer listes (vanligvis) ikke Tom naboliste impliserer ikke at naboen er ukjent Neighbor Drop TLV Current state indikeres i State Check Sequence (SCS) TLV'er Oppdateres ved endring i settet av naboer Andre TLV'er: Request From (RF) og Full State For (FS) 14. juni 2006 12
Eks: SCS TLV og RF TLV Ved mottak av uventet SCS nummer må man spørre om current state Sette R bit Inkludere naboens router ID i RF TLV'en Mulighet for å droppe denne TLV'en (impliserer multicast Hello request) 14. juni 2006 13
Overlapping Relays - Registrerer node C sin ack - Trenger ikke å videresende - Må sende ack til node B - Backup for node B (PushbackInterval) - Sender ikke videre hvis E bekrefter mottak - Må sende ack til node A Proceedings of OSPF WG, IETF-60 14. juni 2006 14
Intelligent Acknowledgments LSA'er og ack'er sendes multicast Eksempel på implicit ack: Tilsvarer IPv4 broadcast Implisitt bekreftelse (acknowledgement) Bekrefte mottak kun èn gang Registrere naboers ack Unicast LSAs må ack'es AckInterval 14. juni 2006 15
Design og implementasjon Rammeverk: Quagga routing software suite, versjon 0.98.5 Linux OSPFv3: 20000 linjer C-kode Ikke feilfri Mål: Gjenbruk av UniK OLSR kode Begrense modifikasjon av eksisterende kode 14. juni 2006 16
Link Local Signaling (LLS) Utgående pakker avskjæres En LLS data blokk blir piggybacked på OSPFv3 pakken Kun Hello pakker Quagga/Linux har ansvaret for å sende pakken 14. juni 2006 17
Tuning og persistent signaling Kan sende samme informasjon i x pakker etter hverandre Øke sannsynlighet for mottak Hello pakker ack'es ikke Tuning av protokollen Parametere: #define WOSPF_AOR_PERS 1 #define WOSPF_DROPPED_PERS 3 Terskelverdier: #define WOSPF_REQ_TLV_THRESHOLD 0.5 WOSPF-OR interface interface eth0 is_wireless interface eth0 enable incr_hellos PushbackInterval Beregnes på grunnlag av LSA retransmission interval 14. juni 2006 18
Innkapsling Begrense modifikasjon av eksisterende kode Innkapsling Incremental Hellos Global SCS nummer Egne filer for WOSPF-OR funksjonalitet Eks: WOSPF-OR neighbor table entry wospf_neighbor_ table.{h.c} struct wospf_neighbor { <peker til den aktuelle OSPF nabo data strukturen> <Siste kjente SCS nummer> <Annen WOSPF-OR nabo spesifikk informasjon> }; Oppdateres maks èn gang pr HelloInterval Innkommende SCS TLV'er sjekkes mot naboens SCS nummer Request From og Full State For TLV'er sendes ikke persistently 14. juni 2006 19
Overlapping Relays Hovedfokus i min oppgave Implementation of The Overlapping Relays Proposal Gjenbruk av UniK OLSRs MPR kode Simplified Multicast Forwarding (SMF): wospf_bool is_aor(uint32_t); 14. juni 2006 20
WOSPF-OR flooding OSPF interfaces flood'er som før WOSPF-OR interfaces: 14. juni 2006 21
WOSPF-OR flooding prosedyre Iterere listen av naboer på interfacet: Ikke legg LSA'en til en nabos retransmission list hvis den allerede har ack'et LSA'en Stopp flooding hvis alle naboer har mottatt LSA'en Cache acks Er hver nabo enten covered, avsender, originator eller har allerede ack'et LSA'en? Cache acks backup_wait_list: Naboer som ikke oppfyller kravene Noden er en ikke-aor for avsenderen: Pushback LSA'en Skedulèr for potensiell senere transmisjon Noden er en AOR for avsenderen: Videresend umiddelbart 14. juni 2006 22
Acknowledgment cache Eksempel: Node D registrerer at node C har ack'et LSA x 14. juni 2006 23
Pushing back LSAs struct wospf_pushbacked_lsa { struct ospf6_lsa *lsa; struct list *backup_wait_list; struct thread *backup_timer; struct ospf6_interface *oi; }; backup_wait_list består av naboer som ikke har mottatt LSA'en backup_timer settes til PushbackInterval Ved timeout: Er backup_wait_list tom? 14. juni 2006 24
Testbed 4 maskiner Debian/Ubuntu ip6tables Perl scripts gdb og Valgrind Tid: t'' Tid: t' Tid: t 14. juni 2006 25
WOSPF-OR/OSPF Testscenario WOSPF-OR ser ut som et Point-to-MultiPoint nett Area Border Router (ABR) mot OSPF nett ASBR mot andre nett 14. juni 2006 26
Mitt arbeid og bidrag Studert Cisco sitt OSPF for MANET forslag Implementert Overlapping Relays, Incremental Hellos, og Link Local Signaling Designprinsipp Begrense modifikasjon av Quagga Gjenbruke kode fra UniK OLSR Fått vedtatt paper på workshop (ADHOC '06) Utført tester på koden Fungerer som beskrevet Omskrevet og bearbeidet siden levering Nyeste versjon ca 4.500 linjer C-kode Patch: http://folk.uio.no/kenneho/index.php?page=studies&subpage=wospf 14. juni 2006 27
Andre problemstillinger I Skalering Autokonfigurasjon av IPv6- Hirearkisk ruting adresser OSPFv3 Areas Stateful (DHCPv6) Fisheye State Routing MANET? Smart Peering Stateless LS Database MANET? Temporary Link State Database Duplicate Address Detection (DAD) Signaturer MANET: Eks: Enhanced DAD 14. juni 2006 28
Andre problemstillinger II Kommunikasjon med andre nett IPv6: Ingen NAT eller Mobil IP agent Konfigurerer egen adresse vha gateway prefix Gunstig i nett med flere gateway'er (multi-homed) Bruke erfaring fra OSPFv3 Gateway (eks: IEEE 802.11/Ethernet) annonser nettverk i LSA'er 14. juni 2006 29
Videre arbeid Optimeringer Fikse bugs Smart Peering MinLSInterval Optimere koden WOSPF-OR på Linked List Quagga ressursbegrensede Checksum noder? Testing Ikke implementert Real-world over IEEE LS Ack timeout 802.11 DoNotAge bit 14. juni 2006 30
Konklusjon Aktuelt tema innen ad hoc forskningsmiljøer State-of-the-art innen IETF Kun to eksisterende implementasjoner Implementert et av de to mest populære forslagene Basert på Quagga og UniK OLSR Dokumentert at koden fungerer Grunnlag for videre studier av trådløst OSPF Videreutvikle og teste 14. juni 2006 31
Takk for oppmerksomheten! 14. juni 2006 32