Server an VPN per fastd

Hallo Zusammen,

ich versuche einen Server direkt per fastd zu verbinden. Ich habe mich durch diese Anleitung führen lassen:
http://pad.freifunk.net/p/zdnOE0VwKX

Aber so richtig funktionieren will es trotzdem nicht.
Der VPN Uplink funktioniert. Ich bekomme aber keine IP zugewiesen.

fastd sagt folgendes:

 root@Tdf1:~# fastd -c /etc/fastd/rheinufer/fastd.conf
2014-12-14 02:01:12 +0100 --- Info: fastd v16 starting
2014-12-14 02:01:12 +0100 --- Info: successfully bound to 0.0.0.0:10040
net.ipv6.conf.all.forwarding = 1
net.ipv4.ip_forward = 1
RTNETLINK answers: No such process
RTNETLINK answers: No such process
2014-12-14 02:01:12 +0100 --- Warning: command exited with status 2
2014-12-14 02:01:12 +0100 --- Info: changed to UID 999, GID 999
2014-12-14 02:01:17 +0100 --- Info: connection with <mesh_vpn_backbone_peer_rheinufer0> established.
2014-12-14 02:01:17 +0100 --- Info: connection with <mesh_vpn_backbone_peer_rheinufer2> established.
2014-12-14 02:01:35 +0100 --- Warning: sendmsg: Address family not supported by protocol
2014-12-14 02:01:37 +0100 --- Warning: sendmsg: Address family not supported by protocol

Hat da jemand abhilfe?

Grüße

Stefan

Was steht in deiner /etc/fastd/rheinufer/fastd.conf (den Schlüssel nicht mit veröffentlichen)

Soll dein Server als Gateway fungieren oder soll der Server das machen was die meisten Server im Internet machen?

Hi Stefan,

die Verbindung wurde per fastd ja hergetellt:

Direkt per fastd bekommt man keine IP.

Hast Du tap0 BATMAN hinzugegefügt?
Welche BATMAN-Version nutzt Du auf dem System?
Notwendig ist die Version 2013.4

Grüße
Thomas

@DSchmidtberg Ich habe erstmal 1:1 die Config auf: http://pad.freifunk.net/p/zdnOE0VwKX übernommen.

bind 0.0.0.0:10000;
include "secret.conf";
interface "tap0";
log level info;
mode tap;
method "aes128-gcm";
method "salsa2012+gmac";
method "xsalsa20-poly1305";
method "null";
mtu 1426;
secure handshakes yes;
log to syslog level error;
user "fastd";
peer "mesh_vpn_backbone_peer_rheinufer3" {
  key "052ff3cc4d383ce4797ef12f4dabe22b8fc62c76e24f9b7827fe14c11522c474";
  remote "rheinufer3.freifunk-rheinland.net" port 10040;
}
peer "mesh_vpn_backbone_peer_rheinufer1" {
  key "ab8959c1f974fa24354734f5bbe8106f8980a1b33eff22be580d9bcd3052e357";
  remote "rheinufer1.freifunk-rheinland.net" port 10040;
}
peer "mesh_vpn_backbone_peer_rheinufer2" {
  key "4ab84305bad610bf8c8b76c7897aa97dd4740893f680ac486ee1ee0b7e4ec18b";
  remote "rheinufer2.freifunk-rheinland.net" port 10040;
}
peer "mesh_vpn_backbone_peer_rheinufer0" {
  key "1f9ad5481a6773d963fa38980afbf7d296163070aecd8d600863d866bafddf32";
  remote "rheinufer0.freifunk-rheinland.net" port 10040;
}
on up "
  ip link set up dev tap0
  batctl -m bat0 if add $INTERFACE
  batctl -m bat0 it 5000
  batctl -m bat0 bl enable
  batctl -m bat0 vm server
  echo 1 > /sys/class/net/tap0/batman_adv/no_rebroadcast
  sysctl -w net.ipv6.conf.all.forwarding=1
  sysctl -w net.ipv4.ip_forward=1
  ip link set up dev bat0
  brctl addif br0 bat0
  ip route replace 10.0.0.0/8 via 10.53.16.254
  ip route replace 172.0.0.0/8 via 10.53.16.254
";

Der Server soll das machen was ein Server macht :slight_smile: Er muss nicht als Gateway dienen. Ich bräuchte halt nur ne IP um loszulegen,

@thomasDOTwtf ich habe laut der Anleitung batman installiert. Ob das nun richtig war kann ich nicht sagen. Wie finde ich das herraus?

Danke für die Hilfe

Stefan

Gerade gesehen das ich auch Batman nachbarn sehe.

