Routing: Server im ER Setup


#1

Ich habe vor kurzen einen RPi-Server in Betrieb genommen und habe (nach einiger Spielerei) es geschafft ihn öffentlich zu erreichen. Doch ist die Route ins Internet über mein Management-Netzwerk. Und wenn ich sie auf das Interface mit der Public-IP stelle, komme ich nirgendwo mehr hin.
Wo liegt mein Fehler?

Konfiguration ist hier zu finden.

Dankbar für alle Informationen
–Georg


#2

Hallo Georg. Deinen Raspi kann man aus dem Web jedenfalls ordnungsgemäß erreichen - auch die http-seite vom Raspi lässt sich abrufen:

traceroute to 78.41.112.106 (78.41.112.106), 30 hops max, 60 byte packets
[....]
 4  vix2.nessus.at (193.203.0.192)  34.212 ms
 5  ae1.edge01.ndc2.vie.nessus.at (77.244.255.59)  30.879 ms
 6  ten2-501-r01nessus.bb.funkfeuer.at (78.41.115.30)  30.959 ms
 7  ge1-503-rn02nessus.bb.funkfeuer.at (78.41.115.54)  31.128 ms
 8  ge1-506-rn02krypta.bb.funkfeuer.at (78.41.115.10)  17.820 ms
 9  vlan519-tunnelserver.bb.funkfeuer.at (78.41.115.42)  18.110 ms
10  tunnel.OZW.wien.funkfeuer.at (78.41.112.70)  34.201 ms
11  220degLAN.OZW.wien.funkfeuer.at (78.41.113.228)  21.414 ms
12  router.hof28.wien.funkfeuer.at (193.238.156.39)  22.366 ms
13  helium.hof28.wien.funkfeuer.at (78.41.112.106)  9.985 ms

Ergo hast du scheinbar mit static-hostroutes? schon Internetconnectivity. Vermutlich happert es daher an der Metric der default-Route und/oder am policy-routing.

ip -4 r | grep -E "default|0\.0\.0"

–> die Route mit der niedrigsten Metric zieht und zeigt das “outgoing interface”.

Du könntest folgendes probieren: Definiere in /etc/iproute2/rt_tables ein eigenes Routingtable, z.B. “220 funkfeuer”. Dann kannst du folgende policy konfigurieren:

ip rule add from 78.41.112.106 table funkfeuer
ip route add default via 78.41.112.106 table funkfeuer
ip rule add to 78.41.115.70 table funkfeuer  #für v642
ip rule add to 78.41.115.16 table funkfeuer  #für OpenVPN-Tunnel

Lass uns hier im Forum wissen, ob das ein passender Lösungsansatz war bzw. wie du das dann gemacht hast.
LG


#3

Danke für die Anwort. Ich habe es probiert und es hat leider nicht funktioniert.

Ein traceroute vom raspi schaut folgendermasßen aus (wenn Internetconnectivity gegeben ist):

traceroute to tunnel.ozw.wien.funkfeuer.at (78.41.112.70), 30 hops max, 60 byte packets
 1  10.30.8.100 (10.30.8.100)  0.579 ms  0.458 ms  0.429 ms
 2  220deg.OZW.wien.funkfeuer.at (78.41.113.227)  2.230 ms  2.021 ms  3.397 ms
 3  tunnel.OZW.wien.funkfeuer.at (78.41.112.70)  3.413 ms  3.407 ms  3.437 ms

Und die Route dafür geht:

default via 10.30.8.100 dev eth0.10

Wenn ich eine default-Route auf dem Interface eth0.2 anlege (nachdem ich die andere gelöscht habe oder auf einem table mit niedrigerer Metric), komme ich nicht mehr ins Internet.

Daher weiß ich nicht genau wo ich etwas umstellen muss: am Raspi oder am Router!?
Und warum soll die Route wieder auf die eigene ip-Adresse zeigen?

Zustätzlich ist auch der arp-table ist voller nutzloser einträge, die meiner meinung Nach nicht da sein sollten.

Address                  HWtype  HWaddress           Flags Mask            Iface
smokeping.funkfeuer.at           (incomplete)                              eth0.2
185.10.215.227                   (incomplete)                              eth0.2
ip-112-94.4vendeta.com           (incomplete)                              eth0.2
zg-1210f-99.stretchoid.          (incomplete)                              eth0.2
5.219.52.106                     (incomplete)                              eth0.2
104.248.192.197                  (incomplete)                              eth0.2
178.128.75.54                    (incomplete)                              eth0.2
77.72.85.20                      (incomplete)                              eth0.2
bmk-smoke-01.2345Falke.          (incomplete)                              eth0.2
google-public-dns-a.goo          (incomplete)                              eth0.2

Warum steht das im arp-table, wenn der Raspi ja eigentlich nur zum Router schicken soll und der Router weiter? Sollte dann nicht nur die ip und mac vom router darin stehen?

Ich bin mit meiner Weißheit am Ende

LG Georg


#4

Anders Gefragt:
Ich will in einem EdgeRouter-Setup einen Server betreiben. Dieser soll selbst kein OLSR betreiben.

Wie muss das Routing am Router geschehen?

LG Georg

PS: Theoretische Ansätze sind genauso gefragt wie praktische.


#5

Der Raspi braucht eine IP, die Du im Redeemer für ihn anlegen kannst.
Dieser muss selbst kein OLSR sprechen.

Der EdgeRouter, der OLSR spricht, kündigt diese IP-Adresse per HNA an. Dazu muss man die IP als HNA in der olsrd4.conf (über den Wizard, wenn das geht) eintragen Damit gelangt der Traffic für den Raspi erst einmal zu ihm.

Auf dem ER ist nun die Schwierigkeit, dass wir hier mit einzelnen IPs und nicht mit Linknetzen (/32 statt /30) arbeiten. Den genauen Weg, wie Pocki das an dieser Stelle weitermacht, kenne ich nicht, es gibt aber unterschiedliche Konfigurationen, mit denen man zum Ziel kommt:

  1. PPP over Ethernet am EdgeRouter - der Raspi „wählt“ sich bei ihm ein und erhält so die IP - so macht @vchrizz das, soweit ich weiss.
  2. Hostrouten: Raspi und EdgeRouter bekommen statische Routen die über jeweilige Interface ens* oder eth0 am Raspi, eth0-4 am ER* direkt miteinander sprechen. Der Raspi erhält noch eine Defaultroute, die über die Hostroute=ER-X geht. So würde ich das machen, aber ich verwende keinen ER-X mehr. Das ist im Grunde auch ein P-t-P-Setup wie bei PPPoE, nur ohne den Overhead und ohne Authentizierung. Manche Geräte sind da etwas störrisch. Der Parameter “onlink” sollte unter Linux zum Ziel führen.
  3. IPIP wäre auch denkbar.