kramselund jereminsen

Bornhack netværk - og projekter under pres

Bornhack netværk og projekter under pres

Så er det snart tid til Bornhack! 7 dages camp på det skønne Bornholm med foredrag og hygge med andre nørder 24-timer i døgnet. Fuck jeg glæder mig! NB: der er stadig billetter, så hvis du synes nedenstående er interessant så kom glad, køb en billet. Faktisk vil netværk og faciliteter forhåbentlig være fuldt på højde med et kontorhotel - og selskabet bliver awesome med gode talere og et bredt program https://bornhack.dk/schedule/ :-)

Nå, men jeg er med i organisergruppen, sammen med en masse andre gode - vi ca. 10 ialt og der er MANGE opgaver med sådan en camp. Så med mig som primær på netværk er det lidt presssss, for netværket skal virke fra dag 1, og gerne stabilt hele ugen igennem. Så hvordan klarer man den?

Nedenfor er mine input til at klare en presset hverdag med fuldtidsarbejde servere/netværk/applikationer, nyt netværk som skulle sættes op fra grunden med helt nyt hardware som kom 2. august (AS50033 vi er live :-) ) og så liiiige et Bornhack Camp netværk med routing, bridging/switching, VLAN, WLAN, 802.1x, port filtering, DHCP snooping, the works.

... og så skal vi lige have et par dashboards til det hele!

Forberedelse af transit internet

Stor tak til Global Connect og Bornfiber som hjælper med at levere noget god internet til stedet. Der er 1Gbit fiber ind i huset som er gravet ind for lang tid siden. Den er forhåbentlig testet og virker som den skal. Så det fysiske lag burde være på plads. Dernæst er Peter Krüpl hos Bornfiber manden der forstår netværk ned i mindste detalje. Hvis jeg må prale er jeg netop certificeret JNCIS-SP, men Peter kan route pakker omkring mig med en ynde som få andre!

Hvilke pakker skal han så route ned til campen? Det er meget nemt, for jeg lavede i slut Maj, 2016 request til RIPE NCC for temporære IP-adresse assignments, dvs IPv4, IPv6 og et AS nummer. Fint skal det være, og det blev godkendt, med aftale om i starten af August at få adresserne.

Ganske rigtigt fik vi også 4. august følgende informationer:

  • AS58366 as-name: BORNHACK
  • Temp assignment 2001:7fc:2::/48 to BornHack IVS
  • Temp assignment 151.216.40.0/21 to BornHack IVS

og det har Peter så allerede nu annonceret, så det er "live" ude på internet. Du kan selv se på https://stat.ripe.net/151.216.40.0%2F21#tabId=at-a-glance
hvor den siger: "At 2016-08-11 08:00:00 UTC, 151.216.40.0/21 was 100% visible (by 157 of 157 RIS full peers)."

og tilsvarende på IPv6 "At 2016-08-11 08:00:00 UTC, 2001:7fc:2::/48 was 100% visible (by 151 of 151 RIS full peers)."

Det skulle gerne sikre at når vi sætter router op derovre så er det aktivt med det samme. NB: den slags temporære assigments skal retur, og vores skal retur 2016-09-15.

Så rettidig omhu, i form af TIIIDLIG forberedelse og erfaring fra Peter og mig sikrer altså mindre panik på denne del. Personligt betragtede jeg Bornhack som en ny kunde der skulle have IP assigments, og dermed blev det en standard opgave.

Forberedelse af core netværk

Core netværket på Bornhack bliver sjovt, for grunden er vist ca. 56.000m2 - waaauw. Det er aligevel lidt mere end min baghave. Så det bliver hurtigt en netværkstegning med mange PoPs, og det kræver nogle gode switche med VLAN support. Er VLAN nødvendigt? Ja, for fanden! Sikkerhedsmanden i mig ser straks at det er nødvendigt at adskille management af enheder fra pøblen :-D

Så for noget tid siden - start juni lavede jeg tegningen over core netværk. Nogenlunde standard med redundant routing, opdelt i nogle ringe - se det på http://files.kramse.org/pub/bornhack-core-layout.pdf med mine flotte grafiske evner.

Heldigvis har vi lånt en bunke Brocade switche, lidt blandede modeller - men ca. samme config på dem. Det er luksus, for så kan vi lave een standard config som pushes ud på alle sammen! Faktisk har jeg forberedt denne basis config på thecamp.dk hvor jeg brugte tid på at konfigurere to Juniper EX3300 core switche og havde to Brocade switche - og et access-point (UniFi UAP-AC-PRO men se senere).

