1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Rdomains verstehen lernen - einfaches Szenario

Dieses Thema im Forum "OpenBSD - Allgemein" wurde erstellt von MCPO, 9 Januar 2017.

  1. MCPO

    MCPO New Member

    Registriert seit:
    24 Juli 2005
    Beiträge:
    5
    Ort:
    Wroclaw
    Hallo Leute,

    ich versuche mich derzeit in rdomains einzuarbeiten und habe mir zu diesem Zweck ein OpenBSD 6.0 mit 3 Interfaces aufgesetzt. Mein erster Anlaufpunkt was dieser Artikel: https://www.packetmischief.ca/2011/09/20/virtualizing-the-openbsd-routing-table/

    Leider alles ohne Erfolg. Deshalb dachte ich ich frage einfach mal ;)

    Mein System hat drei Interfaces (em0, em1, em2).

    hostname.em1:
    inet 192.168.1.10 255.255.255.0 192.168.1.255
    description "LAN"

    hostname.em2:
    rdomain 1
    inet 192.168.2.10 255.255.255.0 192.168.2.255
    description "DMZ"
    !route -T 0 add 192.168.2.10 -iface 192.168.1.10

    route -T 0 -n show -inet
    Destination Gateway Flags Refs Use Mtu Prio Iface
    default 172.16.151.2 UGS 0 13 - 8 em0
    224/4 127.0.0.1 URS 0 0 32768 8 lo0
    127/8 127.0.0.1 UGRS 0 0 32768 8 lo0
    127.0.0.1 127.0.0.1 UHl 1 1 32768 1 lo0
    172.16.151/24 172.16.151.158 UC 2 0 - 4 em0
    172.16.151.1 00:50:56:c0:00:08 UHLc 1 2 - 4 em0
    172.16.151.2 00:50:56:fc:31:2a UHLc 1 6 - 4 em0
    172.16.151.158 00:0c:29:91:68:3c UHLl 0 4 - 1 em0
    172.16.151.255 172.16.151.158 UHb 0 0 - 1 em0
    192.168.1/24 192.168.1.10 UC 0 0 - 4 em1
    192.168.1.10 00:50:56:3d:38:b8 UHLl 0 5 - 1 em1
    192.168.1.255 192.168.1.10 UHb 0 0 - 1 em1
    192.168.2.10 192.168.1.10 UHS 0 1 - 8 em1

    route -T 1 -n show -inet
    Destination Gateway Flags Refs Use Mtu Prio Iface
    192.168.2/24 192.168.2.10 UC 0 0 - 4 em2
    192.168.2.10 00:0c:29:91:68:50 UHLl 0 0 - 1 em2
    192.168.2.255 192.168.2.10 UHb 0 0 - 1 em2

    pf.conf:
    icmp_types="{ echoreq, unreach }"
    pass out # establish keep-state
    pass in
    pass in on em1 inet rtable 1
    pass inet proto icmp all icmp-type $icmp_types


    Und nun, ping von rdomain 1 auf das Interface in rdomain 0:
    route -T 1 exec ping 192.168.1.10
    PING 192.168.1.10 (192.168.1.10): 56 data bytes
    ping: sendto: No route to host
    ping: wrote 192.168.1.10 64 chars, ret=-1

    Ping von rdomain 0 auf das Interface in rdomain 1:
    route -T 0 exec ping 192.168.2.10
    PING 192.168.1.10 (192.168.1.10): 56 data bytes
    ping: sendto: No route to host
    ping: wrote 192.168.1.10 64 chars, ret=-1

    Stehe komplett auf dem Schlauch :-/
    Bin über jede Hilfe sehr dankbar

    Schönen Gruß
     
  2. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    119
    pf.conf auf Fehler testen:
    pfctl -vvnf /etc/pf.conf # ist 2mal "v"

    Monitoring:
    tcpdump -eni pflog0

    tcpdump nur icmp:
    tcpdump -nni $interface icmp # $interface durch deins ersetzen


    Sind paar Tipps zur Fehlersuche, habs mir an sich nicht durchgelesen, grad leider keinen Kopf für

    Greetz
     
  3. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    887
    Sagt doch alles.
    Versuch erstmal dein Routing zu fixen - ohne aktives pf. Dann gehts weiter.

    Rob
     
  4. MCPO

    MCPO New Member

    Registriert seit:
    24 Juli 2005
    Beiträge:
    5
    Ort:
    Wroclaw
    Schon klar, dass es das Routing ist - aber deswegen frage ich ja. rdomains brauchen, wenn ich es richtig verstanden habe in eine Richtung eine pf Regel und in die andere Richtung einen Routing-Eintrag. Also geht es nicht komplett ohne aktives pf, oder?
     
  5. mogbo

    mogbo Does it run under Windows? Who cares?

    Registriert seit:
    12 September 2016
    Beiträge:
    119
    Offene pf.conf:
    (erstmal mit: "pfctl -vvnf pf.conf" testen, keine Ahnung ob da grad was mitm Syntax nicht passt)
    Code:
    set skip on lo0
    block return log all
    pass in on egress inet all
    pass out on egress inet all
    
    Denke mit egress bist du besser bedient zum Testen.
    rtable musste selbst einbauen, hab das nie genutzt
     
  6. double-p

    double-p BOFH

    Registriert seit:
    6 September 2003
    Beiträge:
    606
    Ort:
    Buxtehude, Germany
    foxit gefällt das.
  7. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    749
    Ort:
    Bergisch Gladbach
    hi

    bei rdomains gilt zu beachten
    es muss eine default route vorhanden sein !

    warum

    um die kommunkation zur aussenwelt herzustellen benötigst du pf , und damit pf überhaupt das packet sieht muss es "in den kernel" rein.

    am einfachsten ist es zu verstehen
    wenn du in deiner rdomain 1 mal ein 2tes virtuelles if z.b. vether0 mit der ip 10.10.10.1 /24 erstellst
    und das default gw in der rdomain 1 dann auf die 10.10.10.1 legst.

    dann mal pass any log on vether0 machst ( sinn gemäß )

    nun kannst du schön im pflog beobchten was das packeta macht.

    alternativ geht auch tcpdump -n -i vether0


    ein pass on vether0 from any to any nat-to (lan_if) rtable 0 würde alle packete dann nach lan naten .

    holger
     
  8. MCPO

    MCPO New Member

    Registriert seit:
    24 Juli 2005
    Beiträge:
    5
    Ort:
    Wroclaw
    Super, genau diese Info habe ich gebraucht! Die Quellen, die ich bisher zurate gezogen habe nämlich nur in eine Richtung eine Route gesetzt und in die andere eine pf-Regel. In der rdomain in der meine pf-Regel greifen soll (statt Route) habe ich in der Tat keine Default-Route gesetzt. Fortsetzung folgt..
     
  9. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    887
    Die Routingtabelle ist essentiell, egal ob da noch pf oder sonstwas danach kommt. Es ist die erste Quelle für das Betriebssystem um zu entscheiden, wohin ein Paket geleitet werden soll. Gibt es keine passende Route, dann erfolgt auch keine Kommunikation.

    Rob
     
  10. double-p

    double-p BOFH

    Registriert seit:
    6 September 2003
    Beiträge:
    606
    Ort:
    Buxtehude, Germany
    Du magst Dir auch noch pair(4) anschauen - die Zeiten (wie in dem urspruenglichen Link), wo man das alles mit pf "rumwuchten" muss, sind nicht mehr zwingend.
     
  11. TCM

    TCM Well-Known Member

    Registriert seit:
    14 März 2005
    Beiträge:
    1.182
    Wenn OpenBSD noch source routing hätte...

    Gängiger Fall bei mir ist z.B. "diese IP-Adresse muss über die rdomain raus".
     
  12. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    749
    Ort:
    Bergisch Gladbach
    zum glück abgeschafft ..............

    es geht hier darum rdomains und deren funktion zu verstehen.

    wenn da 1x der groschen gefallen ist , sind rdmoans eine wirklich feine sache , sogar aus security sicht.

    selbst wenn man pair verwendet muss man das routing , im speziellen die rück route , beachten.

    her sollte man überlegen wofür, und warum ich rdmains nutzen will.

    holger
     
  13. double-p

    double-p BOFH

    Registriert seit:
    6 September 2003
    Beiträge:
    606
    Ort:
    Buxtehude, Germany
    pf.conf "rtable"?
     
  14. TCM

    TCM Well-Known Member

    Registriert seit:
    14 März 2005
    Beiträge:
    1.182
    Wäre halt schön, das auch nicht mit pf rumwuchten zu müssen, zumal dabei noch einige Fehler auftreten, die z.B. ein traceroute verhunzen.
     
  15. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    749
    Ort:
    Bergisch Gladbach
    hi

    dann hast du rdomains noch nicht verstanden.

    das das Routing Komplett isoliert ist muss das Paket über den kernel zu einer anderen rdomain
    und da biete sich pf einfach an.



    holger
     
  16. double-p

    double-p BOFH

    Registriert seit:
    6 September 2003
    Beiträge:
    606
    Ort:
    Buxtehude, Germany
    Man kann die rdomains per pair auch "koppeln" - aber src-routing geht halt generell schon nicht ohne pf in OpenBSD
     
  17. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    749
    Ort:
    Bergisch Gladbach
    source routing ist zum glück vor einigen jahren aus dem kernel rausgeflogen , zu recht.

    ich finde leider nicht auf den schnelle die entsprechende errata

    holger
     
  18. MCPO

    MCPO New Member

    Registriert seit:
    24 Juli 2005
    Beiträge:
    5
    Ort:
    Wroclaw
    Habe versucht in rdomain1 eine Default-Route einzutragen...ohne Erfolg.

    # route -T 1 -n show -inet
    192.168.2/24 192.168.2.10 UC 0 0 - 4 em2
    192.168.2.10 00:0c:29:91:68:50 UHLl 0 0 - 1 em2
    192.168.2.255 192.168.2.10 UHb 0 0 - 1 em2

    Und nun:
    # route -T 1 add default 172.16.151.2 (default GW in rdomain 0)
    add net default: gateway 172.16.151.2: Network is unreachable

    Stehe wieder auf dem Schlauch :(
     
  19. TCM

    TCM Well-Known Member

    Registriert seit:
    14 März 2005
    Beiträge:
    1.182
    Gateways müssen natürlich immer lokal erreichbar sein.
     
  20. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    749
    Ort:
    Bergisch Gladbach
    default gw muss in der rdmaon geset werden

    du kann auch ein

    ifconfig vether0 172.16.151.2/24 rdomain 1 machen

    und da dann default gw setzen .

    die doppelte ip stört dann nich das ja das ganze gekapselt ist.

    holger