• Der Fragesteller hat diesen Beitrag als gelöst markiert.
  • Geschlossen

SRV Eintrag

LinTux
Level 1
1 von 13

Hallo

 

Ich hoste einen Matrix Synapse Heimserver auf meiner .internet-box.ch Adresse. Leider funktioniert bei Matrix die Federation mit matrix.org nicht, vermutlich ist es das gleiche Problem wie bei https://github.com/matrix-org/synapse/issues/5882 . Offenbar hilft ein SRV Eintrag. Leider konnte ich in den Internet-Box Einstellungen nichts über SRV records finden und auch das Internet half mir nicht wirklich weiter. Mir ist bewusst, dass es andere DynDNS-Anbieter gibt, die SRV Einträge anbieten. Allerdings möchte ich es unbedingt vermeiden, die Adresse des Servers zu ändern, da dann alle Nutzer ihre Einstellungen neu konfigurieren müssten und es wahrscheinlich viele Probleme geben würde, wenn ich den Server-Namen in der Konfiguration einfach ändern würde.

Gibt es eine (wenn möglich kostenlose) Möglichkeit, einen SRV-Eintrag zu meiner Adresse hinzuzufügen?

HILFREICHSTE ANTWORT1

Akzeptierte Lösungen
Tux0ne
Level 9
12 von 13

Hi @LinTux 

Habe nun auch einen Matrix Server aufgesetzt. Du hast recht, es braucht nicht zwingend einen SRV Eintrag den du mit dem DDNS Service von Swisscom eh nicht anlegen kannst. 
Da du aber diesen verwendest wird der Server ja zwingend unter dieser Adresse erreichbar sein (kein CNAME, ebenfalls nicht möglich...)

Daher kannst du eigentlich die Variante mit einem well-known Eintrag im Webserver machen. 

Ich habe meinen Server auf der Domain eingerichtet und daher einen SRV Eintrag angelegt.

 

Ich empfehle dir aber trotzdem eine eigene Domain für dein Anliegen zu lösen. Der DDNS Dienst von Swisscom ist nicht so zuverlässig wie er sollte. Probleme mit LE kann es ebenfalls geben. Wie gesagt kannst du den Servernamen danach auch nicht mehr einfach ändern. Das ist aktuell einfach nicht vorgesehen und du müsstest wieder von scratch beginnen. 

Falls deine Federation mal funktioniert kannst du mich unter @thomas:tuxone.ch mal einladen. 

Jeder ist beim Provider den er verdient
Jeder ist beim Provider den er verdient
12 Kommentare 12
cslu
Level 6
2 von 13

@LinTux  schrieb:

 

Gibt es eine (wenn möglich kostenlose) Möglichkeit, einen SRV-Eintrag zu meiner Adresse hinzuzufügen?


Unwahrscheinlich dass es überhaupt irgend eine Möglichkeit gibt, da du ja keinerlei Hoheit/Zugriffsmöglichkeit auf die DNS-Zone der Domain hast.

 

Aber vielleicht weiss jemand von den Swisscömlern (oder solche die dieses Homeuser-DynDNS der InternetBox nutzen, was bei mir nicht der Fall ist) mehr zu sagen.

gasoo
Level 3
3 von 13

Der DynDNS erstellt nur einen A Record, keinen SRV.

Für den SRV müssten auch weitere Angaben gemacht werden, welche auf dem Router nicht konfiguriert werden können.

Ich denke auch nicht, dass das auf irgendwelchen anderen Wegen möglich ist (Für die Domain internet-box.ch)

Falls du den SRV für die korrekte Funktion benötigst, dann muss du wohl auf eine andere Domain wechseln.

 

Bei genauerer Betrachtung könnte das aber auch ein Bug sei.

Bei einer SRV Abfrage beantwortet der Autoritative DNS von internet-box.ch die Anfrage mit einem ungültigen Extended RCODE, was dazu führt, dass der Resolver ein Servfail anstatt ein NXDomain im Status einfügt.

Ob das Problem behoben wäre, wenn ein NXDomain drin ist, kann ich aktuell nicht sagen.

Ich melde das mal den Admins von internet-box.ch, da es eigentlich ein Bug ist sollte das so oder so gefixt werden.

Je nach dem wie lange ein Fix dauert, könntest du dann nochmals testen, oder du wechselst auf eine andere Domain.

Editiert
LinTux
Level 1
4 von 13

Es gibt keinen Servefail, sondern einen NXDomain; das ist der einzige Unterschied zum Issue auf GitHub den ich ausmachen konnte.

 

Hier ist der Output von dig:

 

dig @8.8.8.8 -t SRV _matrix._tcp.servername.internet-box.ch

; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> @8.8.8.8 -t SRV _matrix._tcp.servername.internet-box.ch
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 35924
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_matrix._tcp.servername.internet-box.ch. IN SRV

;; AUTHORITY SECTION:
internet-box.ch. 299 IN SOA ns1.internet-box.ch. CMI-ABO\.APO.swisscom.com. 2015021601 36000 3600 1814400 300

;; Query time: 13 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Di Apr 21 17:17:32 CEST 2020
;; MSG SIZE rcvd: 135

Tux0ne
Level 9
5 von 13

Für die Federation brauchst du einen srv Eintrag. Diesen kannst du mit dem ddns Dienst Internet-box.ch nicht anlegen. Überhaupt ist das ein sehr wackeliges Konstrukt wenn ich da von Usern lese die plötzlich den Namen nicht mehr registrieren können usw.  
Besorg dir eine eigene Domain bevor du zu viele User auf diesen Server angelegt hast. Das ist nicht servFail sondern DesignFAIL. 

Jeder ist beim Provider den er verdient
Jeder ist beim Provider den er verdient
LinTux
Level 1
6 von 13

Du hast da glaube ich etwas falsch verstanden. Die Nutzer können sehr wohl noch Namen registrieren. Es funktioniert eigentlich alles ausser die Federation (und die Bots vom Integration-Server funktionieren auch nicht, aber das ist wohl das gleiche Problem wie bei der Federation).

Damit, dass eine Namensänderung viele Probleme verursachen würde, meine ich nur, dass ich dann wohl Synapse von Grund auf neu aufsetzen müsste und alle Daten verloren wären, sich also alle Nutzer erneut registrieren müssten. Da mindestens eine Nutzerin dabei auf meine persönliche Hilfe angewiesen wäre und dies wegen dem Coronavirus im Moment nicht geht, kann ich das bis auf weiteres nicht tun.

Ich musste den Server zu einem bestimmten Termin eingerichtet haben und habe das Problem bis zu diesem Termin noch nicht gefunden, also läuft der Server im Moment einfach ohne Federation

gasoo
Level 3
7 von 13

Das mit dem Servfail scheint abhängig von dem verwendeten Server zu sein.

bind9 liefert bei mir ein Servfail, Google nicht, aber der Status vom autoritativen ist definitiv falsch.

Das habe ich heute auch den Admins von internet-box.ch gemeldet.

 

Anscheinend hat das ja aber keinen Einfluss, wenn ein SRV so oder so nötig ist.

 

LinTux
Level 1
8 von 13

Nur zur Vermeidung eines möglichen Missverständnisses, ich habe meinen echten Servernamen durch servername ersetzt (da ich ihn nicht öffentlich sichtbar haben will), falls du es also mit servername.internet-box.ch probiert hast, sagt das nichts über meinen Server aus, denn servername.internet-box.ch existiert wohl nicht. Ich hätte das wohl vorher erwähnen sollen...

Wenn du willst, dann ich dir den richtigen Servernamen privat mitteilen.

gasoo
Level 3
9 von 13

@LinTux   Das war mir schon klar, habe das ganze mit meinem Eintrag probiert. 

LinTux
Level 1
10 von 13

Gemäss Matrix-Spezifikation  ist eigentlich kein SRV-Eintrag nötig, dort steht nämlich unter Resolving server names folgendes (eine Kopie aus dem oben erwähnten GitHub Issue, wo ich auch noch darauf aufmerksam gemacht habe):

 

Server names are resolved to an IP address and port to connect to, and have various conditions affecting which certificates and Host headers to send. The process overall is as follows:

1. If the hostname is an IP literal, then that IP address should be used, together with the given port number, or 8448 if no port is given. The target server must present a valid certificate for the IP address. The Host header in the request should be set to the server name, including the port if the server name included one.
2. If the hostname is not an IP literal, and the server name includes an explicit port, resolve the IP address using AAAA or A records. Requests are made to the resolved IP address and given port with a Host header of the original server name (with port). The target server must present a valid certificate for the hostname.
3. If the hostname is not an IP literal, a regular HTTPS request is made to https://<hostname>/.well-known/matrix/server, expecting the schema defined later in this section. 30x redirects should be followed, however redirection loops should be avoided. Responses (successful or otherwise) to the /.well-known endpoint should be cached by the requesting server. Servers should respect the cache control headers present on the response, or use a sensible default when headers are not present. The recommended sensible default is 24 hours. Servers should additionally impose a maximum cache time for responses: 48 hours is recommended. Errors are recommended to be cached for up to an hour, and servers are encouraged to exponentially back off for repeated failures. The schema of the /.well-known request is later in this section. If the response is invalid (bad JSON, missing properties, non-200 response, etc), skip to step 4. If the response is valid, the m.server property is parsed as <delegated_hostname>[:<delegated_port>] and processed as follows: [skipped that part as it is not relevant here]
4. If the /.well-known request resulted in an error response, a server is found by resolving an SRV record for _matrix._tcp.<hostname>. This may result in a hostname (to be resolved using AAAA or A records) and port. Requests are made to the resolved IP address and port, using 8448 as a default port, with a Host header of <hostname>. The target server must present a valid certificate for <hostname>.
5. If the /.well-known request returned an error response, and the SRV record was not found, an IP address is resolved using AAAA and A records. Requests are made to the resolved IP address using port 8448 and a Host header containing the <hostname>. The target server must present a valid certificate for <hostname>.