Standard config er baseret på:

  • uplink porte - altså VLAN trunk porte som er de SAMME porte på alle switche
  • nogle porte prækonfigureret til WLAN APs - de SAMME porte på alle switche
  • resten af portene er så klar til deltagerne, med så meget sikkerhed som jeg kan slippe afsted med, ingen STP fra utroværdige kilder, tak
  • og selvfølgelig standard SNMP, NTP, syslog, login indstillinger med SSH

Det betyder at en switch er bare "en switch" - vi kan undervejs skifte næsten en vilkårlig switch ud med en anden, og kablingen er også den samme.

Keep it SIMPLE Stupid, samme config loadet på nogenlunde ens fabrikat gør verden bedre, og det er luksus vi fik det lån! Tak til sponsoren.

NB: selvfølgelig kommer jeg til at køre RANCID så konfigurationen af enhederne bliver opsamlet, og jeg kommer helt sikkert til at kable testopstilling hjemme med 10 switche inden vi pakker ned og bringer dem over.

( eller måske undervejs med RANCID erstatningen https://github.com/ytti/oxidized )

Distributionsnetværk

Da vi ikke bliver sååå mange endda her første gang, så kommer Brocade switchene nok til at blive distributionsswitche samtidig, og de nærmeste beboere/telte/Villages får mulighed for at få et Ethernet kabel direkte i en port på disse. Heldigvis har vi nogle af switchene med 48 porte, og vi har et par ekstra - så det skal nok gå.

Igen, keep it simple, flad enkel struktur og KISS igen! Der skal være de features som skal bruges, men alt andet slåes fra!

Wireless netværk

Ja, en camp uden wireless i 2016 vil nok ikke falde i god jord, men graaaaahhh wireless netværk med overlappende kanaler fra naboer, støj fra andre enheder osv. Gisp, det lyder ikke godt.

... men så er det jo relativt heldigt at vi er på græsmark på Bornholm, så de få naboer der er indenfor rækkevidde er få. Faktisk forventer jeg at vi har så god plads på diverse bånd at deltagerne i villages selv kan få lov til at køre access points/wireless. Tak til de andre organisers for at finde et fedt sted.

Nå, men wireless dækningen bliver ikke 100% på hele grunden, husk 56.000m2! Det bliver således begrænset til at tilføje AP'er "efter behov".

Så der kommer dækning følgende steder, er målet:

  • Taler telt - vi har gode talere og selvfølgelig skal der være dækning under talks
  • Mad steder, når man sidder og snakker over maden skal der være lidt wifi, så man kan slå op på wikipedia osv.
  • Sovepladser, dvs i nærheden af telte og Villages
  • Baren - selvfølgelig er der en bar, og en bar er ikke en bar uden noget wifi med public IP til alle, vel

Antal AP'er pr sted bliver estimeret efter max antal deltagere forventet på det sted, gange 2 eller noget i den stil. Så talerteltet med de store keynotes forventer vi alle fra lejren måske kommer, så der bliver tæppebombet med flere AP'er

Mht. sikkerheden er planen at vi laver flere SSIDs:

  • Normalt åbent wifi, brug firewall osv. det bliver altså med dynamisk DHCP public IP og IPv6 Router Advertisement SLAAC
  • Et mere lukket wifi, smidt bagved en minimal firewall der laver NAT
  • WPA Enterprise med fuld 802.1x - hvor alle brugernavne/password kombinationer virker

WPA Enterprise er interessant, fordi man derved kan give lidt mere privatliv til folks browsing og internettraffik. Emnet er nok til et andet blogindlæg, så tror jeg vil gemme det til en anden dag. Basalt set bliver det individuel kryptering, hvor WPA PSK er een nøgle til hele netværkets trafik.

Det trådløse netværk bliver det mest simple vi kan slippe afsted med, så hvert SSID kommer ned på hvert sit subnet - med VLAN tagging - vupti. Jeg har også her valgt at bruge samme leverandør til alle APs - dem som vi sætter op. Så det er Unifi med deres meget letforståelige controller software (som kører på Win/Linux/Mac - sågar på en Raspberry Pi hvis man lyster.) De APs vi kommer til at bruge er den helt billige UniFi AP som jeg har en flok af, og den mere avancerede UAP-AC-PRO.

Her har jeg brugt samme mærke som jeg har brugt gennem flere år, dvs noget jeg kender. Så selvom vi kunne låne andre modeller og fabrikater, så er det nok ikke tidspunktet til at eksperimetere.

Konklusion

Så hvordan spiser man en elefant? I små bidder. Dvs med teknologier man kender i forvejen mixet med erfaring om at gøre tingene simple, men dog stadig med de nødvendige funktioner.

Så når du skal lave en stor kompleks installation, som Bornhack netværk reelt er, så start med at planlægge og lav små labs med funktionerne hver især. Når det så virker så sørg for at det er så strømlinet som muligt, med så enkel konfiguration som muligt - der understøtter de dele du skal bruge, og alt andet slået fra. Når det så er på plads kan du med fordel lægge det til rette så andre kan hjælpe. Jeg har eksempelvis shanghaiet bonussøn på 16 til at være it-supporter - så han skal kunne skifte en switch eller et AP - med miniml vejledning.

Så dags dato er der enkelte ting som skal mixes ind, men størstedelen er på plads og med forventning om at det vil virke :-)