root@Tdf1:~# batctl o
    [B.A.T.M.A.N. adv 2013.4.0, MainIF/MAC: tap0/be:ba:7e:86:ec:87 (bat0)]
      Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...
    a2:f3:c1:36:5b:f0    7.528s   (132) 04:be:ef:ca:fe:02 [      tap0]: 04:be:ef:ca:fe:00 (132) 04:be:ef:ca:fe:02 (132)
    c2:4a:00:dd:56:77    0.080s   (203) 04:be:ef:ca:fe:00 [      tap0]: 04:be:ef:ca:fe:00 (203) 04:be:ef:ca:fe:02 (200)
    74:ea:3a:e1:a8:ef    0.452s   (103) 04:be:ef:ca:fe:00 [      tap0]: 04:be:ef:ca:fe:00 (103) 04:be:ef:ca:fe:02 ( 98)
    c6:6e:1f:70:16:32    2.956s   (169) 04:be:ef:ca:fe:02 [      tap0]: 04:be:ef:ca:fe:00 (150) 04:be:ef:ca:fe:02 (169)
    12:fe:ed:3a:8f:30    3.024s   (222) 04:be:ef:ca:fe:00 [      tap0]: 04:be:ef:ca:fe:00 (222) 04:be:ef:ca:fe:02 (213)
    66:70:02:cd:8c:24    3.496s   (220) 04:be:ef:ca:fe:00 [      tap0]: 04:be:ef:ca:fe:00 (220) 04:be:ef:ca:fe:02 (199)
    ea:94:f6:43:de:b2    4.052s   (220) 04:be:ef:ca:fe:00 [      tap0]: 04:be:ef:ca:fe:00 (220) 04:be:ef:ca:fe:02 (210)
    ea:94:f6:2a:d3:1c    1.420s   (183) 04:be:ef:ca:fe:02 [      tap0]: 04:be:ef:ca:fe:00 (163) 04:be:ef:ca:fe:02 (183)
    a2:f6:c2:05:c1:ba    3.280s   (103) 04:be:ef:ca:fe:00 [      tap0]: 04:be:ef:ca:fe:00 (103) 04:be:ef:ca:fe:02 (100)

PS: In welches GW-Mode muss sich batman befinden? Ich würde jetzt client raten.

ich musste bei mir das br-interface in den promisc mode setzen. Dann klappte das mit dem ipv4 auch:

ifconfig br0 promisc

Für IPv6 musste ich folgendes machen: in /etc/sysctl.conf eintragen:

net.ipv6.conf.br0.accept_ra = 2

Dann sysctl -p

1 Like

Meine Lösung für den Ipv4 Fall gefällt mir nicht, aber ich habe keine andere Antwort gefunden..

Gar nicht gut, wenn dies kein Supernode ist am besten sofort den Server Mode aus für Batman. Du störst sonst den Zugang für alle anderen Netzteilnehmer.
Tests mit sowas am besten nur im eigenen Test-Mesh :wink: Falls vorhanden. Ansonsten lokal mit zwei Laptops oder ähnlichem testen.

Sorry das war ein C&P fehler. Batman läuft natürlich als client.

tolle Sache, so ein Server, nur kann man alles damit anstellen, wenn er nicht als Supernode und Gateway dient?

Z.b. Dienste im Mesh bereitstellen, eigenes Monitoring der Nodes innerhalb des Meshes oder auch einfach nur für Remote-Zugriff auf Nodes falls das Routing mal nicht klappt. :slight_smile:

1 Like

Hi,

vm server, bedeutet das nicht nur, dass das Ding in den Karten schließlich als Server, nicht als Node erscheint? Das mit dem Supernode geht doch mit dem Befehl gw bzw. gw_mode.

Gute Frage ich schließe mich dieser an.

Einstellungen unter batctl vm (auch batctl vis_mode) betreffen die Auslieferung der Daten über die Netztopologie (das woraus dann mal die Karte erstellt wird).
„client“ bedeutet hier, dass der Knoten seine Daten wie jeder andere Teilnehmer auch an den jeweiligen Server schickt.
„server“ bedeutet, dass der Knoten sich selbst als Server bekannt macht und Clients an ihn Daten schicken.

Wenn du mehrere vis_mode Server gleichzeitig betreibst, kommt es zu lustigen Effekten. So werden zB nicht mehr alle Daten an den eigentlichen Server geschickt (der dann die Karte generiert) und auf der Karte fehlt plötzlich ein großer Teil des Netzwerks.

Deswegen am besten nichts an dieser Einstellung ändern, es sei denn du weißt ganz genau was du tust.

vis_mode ist in Gluon rausgepatcht und in der nächsten Batman-adv.-Version vollständig verschwunden. Als Normalsterblicher stellt man sie auf client; oder off, wenn die Wolke die Daten via Alfred übermittelt. Mit vis_mode off war der Knoten vor Alfreds Zeiten unsichtbar. Mit vis_mode server habe ich in unserer alten Wuppertaler Installation keine Nachteile bei mehreren Servern gesehen; die Wolke war aber nicht so riesig. Grundsätzlich gibt es Probleme mit Schmalband Internetanschlüssen. Mit Alfred macht man seinen Knoten/Server so (provisorisch) sichtbar:

alfred -i bat0 -m 2>/dev/null &
batadv-vis -i bat0 -s 2>/dev/null &

Man sollte ich in Alfred einarbeiten, wenn darüber die Informationen in der Wolke ausgetauscht werden.

gw_mode stellt man bitte auf client, wenn der Server DHCP erhalten soll. Wenn man seine Freifunk-Wolke nicht sabotieren möchte, stellt man gw_mode niemals auf server!

hier steht alles drin:
http://downloads.open-mesh.org/batman/manpages/batctl.8.html

Dies kann Probleme mit der Visualisierung bringen, Nodes die dann fehlen z.b.
Die FFMap ist jetzt schon unstable weil es durch das Packetloss Merging-Probleme gibt und dies verstärkt das Problem nur zusätzlich.

Nur Supernodes bzw Map-Server sollten diese Option aktiviert haben.