Heim­netz­werk

In die­sem Bei­trag do­ku­men­tiere ich noch ein­mal aus­führ­lich mein Heim­netz­werk (hier der erste Bei­trag zu die­sem Thema) und stelle ein paar Über­le­gun­gen dar­über an, ob die­ses so ge­eig­net ist, oder ob es noch bes­sere Va­ri­an­ten gibt. Der in­ter­es­sierte Com­pu­ter­heim­wer­ker sollte da­her wei­ter­le­sen. Ich würde mich sehr freuen, Kom­men­tare dazu zu lesen.


Grund­kom­po­nen­ten mei­nes Heim­netz­wer­kes sind:

  • Büro-LAN mit an Switch an­ge­schlos­se­nem PC, Ser­ver und Dru­cker. Zu­sätz­li­che Ge­räte an­schliess­bar nach Be­darf, etwa ein Surf-PC für Gäste oder ein Fir­men­lap­top. Der Ser­ver läuft un­ter Debian/Adamantix und bie­tet alle mög­li­chen und nütz­li­chen Linux-Dienste nach Be­darf, ins­be­son­dere DHCP, DNS, Fire­wall, NAT, Samba, SSH.Büro-LAN
  • WLAN mit­tels der bei­den Ba­sis­sta­tio­nen AVM Fritz! Box und D-Link-WLAN-Bridge. Sie bil­den eine Brü­cke zum An­schluss des ka­bel­ge­bun­de­nen MP3-Spielers im Schlaf­zim­mer. Das WLAN wird selbst­ver­ständ­lich WPA2-verschlüsselt be­trie­ben. Zu­sätz­li­che Ge­räte wie etwa der Fir­men­lap­top kön­nen sich je­der­zeit von je­dem Ort der Woh­nung her einklinken.WLAN
  • Die Fritz! Box be­treibt zu­sätz­lich ei­nen VoIP Kno­ten mit zwei an­ge­schlos­se­nen Te­le­fon­ap­pa­ra­ten. Dies er­for­dert freien Zu­gang zum In­ter­net mit­tels SIP, so­wie idea­ler­weise be­vor­zug­tes Rou­ting der VoIP-Daten. Die Fritz! Box sel­ber be­herrscht ent­spre­chen­des Traf­fic Shaping.VoIP
  • An­schluss ans In­ter­net mit­tels Cablecom-Modem, also durchs TV-Kabelnetz.

Fol­gende Be­dürf­nisse möchte ich gerne durch ge­lun­gene Ver­bin­dung die­ser Teile erfüllen:

  1. Der MP3-Player be­nö­tigt Zu­griff auf die auf dem Ser­ver ge­spei­cherte Mu­sik, so­wie auf Ra­dio­sta­tio­nen im In­ter­net. Das er­for­dert freien Zu­gang aufs In­ter­net in­klu­sive funk­tio­nie­ren­dem DNS, so­wie Kom­mu­ni­ka­tion mit dem Ser­ver mit­tels SMB bzw. Samba.
  2. Alle Teile sol­len vom Büro-LAN (PC) aus wart­bar sein. Die Kon­fi­gu­ra­ti­ons­sei­ten der Fritz-Box, bei­spiels­weise, sind nur aus dem (aus der Sicht der Fritz-Box) in­ter­nen LAN (LAN B) oder dem WLAN her erreichbar.
  3. Der Ser­ver soll mit­tels SSH und/oder FTP aus dem In­ter­net er­reich­bar sein für mich sel­ber, aber auch für meine Freunde.
  4. Traf­fic Shaping über alle re­le­van­ten Kno­ten soll ge­währ­leis­ten, dass
    • VoIP-Telefonie un­ge­stört arbeitet
    • Ver­kehr, der von aus­sen an­ge­stos­sen wird (von mei­nen Freun­den, etwa SFTP) den ei­ge­nen Ver­kehr, den ich sel­ber aus­löse von in­nen (HTTP, FTP, sons­tige Down­loads), nicht ausbremst.
  5. Die Si­cher­heit der rest­li­chen In­fra­struk­tur soll so hoch wie mög­lich sein.
    • Es wäre vor­teil­haft, wenn das WLAN in ei­ner be­son­de­ren Si­cher­heits­zone wäre (weil der WLAN-Sicherheit ge­ne­rell nur be­dingt zu trauen ist).
    • Eine DMZ wäre eben­falls von Vor­teil. Diese kann mög­li­cher­weise mit der WLAN-Zone zusammenfallen.

