Netzwerk: Unterschied zwischen den Versionen

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
(+ metalab_netmap_03042006.png (ascii2visio))
(→‎aktives Ruleset: changed the firewall rules since synproxy shot all the ssh connections.)
Zeile 123: Zeile 123:
 
pass out log quick on xl0 inet proto udp from any to any port = 698 keep state queue infra
 
pass out log quick on xl0 inet proto udp from any to any port = 698 keep state queue infra
 
pass out log quick on xl0 inet proto udp from any to any port = sip keep state queue infra
 
pass out log quick on xl0 inet proto udp from any to any port = sip keep state queue infra
pass out log quick on xl0 inet proto tcp from any to any port = ssh synproxy state queue infra
+
pass out log quick on xl0 inet proto tcp from any to any port = ssh keep state queue infra
 
pass out log all
 
pass out log all
  

Version vom 3. Mai 2006, 22:17 Uhr

Netzwerk

Generell

Ansprechpersonen

  • Mihi Für den Uplink

Änderungen bei SIP/VoIP Phones

wenn ihr ein SIP Phone ins netz haengt, waere es sinnvoll, dem ne fixe IP zuzuweisen und das nat mit einem statischen ephemeral port einzurichten, da es sonst bei viel traffic (==viele user) zu problemen kommen kann. also das NOC/NSC darauf ansprechen.

Aufbau

Derzeit noch klein, bestehend aus:

  • nacl (OpenBSD 3.8 mit dhcpd, ftpd, ntpd und caching-dns), die 10.42.23.0/24 auf 193.238.156.8 (metagw.funkfeuer.at) nattet
  • einem hauptswitch im Maschinenraum,
    • von dort 2 CAT5 Kabel Richtung Hauptraum;
      • 1es (war frueher in der Kueche, jetzt am Sicherungskasten) in die linksys von Lynx (eh@metalab,dhcp v. nacl)
      • 1es quer ueber den Raum Richtung Fenster.


Schematics

Graphische Version des Ganzen


((0xFF))      ((0xFF))
 ((.))         ((.))
   |             |
  \|/           \|/  
   V             V
   |             |
+----------  +--------+
|metatovivi| |metaomni|
+----------+ +--------+   
   |         |
   +----------
   |
   |               
   |193.238.156.0/22 
   | olsr           ---
   |                 |
   |193.238.156.8    |
   |  +------+       |       \         /
   +--+ nacl +-------+        +-------+
   xl0+------+rl0    +--------+linksys|
                     |        +-------+ ssid eh@metalab
                     | 
                     |
                     | 
                     |   +--------+
                     +---+ ph0ne1 | 10.42.23.23
                     |   +--------+
                     |
                     |
                     | 10.42.23.0/24                  
                    ---

Funktion

ab hier kann's langweilig werden

Generell

wir filtern keinen traffic - wir natten nur und shapen den Traffic ein wenig

Traffic Shaping

Den einzigen Eingriff den wir uns im Netzwerkbereich erlauben ist das "hoeher priorisieren" von Packeten in der Queue am Gateway - wir regulieren den Verkehr um uns - aus Netzwerksicht - wichtigeren Protokollen den Vorzug vor anderen zu geben; klingt gemein, isses aber nicht; lies die nachfolgende Aufstellung und versuchs zu verstehen. Was wir hoeher priorisieren als Surfen, Chatten, Mails lesen und saugen (und den Rest):

  • OLSR - das Routingprotokoll, das den Uplink ins Internet ueber 0xFF ueberhaupt erst moeglich macht ist.
  • DNS - ohne DNS kannste gar nix. nix. ausser du denkst in IP Adressen, dann haelst du diese Priorisierung fuer ueberzogen ;)
  • NTP - wir synchronisieren unser Gateway mit zuverlaessigen Zeitgebern - sehr wichtig um im Fehlerfall exakte Zeitstempel zu haben. Auch du kannst deinen Rechner mit 10.42.23.254 synchronisieren, wenn du im metalab bist.
  • SSH - kommen wir nicht aufs Gateway ist das schlecht. Du kannst, z.B. via ssh auf deine Kiste zuhause - also ist das auch gut fuer dich.
  • SIP - damit immer telefoniert werden kann

hast du sonst noch Ideen, wirf sie im NOC ein. Grundsaetzlich erscheinen uns aber nur obige Protokolle lebenswichtig.

Operations

folgende Datein gibts, die als Regelwerke herangezogen werden koennen:

# ls -al /etc/pf*  
-rw-------  1 root  wheel   1168 May  1 11:57 /etc/pf-altq.conf
-rw-------  1 root  wheel   1180 May  1 12:02 /etc/pf.conf
-rw-------  1 root  wheel    914 May  1 11:57 /etc/pf.conf.orig
  • /etc/pf-altq.conf: hier werden Trafficpriorisierungen editiert und getestet, bevor die Date ueber
  • /etc/pf.conf kopiert wird, die das derzeit aktive Ruleset darstellt; das letztgueltige (also funktionierende) Ruleset ist
  • /etc/pf.conf.orig - wenn das ueber pf.conf kopiert wird und aktiv ist, funktioniert alles so wie vorher.


wenn Aenderungen passieren sollen, gehe wie folgt vor:

  • kopiere bitte /etc/pf.conf nach /etc/pf-<insert tag>.conf und editiere die entstehende Datei.
  • danach guckst du ob mit pfctl -nf /etc/pf-<insert date tag>.conf ob die Syntax stimmt.
  • dann verwendest du dein Ruleset als aktives mit pfctl -f /etc/pf-<insert date tag>.conf, laesst es laufen und schaust ob alles geht (red mit den Leuten)
  • erst wenn du dir sicher bist das alles gut ist, kopierst du das letzt-aktive nach /etc/pf.conf.orig, kopierst dein /etc/pf-<insert date tag>.conf nach /etc/pf.conf und enablest es mit pfctl -f /etc/pf.conf

bitte Kommentiere was du getan hast. Nur dann weigern sich die Leute nicht, dir zu helfen ;)

aktives Ruleset

hier das derzeit aktive ruleset:


TRANSLATION RULES:
nat on xl0 inet proto udp from 10.42.23.23 to any -> 193.238.156.8 static-port
nat on xl0 inet from 10.42.23.0/24 to any -> 193.238.156.8

FILTER RULES:
scrub in all fragment reassemble
pass in all
pass out log quick on xl0 inet proto udp from any to any port = domain keep state queue infra
pass out log quick on xl0 inet proto udp from any to any port = ntp keep state queue infra
pass out log quick on xl0 inet proto udp from any to any port = 698 keep state queue infra
pass out log quick on xl0 inet proto udp from any to any port = sip keep state queue infra
pass out log quick on xl0 inet proto tcp from any to any port = ssh keep state queue infra
pass out log all

ALTQ:
queue infra priority 14 priq( red ) 
queue rest priority 10 priq( default )