Page 1 of 1

DNS Update per API funktioniert nicht

Posted: Tue 11. Aug 2020, 07:43
by space2place
HI zusammen,
ich versuche gerade per API eine DNS Zone zu ändern bzw. zu erweitern.
Dazu habe ich, wie beschrieben die DNS Zone ausgelesen und die neuen Einträge unter dem Array "other" hinzugefügt. Anschließend dann alles wieder per API und Put gesendet.
Von der API erhalte ich auch einen "200", aber die komplette Zone wird auf Ihre Standards zurückgesetzt. Sogar die Einträge die ich in KeyHelp selbst gemacht habe sind verschwunden. Was mir auch aufgefallen ist, dass der Hinweis "geändert" nach dem PUT verschwindet obwohl in dem JSON String "is_custom_dns" auf "True" steht.

Hier mal das was ich an die API gesendet habe. Ich finde da keinen Fehler drin:

Code: Select all

{
	"is_custom_dns": true,
	"is_dns_disabled": false,
	"dkim_txt_record": "default._domainkey\tIN\tTXT\t( \"v=DKIM1; h=sha256; k=rsa; s=email; \"\n\t  \"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsehi0lmPQ4eynV+Uez5CopT8O9+g8bS/DZxZg9HCFT/SECXJJUTN2nwIOTEYeiFo+0/7wQsGxQkbr+Bc1f0ALewxdd7szupBi8mLDoDow+WBrONRxVBYHGtcZHuPrVr2kuHbige4JPJZPgqpQRf4VIDtK2kkHYQPkejVSlwJB9lISBtlLOYaoBw1buqQiWbjNljXgwak0s4YM/\"\n\t  \"ddQkqyN1Hxa9rMC0A8d7gC9kBY/XYx+mouklD7+UzRuisiXeRPBgA3hIaPNnXttxOFM/XvPsHLlGrj4JGODJ5XYPBgyh93lZxhkOMEO7aSrzgwsemEkDAavukP9kLQ9CChSr+KEQIDAQAB\" )",
	"records": 
	{
		"soa": 
		{
			"ttl": 86400, 
			"primary_ns": "ns.deb10-keyhelp.space2place.local.", 
			"rname": "support.space-2-place.de.", 
			"refresh": 14400, 
			"retry": 1800, 
			"expire": 604800, 
			"minimum": 3600
		}, 
		"other": 
		[
			{
				"host": "*", 
				"ttl": 86400, 
				"type": "A", 
				"value": "192.168.111.94"
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "A", 
				"value": "192.168.111.94"
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "MX", 
				"value": "10 mail"
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "NS", 
				"value": "ns.deb10-keyhelp.space2place.local."
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "NS", 
				"value": "ns2.deb10-keyhelp.space2place.local."
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "TXT", 
				"value": "\"v=spf1 a mx -all\""
			}, 
			{
				"host": "_dmarc", 
				"ttl": 86400, 
				"type": "TXT", 
				"value": "\"v=DMARC1; p=none\""
			}, 
			{
				"host": "default._domainkey", 
				"ttl": 86400, 
				"type": "TXT", 
				"value": "<DKIM_RECORD_VALUE>"
			}, 
			{
				"host": "test", 
				"ttl": "3600", 
				"type": "A", 
				"value": "192.168.111.199"
			}, 
			{
				"host": "sugar", 
				"ttl": "3600", 
				"type": "A", 
				"value": "123.123.123.45"
			}, 
			{
				"host": "yxcyxc", 
				"ttl": "3600", 
				"type": "MX", 
				"value": "10 mail.test.de.meine-zweite-seite.de."
			}, 
			{
				"host": "_sip._tcp.srvtest", 
				"ttl": "3600", 
				"type": "SRV", 
				"value": "10 20 1234 mail.test.de.meine-zweite-seite.de."
			}, 
			{
				"host": "spf", 
				"ttl": "3600", 
				"type": "SPF", 
				"value": "\"eafgaegfdgafadgadgfadg\""
			}, 
			{
				"host": "dkim", 
				"ttl": "3600", 
				"type": "TXT", 
				"value": "\"asdasdasd\""
			}
		]
	}
}
Ab dem Eintrag:

Code: Select all

{
				"host": "test", 
				"ttl": "3600", 
				"type": "A", 
				"value": "192.168.111.199"
			},
sind das die hinzugefügten Einträge.
Ich habe es mal als TXT Datei angehangen.. Vielleicht seh Ihr dann was falsch läuft.

Gruß
Sascha


Edit:
Was ich gerade noch geprüft habe. Sobald ich den PUT an die DomainID gesendet habe verschwindet der Eintrag in der Datenbank unter "domains_custom_dns".

Re: DNS Update per API funktioniert nicht

Posted: Tue 11. Aug 2020, 08:32
by Tobi
Warum hat denn der Wert "dkim_txt_record" Tabulatoren (\t) und Zeilenumbrüche (\n) ?
Muss das so sein?

Re: DNS Update per API funktioniert nicht

Posted: Tue 11. Aug 2020, 08:47
by space2place
Tobi wrote: Tue 11. Aug 2020, 08:32 Warum hat denn der Wert "dkim_txt_record" Tabulatoren (\t) und Zeilenumbrüche (\n) ?
Muss das so sein?
Das bekomme ich so von der API geliefert... HIer nochmal die Ausgabe von der API ohne das ich es bearbeitet habe

Code: Select all

Ausgabe von API:
{'is_custom_dns': True, 'is_dns_disabled': False, 'dkim_txt_record': 'default._domainkey\tIN\tTXT\t( "v=DKIM1; h=sha256; k=rsa; s=email; "\n\t  "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3K8YVTSsXty09HTnk5x+N0RYgWpqlMAbdyfXkg0a/GzLa8QFIesa5Uie+5ZkWLvPYhprBPuKDw3j0HEachtBaWOtn9iOZlH882cZ093NdeNXSvyP6qG7o7OeolkP0cJd9/1vS38UECD0Po1z6RNQOFH1SP1msBCCqxwNHx9cf3yoATypbHTh4mOWQsavQ3Mh2Q76yMaKfpnf5y"\n\t  "xflyuMgI8NeTWoUhv92guJV/V/1flWtIi7PBew3tP68qgzIJAiIYTMBzZG7PYCHNIowuToDR/2iCNxRXaPZqle8wMPm+AgjYAq9vnDTiztBd4CqYh9jFw6c+G9kvYPDkrpiCOfmQIDAQAB" )', 'records': {'soa': {'ttl': 86400, 'primary_ns': 'ns.deb10-keyhelp.space2place.local.', 'rname': 'support.space-2-place.de.', 'refresh': 14400, 'retry': 1800, 'expire': 604800, 'minimum': 3600}, 'other': [{'host': '*', 'ttl': 86400, 'type': 'A', 'value': '192.168.111.94'}, {'host': '@', 'ttl': 86400, 'type': 'A', 'value': '192.168.111.94'}, {'host': 'mein-eintrag-in-keyhelp', 'ttl': 86400, 'type': 'A', 'value': '123.123.123.123'}, {'host': '@', 'ttl': 86400, 'type': 'MX', 'value': '10 mail'}, {'host': '@', 'ttl': 86400, 'type': 'NS', 'value': 'ns.deb10-keyhelp.space2place.local.'}, {'host': '@', 'ttl': 86400, 'type': 'NS', 'value': 'ns2.deb10-keyhelp.space2place.local.'}, {'host': '@', 'ttl': 86400, 'type': 'TXT', 'value': '"v=spf1 a mx -all"'}, {'host': '_dmarc', 'ttl': 86400, 'type': 'TXT', 'value': '"v=DMARC1; p=none"'}, {'host': 'default._domainkey', 'ttl': 86400, 'type': 'TXT', 'value': '<DKIM_RECORD_VALUE>'}]}}