Es stellt sich nun die Frage, wie ge­nau diese Teile mit­ein­an­der ver­schal­tet wer­den sol­len. Die ein­fachste Lö­sung ist im fol­gen­den Bild dar­ge­stellt. Und das ist auch die, die ich als ers­tes in Be­trieb ge­nom­men habe:

Version 1

Die Fritz-Box dient als Haupt-Firewall, VoIP und WLAN-Gateway, so­wie Rou­ter ins Büro-LAN. Der Ser­ver dient nur als Ser­ver im in­ter­nen LAN. Seine Firewall-Funktionalität wird nicht be­nutzt, da seine zweite Ethernet-Schnittstelle un­ge­nutzt bleibt. Grund­sätz­lich wird an der Fritz-Box jeg­li­che Kon­takt­auf­nahme von aus­sen ge­sperrt, aus­ser SSH und FTP, die mit­tels Port For­war­ding an den Ser­ver wei­ter­ge­lei­tet wer­den. Dies ist auch gleich­zei­tig die ein­zige Schwach­stelle an dem Gan­zen: Falls ein Pass­wort kom­pro­mit­tiert wird und je­mand auf den Ser­ver kommt, hat er von da aus Zu­griff auf den gan­zen Rest mei­nes Netz­werks. Diese Pro­ble­ma­tik gilt al­ler­dings bei ge­naue­rer Be­trach­tung für alle Sze­na­rien, auch für die wei­ter un­ten folgenden.

Ver­gli­chen mit der obi­gen Wunsch­liste weist diese Kon­fi­gu­ra­tion fol­gende Pro­bleme auf:

  • Traffic-Shaping: Nur VoIP-Verkehr wird be­vor­zugt be­han­delt. Die Fritz-Box küm­mert sich darum (aber nur darum). FTP-Uploads kön­nen nor­ma­les Brow­sen ausbremsen.
  • Es gibt keine DMZ und keine WLAN-Zone.

Ich über­lege jetzt, ob die Firewall-Funktionalität des Ser­vers nicht doch auch noch sinn­voll in Be­trieb ge­nom­men wer­den kann. Das könnte dann un­ge­fähr so aussehen:

Version 2

Das Büro-LAN ist hier also nicht mehr di­rekt mit der Fritz-Box ver­bun­den, son­dern der Ser­ver dient als Rou­ter da­zwi­schen. Da­durch kann er als Fire­wall so­wie als Traf­fic Shaper den Ver­kehr nach in­nen steu­ern. So­mit wird das ge­samte WLAN und das an­ge­schlos­sene Schlafzimmer-LAN zur DMZ. Das ist si­cher­lich eine Er­hö­hung der Si­cher­heit des Büro-LANs. Al­ler­dings er­füllt das die For­de­run­gen nur teilweise:

  • Traf­fic Shaping auf dem Ser­ver kann zwar die Band­breite des von aus­sen aus­ge­lös­ten Ver­kehrs be­schrän­ken. Al­ler­dings ist es schwie­rig, da­bei zwi­schen Ver­kehr aus dem In­ter­net und Ver­kehr vom MP3-Player zu un­ter­schei­den. Es be­steht so­mit die Ge­fahr, dass der MP3-Player ein­ge­schränkt wird. Die Zu­griffs­ge­schwin­dig­keit des via WLAN an­ge­schlos­se­nen Fir­men­lap­tops auf die Dateien auf dem Ser­ver würde da­bei mög­li­cher­weise eben­falls auf DSL-Geschwindigkeit reduziert.
  • Es müs­sen zwei ge­trennte Fire­walls un­ter­hal­ten wer­den. Da­bei darf der Ser­ver den SMB bzw. Samba-Verkehr von und zum MP3-Player nicht unterbinden.

Oder als dritte Variante:

Version 3