PS Dashboard

Jeg har ikke besluttet hvad der skal bruges til dashboard og management, for der er mange muligheder, men følgende teknologier kommer i spil

  • LibreNMS det er simpelt at sætte op, og det virker bare så lækkert, prøv det
  • RANCID, old skool to the max, henter configs fra netværksenheder og gemmer i Subversion, fedt mand - så har vi det til næste år
  • Ansible - specielt til mine Junos enheder bliver det lækkert at kunne lave ændringer og pushe ud, bruger det i dagligdagen til at styre mange enheder <3
  • Grafana - tænker lidt på at prøve det istedet for Kibana 4
  • Netflow - kommer jeg ikke til at gemme denne gang, men skal prøve noget mere fancy end NFSen
  • Dashing er så nice at det nok kommer i spil http://dashing.io/ nemt og simpelt til alt muligt, prøv det
  • Dashboard med samlet overblik til deltagerne, inspireret af https://github.com/xmorpheus/c3netmon-public og det som EMF camp bruger

Bemærk disse kræver ikke licenser, og er lige til at klistre videre på! Open Source rocks!

Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Baldur Norddahl

Ikke at der er noget galt med din metode, det er KISS og virker. Men hvad nu hvis man ville bygge det som en service provider? Eller i hvertfald som Gigabits netværk er bygget.

I stedet for spanning tree og vlan, så bruges der MPLS, OSPF (andre sværger til ISIS), L2VPN (VPLS) og L3VPN (vrf).

Switchene er ZTE 5928E-FI: http://www.edgetech.lv/edge-technologies-main/switching/zte-zxr-10-5928e... men til Bornhack er det måske mere passende med kobber udgaven: http://www.edgetech.lv/edge-technologies-main/switching/zte-zxr-10-5928e... - de koster omkring 8-10.000 kr inklusiv 4x 10 Gbit/s.

Jeg har lavet et script der opbygger konfigurationen fra bunden ud fra nogle få parametre. Vi bruger også RANCID men det er strengt taget ikke nødvendigt, da jeg kan sætte dem op fra blank på få minutter med en opsætning genereret med mit script.

Vi bruger dem ikke som switche men som små MPLS routere. Der er derfor intet layer 2 broadcast domæne i traditionel forstand. Derfor bruger vi ikke STP og det er jeg glad for. I stedet så er der et virtuelt layer 2 netværk der kører via VPLS. For dem der ikke kender det, så benytter VPLS et "split horizon" koncept til at forhindre loops. Hvor STP virker ved at man blokerer en port for at afbryde loops, så kan VPLS køre med alle links aktive, så man får lidt bedre båndbredde, bedre routing og hurtigere konvergenstid (ned til 50 ms hvis man tuner det med FRR).

Der er meget at lære for at sætte det op, til gengæld er opsætningen faktisk ikke videre kompliceret når man kan det.

I vores netværk er det også en stor fordel at man ikke skal forsøge manage et vlan name space på kun 4095 mulige id'er.

  • 0
  • 0
#2 Henrik Kramselund Jereminsen Blogger

Helt enig, og interesserede kan med fordel se på MPLS in the SDN Era http://shop.oreilly.com/product/0636920033905.do som er en virkeligt god bog omkring det.

Det andet netværk som vi netop har sat op, AS50033 er baseret på MPLS VPN som en provider styrer for os, ud til kunderne. Så til større netværk, geografisk set, er jeg helt enig.

  • 0
  • 0
Log ind eller Opret konto for at kommentere