Re: DNS Update per API funktioniert nicht  [GELÖST]

Posted: Tue 11. Aug 2020, 09:13
by space2place
Also einen Fehler habe ich schon bei mir gefunden.. Denn wer lesen kann ist klar im Vorteil :roll:
If you want to enable DNS and insert custom DNS records with only one request, simply send your DNS records without the "is_dns_disabled" property being part of the request.
Also habe ich meinen API Request angepasst und entsprechend gesendet

Code: Select all

{
	"records": 
	{
		"soa": 
		{
			"ttl": 86400, 
			"primary_ns": "ns.deb10-keyhelp.space2place.local.", 
			"rname": "support.space-2-place.de.", 
			"refresh": 14400, 
			"retry": 1800, 
			"expire": 604800, 
			"minimum": 3600
		}, 
		"other": 
		[
			{
				"host": "*", 
				"ttl": 86400, 
				"type": "A", "value": "192.168.111.94"
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "A", 
				"value": "192.168.111.94"
			}, 
			{
				"host": "mein-eintrag-in-keyhelp", 
				"ttl": 86400, 
				"type": "A", 
				"value": "123.123.123.123"
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "MX", 
				"value": "10 mail"
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "NS", 
				"value": "ns.deb10-keyhelp.space2place.local."
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "NS", 
				"value": "ns2.deb10-keyhelp.space2place.local."
			}, 
			{
				"host": "@", 
				"ttl": 86400, 
				"type": "TXT", 
				"value": "\"v=spf1 a mx -all\""
			}, 
			{
				"host": "_dmarc", 
				"ttl": 86400, 
				"type": "TXT", 
				"value": "\"v=DMARC1; p=none\""
			}, 
			{
				"host": "default._domainkey", 
				"ttl": 86400, 
				"type": "TXT", 
				"value": "<DKIM_RECORD_VALUE>"
			}, 
			{
				"host": "test", 
				"ttl": "3600", 
				"type": "A", 
				"value": "192.168.111.199"
			}, 
			{
				"host": "sugar", 
				"ttl": "3600", 
				"type": "A", 
				"value": "123.123.123.45"
			}, 
			{
				"host": "yxcyxc", 
				"ttl": "3600", 
				"type": "MX", 
				"value": "10 mail.test.de.meine-zweite-seite.de."
			}, 
			{
				"host": "_sip._tcp.srvtest", 
				"ttl": "3600", 
				"type": "SRV", 
				"value": "10 20 1234 mail.test.de.meine-zweite-seite.de."
			},  
			{
				"host": "dkim", 
				"ttl": "3600", 
				"type": "TXT", 
				"value": "\"asdasdasd\""
			}
		]
	}
}
Jetzt funktioniert es auch...
Gruß
Sascha

Re: DNS Update per API funktioniert nicht

Posted: Tue 11. Aug 2020, 09:18
by Tobi
space2place wrote: Tue 11. Aug 2020, 08:47 Das bekomme ich so von der API geliefert
Ah, O.K.
Damit hatte ich mich noch gar nicht befasst.
space2place wrote: Tue 11. Aug 2020, 09:13 Jetzt funktioniert es auch
Bestens!

Re: DNS Update per API funktioniert nicht

Posted: Wed 12. Aug 2020, 10:32
by Alexander
Tobi wrote: Tue 11. Aug 2020, 08:32 Warum hat denn der Wert "dkim_txt_record" Tabulatoren (\t) und Zeilenumbrüche (\n) ?
Muss das so sein?
Hallo,

Die stören prinzipiell nicht, es sieht allerdings im ersten Moment unschön / kaputt aus ;). Habe sie soeben entfernt, so dass die API den Wert künftig ohne \t und \n zurück gibt.
Innerhalb der KeyHelp-UI (DNS-Editor / Domainübersicht) - wo man sich den DKIM ebenfalls herauskopieren kann sind sie somit natürlich auch entfernt.