16
MoonShape – Hovedprosjekt vår 2005, HiST/AITeL Oppdragsgiver: DataKompaniet AS v/Tor Rune Skoglund Veileder: Helge Hafting Oppdragstakere: Knut Imar Hagen & Knut Magne Solem

MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

  • Upload
    lori

  • View
    38

  • Download
    1

Embed Size (px)

DESCRIPTION

MoonShape – Hovedprosjekt vår 2005, HiST/AITeL. Oppdragsgiver: DataKompaniet AS v/Tor Rune Skoglund. Veileder: Helge Hafting. Oppdragstakere: Knut Imar Hagen & Knut Magne Solem. Oppdragsgiver. Firmanavn: DataKompaniet AS Oppgavestiller og daglig leder: Tor Rune Skoglund - PowerPoint PPT Presentation

Citation preview

Page 1: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Oppdragsgiver: DataKompaniet AS

v/Tor Rune Skoglund

Veileder: Helge Hafting

Oppdragstakere: Knut Imar Hagen & Knut Magne Solem

Page 2: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Oppdragsgiver

• Firmanavn: DataKompaniet AS• Oppgavestiller og daglig leder: Tor Rune Skoglund• Grunnlagt som ANS i 1992, omorganisert som AS i 1995, samme året som innflyttingen til Teknostallen.• Slagord: ”Kunnskap og kvalitet siden 1992”• Totalleverandør av dataprodukter og datatjenester til små og mellomstore bedrifter, samt større privatkunder.• Tilbyr feilsøk, test og reparasjoner av nettverksoppsett og enkeltstående PC-er med tilbehør.• Registrert forhandler for en rekke utenlandske firmaer.• Sunn og god økonomi med en jevn omsetningsvekst hvert år.

Page 3: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Problemstilling

• DataKompaniet administrerer en serverpark og en trådløs wifi-sone.• Kunder har servere i denne serverparken, og kunder kan kjøpe trådløs internettaksess på Teknostallen.• Her flyter datatrafikken ukontrollert med tanke på hastighet og datavolum.• Problemstillingen er å måle og begrense datatrafikken, både hastighet og datavolum, og lage et administrasjonssystem.• Systemet skal basere begrensningen på IP-adresser.• Brukergrensesnittet skal være en Linux-frontend som bruker forretningslogikk med støtte for iptables og modulen TC.

Page 4: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Hvorfor denne oppgaven?

• Vi som er oppdragstakere liker utfordringer• Denne oppgaven så mest spennende ut av de oppgavene skolen hadde fått tilsendt fra alle oppdragsgivere• Vi måtte velge en oppgave som passet for to personer• Dette er en oppgave som appellerer til vår studieretning på grunn av at den omhandler nettverk og linux• Det var en motivasjonsfaktor å lære noe nytt; iptables med modulen TC og hvordan lage en linux-frontend• Spennende å lære seg å programmere for en unix-plattform

Page 5: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Løsning av problemet

• Vi startet med å lese veldig mye informasjon om TC• Deretter delte vi opp utviklingen av systemet i flere deler, så hver av oss fikk ansvaret for delområder• Begge var enige om å følge en Open Source-tankegang• Vi fikk låne to datamaskiner med to nettverkskort hver• I systemutviklingsfasen programmerte vi direkte på den ene maskinen og brukte den andre som filtjener i testingen• Underveis hadde vi kontinuerlig kommunikasjon og samarbeidet dermed så godt at det ikke oppstod problemer med selve samhandlingen i utviklingen• Problemene eksisterte derimot med TC og PHP, men vi fant på mange løsninger for alle problemene• TC er dårlig dokumentert, og det førte til at vi måtte finne ut av enkelte ting selv, men systemet fungerer nå tilfredsstillende

Page 6: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Linux-ruter med moonshape installert.

Serverpark/wifi-sone:

INTERNETT

Moonshape installeres på ruteren, og vil bare berøre IP-adresser som er lagt inn i systemet. De andre vil flyte igjennom som normalt. Systemet administreres på ruteren via ssh.

Skisse av systemet

Page 7: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Brukerprogrammer

