LauPro schreef op dinsdag 14 juni 2011 @ 21:47:
[...]
Dat van die 256 is wat mij geleerd is destijds bij CCNA

en het is zeker mogelijk om meer hosts in een broadcast domain te stoppen maar de vraag is of het wenselijk is, gezien het vele traffic dat het gaat genereren: dhcp, samba etc. Een multicast blijft een multicast.
Ja, maar Cisco heeft verzuimd je te leren waaróm ze meer dan ~256 niet aanraden. Dat is namelijk omdat een host die een broadcast packet ontvangt, die móet processen. Het kan tenslotte een ARP zijn, en als dat zo is kan het een ARP zijn die om jouw IP-adres vraagt. En zelfs al is dat niet zo moet je checken of er iets draait wat naar die broadcasts tracht te luisteren (om maar een vooorbeeld te noemen, een dhcpd.) Vroeger waren de pc's en routers (belangrijke, kom ik zo op) nog niet zo krachtig, dus slokte dat een relatief grote hoeveelheid CPU tijd op, en had het dus een merkbare invloed op je computer. Sommige routers (Cisco's met name, vanwege de opzet van het OS) hadden dat probleem ook. Dat ging zover dat die routers feitelijk gewoon omvielen omdat de control plane zo druk bezig was met broadcasts processen, dat andere processen zoals BGP geen of niet genoeg tijd kregen. Dag routing tabel, dag connectivity. Bij AMS-IX (een /23 op hun ISP vlan) draait men nog altijd een perl script om dit probleem zoveel mogelijk te voorkomen omdat de platforms die dat probleem hebben daar nog altijd voorkomen.
Fast forward naar vandaag: dit probleem bestaat bijna niet meer op moderne hardware. Ik heb dit ook daadwerkelijk getest, overigens; alleen bepaalde Cisco's hebben er nog altijd moeite mee. De rest is ofwel snel genoeg om een belachelijke hoeveelheid broadcast te checken (ik heb er een volledige gigabit/sec tegenaan gegooid, puur aan ARP verkeer) ofwel doet ARP in hardware (intel kaarten bijvoorbeeld doen dit.)
IPv6 lost het probleem nog anders op: ND werkt met multicast, waarbij het multicastadres afhankelijk is van het IP-adres dat je probeert te verbinden met een MAC-adres. Ethernetkaarten kunnen filteren op bepaalde MAC-adressen en de rest gewoon blokkeren, zodat ook dat geen probleem veroorzaakt als er veel tevoorschijn komt. (Ik meen dat sommige nieuwere kaarten overigens ook ND overnemen van je OS.)
Dat ze achter hetzelfde mac adres zitten maakt voor de implementatie niet uit, het zal gewoon een entry kosten.
Nee, dat maakt wel uit, afhankelijk van op welke laag je kijkt. Jij gooit dat nogal door elkaar op dit moment. Tenzij je zeer vreemde fratsen aan het uithalen bent (is af te raden) hebben alle aliased IP's op een enkele (V)NIC hetzelfde MAC-adres. Op laag 2 (ethernet) is er dus niets aan de hand, al bindde je een volledige /48 op je nic.
En ja het is zeker denkbaar dat je als hoster elke site een eigen IPv6 nummer geeft, dat maakt het eea alleen maar eenvoudig. Heb je duizenden domeinen onder je beheer, verspreid over een cluster van webservers, dan krijg je dus automatisch een probleem met deze limiet. Niet alleen de tables van de switches gaan vollopen, ook de tables van de OS'en. Ik ben nog op zoek wat nu precies de limiet van de ARP table in Linux is, maar laat dit 8k zijn dan is het dus maximaal 8000 hosts per server. Nu is eigenlijk alleen de communicatie tussen gateway en host belangrijk maar toch. Als je bijvoorbeeld kijkt naar virtualisatie en je hebt een bak met 32 cores en 320 GB ram, dan is het zeker denkbaar dat je 8000 hosts kan hebben (met shell servers oid).
Tsja, ik weet niet of het handig is om het op die manier te doen. Dat wil zeggen, op die schaal. Ik heb het niet geprobeerd en weet van niemand die 't doet.
Als je het doet, zou ik een andere truuk uithalen. Namelijk een subnet routeren naar de betreffende machine, en al je IP's daaruit betrekken. Bijvoorbeeld, in je router geef je aan '2001:1234:1::/115 via 2001:1234::1'. Je ND verkeer ben je nu kwijt, maar toch gaan er 8192 IP's richting die doos. Zit je nog wel aan een potentieel maximum aan wat linux je laat binden.
Dat 'eruit knikkeren' is nogal een performance issue want op dat moment is er dus geen lookup mogelijk op dat ip, gevolg is dat verdere communicatie niet kan plaatsvinden.
Nee hoor. Communicatie is prima mogelijk. Op het moment dat jij namelijk een IP probeert te bereiken (in jouw subnet) en je hebt daar geen MAC van in je cache, dan stuur je een ARP (of Neighbour Solicitation in v6) en prop je het antwoord in je cache. Was je cache vol? Dan neem je de oudste entry en die delete je. Communicatie stopt niet. Als je het vaak genoeg moet doen wordt 't vanzelf een performance probleem, dat is waar.
Je hebt gelijk dat men filtert op de kaart zelf, maar ook daar speelt dit probleem omdat deze kaart ook een cache moet hebben.
Neuh. Die kaart moet alleen weten welke IP-adressen 'ie voor moet antwoorden. Ik kan me voorstellen dat dat aantal gelimiteerd is op iets ver onder de 8k overigens. Bij IPv6 is 't een kwestie van selectie op welke multicast-adressen níet genegeerd moeten worden.
Tijdens WTH in 2005 heb ik een demo gezien waarbij men switches kon laten 'crashen' door met een laptop of 2-3 random mac addressen af te gaan. Vervolgens was er dus nog nauweiljks verkeer mogelijk op die switch omdat de ARP table vol was en er dus niets meer viel te switchen, De meeste switches hebben FIFO echter een ARP table overrun is altijd een probleem imo.
Je hebt dan de combinatie van een goedkope switch met een volle CAM-tabel gevonden. Het is de bedoeling dat een switch met een volle CAM tabel alle resterende frames broadcast ('flooden', in het juiste lingo). Natuurlijk houdt niet elke el-cheapo hardwareboer zich aan dat soort ideeën.
All my posts are provided as-is. They come with NO WARRANTY at all.