Hier dient der Ser­ver als Haupt-Firewall, an­stelle der Fritz-Box. Jene dient statt­des­sen nur noch als WLAN-AP so­wie als VoIP-Knoten. Dies hat fol­gende Vor– und Nachteile:

  1. + Es ist nur noch eine Fire­wall zu un­ter­hal­ten und diese Fire­wall bie­tet viel fei­nere Ein­stel­lungs­mög­lich­kei­ten als das sim­ple Port-Forwarding der Fritz-Box.
  2. - Da­für ist auch das Ri­siko grös­ser, bei feh­ler­haf­ten Firewall-Einstellungen Tür und Tor zu öffnen.
  3. + Das Traffic-Shaping lässt sich mit Hilfe der übli­chen Linux-Hilfsmittel viel fei­ner und viel­fäl­ti­ger ein­stel­len als das VoIP-Traffic-Shaping der Fritz-Box.
  4. - Die Fritz-Box lässt sich nur noch aus dem WLAN bzw. aus dem Schlaf­zim­mer kon­fi­gu­rie­ren, weil Zu­griff auf die Kon­fi­gu­ra­ti­ons­sei­ten über das aus Sicht der Fritz-Box nun ex­terne Büro-LAN ge­sperrt sind.
  5. - WLAN und Schlafzimmer-LAN bil­den jetzt eben­falls ein ei­ge­nes Netz­werk­s­eg­ment. Al­ler­dings ist der Zu­griff vom Büro-LAN zum WLAN ge­sperrt und nicht um­ge­kehrt. Der Si­cher­heits­as­pekt läuft also ge­nau in der an­de­ren Rich­tung als ei­gent­lich gewünscht.
  6. - Da­mit ich te­le­fo­nie­ren kann, müs­sen jetzt noch mehr Ge­räte ein­ge­schal­tet sein und funk­tio­nie­ren, als in den an­de­ren Sze­na­rien. Bis­her musste Cablecom-Modem und Fritz-Box lau­fen, um die Te­le­fon­funk­tion zu ge­währ­leis­ten. Jetzt müs­sen zu­sätz­lich der Ser­ver so­wie der Switch ak­tiv sein.

Ge­nau ge­nom­men war diese dritte Va­ri­ante meine al­ler­erste. We­gen der obi­gen Punkte 4 und 6 ging ich al­ler­dings rasch zur ak­tu­el­len und nun als Va­ri­ante 1 be­zeich­ne­ten Kom­bi­na­tion über.

Nach all die­sen Über­le­gun­gen bin ich noch un­schlüs­sig, ob und wie ich et­was ändern soll und be­lasse da­her erst mal al­les so, wie es grade ist, son­dern bitte um Kommentare.