IP-Stack

Ingresskø

Forwarding

Egresskø

Linux kernel,eth0

Denne figuren viser hva som skjer i Linuxkjernen ved trafikk inn og ut av et nettverkskort.

Pakker innPakker ut

Hvis /proc/sys/net/ipv4/ip_forward = 1

Hva skjer ”under lokket” - før

Page 8: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Brukerprogrammer

IP-Stack

Ingresskø

Forwarding

Egresskøkø1kø2kø3

Linux kernel,eth0

filter1

filter2

filter3

Her gjør moonshape endringer vha tc-modulen.Moonshape berører kun eth0.

Pakker inn Pakker ut

Hva skjer ”under lokket” - etter

Hvis /proc/sys/net/ipv4/ip_forward = 1

Page 9: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Hva skjer ”under lokket” - nedlasting

Serverpark:

INTERNETT

Lokal IP(10.0.1.2)

Får ny avsender- adresse her.

Nedlasting av fil fra A (10.0.1.2) til B:Pakkene blir sendt i full hastighet til eth0, men ingress-køa slipper bare inn pakker med en gitt hastighet. Grunnet egenskapene til TCP, så vil avsenderhastigheten etter hvert matche mottakerhastigheten. Siden pakkene ikke er adressert til eth0, så sendes de videre (forwarding) til eth1. Der foregår POSTROUTING NAT, så der endres avsender-adressen til den offisielle IP-adressen ut mot Internett. B mottar til slutt pakkene med avsenderadresse til eth1.

B

Reduserer hastighet

A

moonshape

Page 10: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Hva skjer ”under lokket” - opplasting

Serverpark:

INTERNETT

A

Får ny mottaker- adresse her.

Opplasting av fil via FTP til A (10.0.1.2) fra B:Pakkene blir sendt i full hastighet fra B til den offisielle IP-adressen til eth1. Der foregår det PREROUTING port-forwarding, og pakkene får ny mottakeradresse. Pakkene blir så videresendt til eth0, og egresskøa vil redusere hastigheten ved å kaste overflødige pakker. Egenskapene til TCP gjør at B etter hvert vil sende i samme hastighet som A tillates mottatt. B

Reduserer hastighet

Lokal IP(10.0.1.2)

moonshape

Page 11: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Resultater

• Resultatet er systemet MoonShape• Oppgavekravet var kun å måle datatrafikken, mens vårt system også utfører den ønskede utvidelsen å begrense den• MoonShape er oppdelt i tre deler

– Hastighet- og datavolumbegrensning pr. tidsenhet– Utføring av handlingsskript dersom volumbegrensninger overskrides– Statistikk over brukt båndbredde og datavolum

• MoonShape har innslag med IP-adresse og nettverksmaske som identifikator, så man kan kontrollere et subnett, eller bare en enkelt IP-adresse• MoonShape består av en linux-frontend med flere tekstbaserte kommandoer og et web-basert administrasjonsgrensesnitt for statistikken

Page 12: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Resultater

• Systemet er satt sammen av mange små programmer som hver utfører sin bestemte oppgave• Brukermanualen er laget som ”linux man pages”• Alle kodekommentarer og programdokumentasjon er skrevet på engelsk for å følge Open Source-tankegangen• Kort og godt et system som vi utviklere er fornøyde med!

Page 13: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Resultater

Denne visuali-seringen viser hvordan shaperen oppfører seg på forskjellige hastigheter.

Page 14: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Resultater

Denne visualiseringen viser hvordan shaperen oppfører seg når man skifter båndbredde under nedlasting.

1 mbit

4 mbit

2 mbit

0,5 mbit

8 mbit

Page 15: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL

Videre arbeid

• Vi har implementert den funksjonaliteten som trengs for at systemet skal fungere tilfredsstillende• En utvidelse som er ønsket, men som krever en fullstendig omgjøring av systemet er å kunne skille pakketrafikken på forskjellige portnummer/protokoller. En løsning på dette er beskrevet i sluttrapporten til dette prosjektet.

Page 16: MoonShape – Hovedprosjekt vår 2005, HiST/AITeL