Da /.well-known bei einer Standard https-Anfrage auf mein Netzwerk nicht gefunden werden kann, weil auf Port 443 eine Nextcloud läuft, sollte Nummer 5 ausgeführt werden. Ein A-record existiert, also sollte es eigentlich funktionieren.

 

gasoo
Level 3
11 von 13

Und bei Schritt 4 liegt wohl das Problem.

Da bei gewissen DNS Servern ein Servfail für den Eintrag _matrix._tcp.SERVER.internet-box.ch in der Antwort ist, könnte dies dazu führen, dass Schitt 5 nicht ausgeführt wird.

 

Das ist nur eine Vermutung, aber könnte durchaus sein.

 

Hier die Antwort des autoritativen DNS Servers von internet-box.ch:

 

 

 

; <<>> DiG 9.14.11 <<>> @195.186.157.48 _matrix._tcp.<SERVER>.internet-box.ch srv
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: ?51, id: 16243   <<<<<<<<<<<<<<< Fehlerhafter Status
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_matrix._tcp.<SERVER>.internet-box.ch. IN	SRV

;; AUTHORITY SECTION:
internet-box.ch.	300	IN	SOA	ns1.internet-box.ch. CMI-ABO\.APO.swisscom.com. 2015021601 36000 3600 1814400 300

;; Query time: 1 msec
;; SERVER: 195.186.157.48#53(195.186.157.48)
;; WHEN: Tue Apr 21 18:27:52 CEST 2020
;; MSG SIZE  rcvd: 127

 

 

 

 

Und hier die Antwort von einem Bind9 Server:

 

; <<>> DiG 9.14.10 <<>> @192.168.1.10 _matrix._tcp.<SERVER>.internet-box.ch srv
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 43114   <<<<<<<<<<<<< SERVFAIL!
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 26e93bf0bc244a3cb97fcf955e9f1e5fbbb42495d2dee19b (good)
;; QUESTION SECTION:
;_matrix._tcp.<SERVER>.internet-box.ch. IN	SRV

;; Query time: 33 msec
;; SERVER: 192.168.1.10#53(192.168.1.10)
;; WHEN: Tue Apr 21 18:25:03 CEST 2020
;; MSG SIZE  rcvd: 91
Tux0ne
Level 9
12 von 13

Hi @LinTux 

Habe nun auch einen Matrix Server aufgesetzt. Du hast recht, es braucht nicht zwingend einen SRV Eintrag den du mit dem DDNS Service von Swisscom eh nicht anlegen kannst. 
Da du aber diesen verwendest wird der Server ja zwingend unter dieser Adresse erreichbar sein (kein CNAME, ebenfalls nicht möglich...)

Daher kannst du eigentlich die Variante mit einem well-known Eintrag im Webserver machen. 

Ich habe meinen Server auf der Domain eingerichtet und daher einen SRV Eintrag angelegt.

 

Ich empfehle dir aber trotzdem eine eigene Domain für dein Anliegen zu lösen. Der DDNS Dienst von Swisscom ist nicht so zuverlässig wie er sollte. Probleme mit LE kann es ebenfalls geben. Wie gesagt kannst du den Servernamen danach auch nicht mehr einfach ändern. Das ist aktuell einfach nicht vorgesehen und du müsstest wieder von scratch beginnen. 

Falls deine Federation mal funktioniert kannst du mich unter @thomas:tuxone.ch mal einladen. 

Jeder ist beim Provider den er verdient
Jeder ist beim Provider den er verdient
LinTux
Level 1
13 von 13

Super, mit dem .well-known fuktioniert es (ich kann zumindest öffentlichen Räumen auf matrix.org beitreten)! Falls noch jemand das gleiche Problem hat, ich habe etwas ausführlichere Informationen beim GitHub Issue gepostet.

 

@Tux0ne: Ich werde dich gleich mal einladen um zu sehen, ob auch das funktioniert.

Nach oben