2 Kommentare zu “Heim­netz­werk”

  1. Martin sagt:

    Hoi Da­niel

    ich würde beim ak­tu­el­len Lay­out blei­ben. Um gute VoIP Qua­li­tät zu ge­währ­leis­ten, ist der di­rek­teste An­schluss im­mer der beste (und die Fritz­Box hat zu­min­dest das Shaping/QoS fürs VoIP am bes­ten im Griff).

    Was du dir auch noch be­wusst sein musst be­tref­fend Shaping: Wirk­lich be­ein­flus­sen kannst du ge­ne­rell nur aus­ge­hen­den Traf­fic (egal, ob die Ver­bin­dung von in­nen nach aus­sen oder von ex­tern zu dir her­ge­stellt wurde, re­le­vant ist dann nur die Rich­tung des Daten­trans­fers). Denn nur aus­ge­hen­der Traf­fic kann (ob bei Fritz­Box oder Li­nux Fire­wall) auf der Fire­wall aus­ge­bremst (zu­rück­ge­hal­ten) wer­den und in ge­nau der ge­wünsch­ten Ge­schwin­dig­keit und Prio­ri­sie­rung in Rich­tung Ka­bel­mo­dem los­ge­las­sen wer­den. Ein­ge­hen­der Traf­fic kommt ein­fach mal so schnell wie mög­lich bis zum Shaping Ge­rät (Frit­box oder Li­nux) und kann dort höchs­tens noch durch ge­zielte Pa­ket Drops künst­lich her­un­ter­ge­bremst wer­den. Wir ha­ben da­her auf den ein­ge­hen­den Traf­fic kei­nen wirk­li­chen Ein­fluss auf die QoS/Priorisierung.

    Auf der Fritz­Box müsste so­mit vor­al­lem der Uplink Speed an­ge­ge­ben wer­den kön­nen (z.B. bei ei­nem 25000/1500 Abo wür­dest du viel­leicht 1450 als Uplink speed kon­fi­gu­rie­ren (da­mit der Aus­ge­hende Fire­wall Ver­kehr auf je­den Fall ein klein we­nig lang­sa­mer ist als der real zur Ver­fü­gung ste­hende Link (um zu ver­hin­dern, dass es dann nicht doch beim Mo­dem noch­mals zum stauen kommt –> QoS Kon­trolle wäre dahin).

    wenn das Shaping rich­tig ein­ge­stellt ist (sprich: eben der Uplink speed auf dem Shaping Ge­rät si­cher leicht tie­fer ist als phy­sisch ver­füg­bar), soll­test du den er­wähn­ten Ef­fekt nicht ha­ben. Sprich vol­ler Upload dürfte den Down­load nicht gross aus­brem­sen und um­ge­kehrt.
    Du kannst es sel­ber tunen/ermitteln, in­dem du je­weils wäh­rend ei­nes vol­len Up– bzw. Down­loads ein ping aus­führst und die Shaping Werte so­lange nach un­ten kor­ri­gierst, bis die Ant­wort­zei­ten der Pings auch trotz lau­fen­dem Up– oder Down­load noch OK sind.

    Um die Si­cher­heit zu er­hö­hen, kannst du fol­gen­des be­ach­ten:
     – Über­lege dir, ob du wirk­lich SSH nach aus­sen of­fen ha­ben willst. SSH/Shell Zu­griff er­mög­lich wie kor­rekt be­merkt auch ohne Pro­bleme den Zu­griff aufs rest­li­che Netz und er­wei­ter­ten Zu­griff auf den Ser­ver. Bie­test du statt­des­sen nur FTP (ohne Shell: d.h. die User er­hal­ten als Shell /bin/false (siehe /etc/passwd)) an, sind zwar die über­tra­ge­nen Da­ten un­ver­schlüs­selt (je nach Da­ten dürfte dies nur un­ter­ge­ord­net von Be­deu­tung sein), da­für kann der Ser­ver nicht als Hop in dein Netz miss­braucht wer­den (emp­fehle vsftpd mit chroot=~ (sprich: je­der User kann sein per­sön­li­ches Home-Dir nicht verlassen)).

    Gruss
    Martin

  2. admin sagt:

    Vie­len Dank, Martin

    Die Sa­che mit dem Traf­fic Shaping ist doch die: An­kom­mende TCP-Datenpakete müs­sen vom TCP/IP-Stack quit­tiert wer­den. Das Quit­tungs­pa­ket geht an den Ab­sen­der zu­rück und ent­hält die In­for­ma­tion, ob das ge­sen­dete Pa­ket feh­ler­frei an­ge­kom­men ist oder nicht. Da­mit ein von mir ver­an­lass­ter Down­load (z.b. beim Brow­sen) flüs­sig her­ein­kommt, müs­sen diese Quit­tungs­pa­kete rasch und un­ge­hin­dert über den Upstream-Kanal flies­sen kön­nen. Wenn nun gleich­zei­tig ein FTP-Upload die ge­samte Upstream-Übertragungskapazität be­legt, dann ge­hen die Quit­tungs­pa­kete nicht so­fort los, son­dern müs­sen je­weils ein biss­chen war­ten, bis im FTP-Datenstrom die nächste Lü­cke kommt. Die für die­ses War­ten be­nö­tigte Zeit hängt da­von ab, wie gross die FTP-Datenpakete sind, und wie gross der Sen­de­puf­fer ist, der vom TCP/IP-Stack be­nutzt wird. Die Quit­tungs­pa­kete sel­ber sind klein (nur we­nige dut­zend Bytes), die FTP-Datenpakete so gross wie mög­lich (nor­ma­ler­weise im Be­reich 1500 Bytes). Die Grösse des Sen­de­puf­fers ist mir grade nicht be­kannt. Aber je­den­falls führt dies dazu, dass bei gleich­zei­tig lau­fen­dem FTP-Upload ein HTTP-Download nur sto­ckend her­ein­kommt, ob­wohl die Downstream-Datenrate bei wei­tem nicht voll aus­ge­nutzt wird.

    Darum ist Traf­fic Shaping emi­nent wich­tig, nicht nur für VoIP, son­dern auch dann, wenn da­mit zu rech­nen ist, dass die Lei­tung nicht nur von ei­nem selbst be­nutzt wird. Des­halb werde ich, so­bald ich dazu komme, mir die Zeit da­für zu neh­men, mein Heim­netz­werk in Rich­tung Va­ri­ante 2 weiterentwickeln.

    Gruss
     – Da­niel

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>