Expiration du délai lors de la tentative du serveur de se contacter via HTTP

Hello tout le monde,

j’ai un soucis au niveau de mon routeur. Le message que m’envoie mon serveur Yunohost est le suivant :

“Expiration du délai lors de la tentative du serveur de se contacter via HTTP en utilisant son adresse IP publique (domaine domain.tld avec l’IP x.x.x.x). Vous rencontrez peut-être un problème d’hairpinning ou alors le pare-feu/routeur en amont de votre serveur est mal configuré.”

Je suis derrière un pfsense, est j’ai configuré une DMZ pour yuno. Qu’est-ce que j’ai bien pu oublier dans mes règles NAT ?

Merci à vous pour vos idées…

@+

Salut à toi,
Chez quel FAI es-tu abonné?
Ta box est-elle bien configurée en bridge?

Salut Benance,

je suis chez Bouygues, je n’ai pas de box… juste un pfsense derrière l’ONT à qui les serveurs dhcp de bouygues donnent une ip publique.

et quand tu ping ton serveur yunohost, il te répond? Si oui, il te répond quoi?

Avec un cUrl j’ai un “302 Found”

ok mais avec un ping?

1 Like

Il ne répond pas au ping sur l’adresse WAN depuis une adresse WAN.
Il répond au ping depuis mon LAN.
Il répond au ping depuis sa propre adresse privée sur la DMZ

Bon, c’est en partie résolu.
Je n’avais pas bien configuré le NAT 1:1 sur le pfsense. Comme quoi c’est un métier le réseau …
Si il y en a qui veulent des infos pour bypasser la bbox je suis donneur.

Pfsense supporte Upnp, il aurait été possible d’utiliser ça pour ouvrir correctement les choses je pense.

Bien vu @ljf
J’essaye de ne pas utiliser Upnp quand ça reste humainement compréhensible. Histoire de comprendre ce qui passe par mon firewall. Reflexe préhistorique

Par contre j’ai une autre erreur derrière :
> The DNS operation timed out after 30.0011918545 seconds
>
> “Traceback (most recent call last): File “/usr/lib/moulinette/yunohost/certificate.py”, line 388, in certificate_renew _check_domain_is_ready_for_ACME(domain) File “/usr/lib/moulinette/yunohost/certificate.py”, line 824, in _check_domain_is_ready_for_ACME if not _dns_ip_match_public_ip(public_ip, domain): File “/usr/lib/moulinette/yunohost/certificate.py”, line 847, in _dns_ip_match_public_ip return _get_dns_ip(domain) == public_ip File “/usr/lib/moulinette/yunohost/certificate.py”, line 838, in _get_dns_ip answers = resolver.query(domain, “A”) File “/usr/lib/python2.7/dist-packages/dns/resolver.py”, line 949, in query timeout = self._compute_timeout(start) File “/usr/lib/python2.7/dist-packages/dns/resolver.py”, line 858, in _compute_timeout raise Timeout(timeout=duration) Timeout: The DNS operation timed out after 30.0011918545 seconds
>
> Certificate renewing for domain.tld failed !”
Ca a l’air clairement lié au DNS, mais lequel ? Celui de yunohost ?

Ben comme ça je dirais que ton pfsense bloque les requêtes DNS…

Peux tu vérifier que tu es en mesure de résoudre des noms de domaines depuis ton serveur (en ssh) ?

ping wikipedia.org

Oui effectivement le ping ne répond pas. Par contre j’ai ouvert les ports 53 et 5353…

En UDP ou seulement en TCP ?

Que donne

dig A @9.9.9.9 wikipedia.org

5353 en UDP et le 53 TCP/UDP
J’ai une réponse pour le dig :
; <<>> DiG 9.10.3-P4-Debian <<>> A @9.9.9.9 wikipedia.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53360
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wikipedia.org. IN A

;; ANSWER SECTION:
wikipedia.org. 600 IN A 208.80.154.224

;; Query time: 18 msec
;; SERVER: 9.9.9.9#53(9.9.9.9)
;; WHEN: Thu Oct 11 20:48:18 CEST 2018
;; MSG SIZE rcvd: 58

qui n’est pas la même que # dig A @localhost wikipedia.org

; <<>> DiG 9.10.3-P4-Debian <<>> A @localhost wikipedia.org
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wikipedia.org. IN A

;; ANSWER SECTION:
wikipedia.org. 274 IN A 91.198.174.192

;; AUTHORITY SECTION:
wikipedia.org. 44704 IN NS ns1.wikimedia.org.
wikipedia.org. 44704 IN NS ns2.wikimedia.org.
wikipedia.org. 44704 IN NS ns0.wikimedia.org.

;; ADDITIONAL SECTION:
ns0.wikimedia.org. 747 IN A 208.80.154.238
ns1.wikimedia.org. 747 IN A 208.80.153.231
ns2.wikimedia.org. 747 IN A 91.198.174.239

;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Oct 11 20:52:07 CEST 2018
;; MSG SIZE rcvd: 170

Mon serveur est entièrement fonctionnel… Mail, nextcloud, xmpp … depuis n’importe ou sur le WAN.
C’est peut-être du à mes serveurs DNS ???

Bon je ne trouve pas, c’est un vrai casse tête.
Quelqu’un a une idée :confused:

J’ai l’impression que le DNS est en panne.

service dnsmasq status

Si il est éteint

service dnsmasq start
service dnsmasq status

Puis vérifie si le ping fonctionne

Lorsque tu ping, est-ce qu’il y a une sortie OU juste rien ne s’affiche ?

dnsmasq fonctionne :
dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-10-12 21:37:54 CEST; 5s ago
Process: 3881 ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf (code=exited, status=0/SUCCESS)
Process: 3930 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
Process: 3920 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
Process: 3917 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
Main PID: 3929 (dnsmasq)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/dnsmasq.service
└─3929 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,

oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 80.67.169.12#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 141.255.128.100#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 89.233.43.71#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 84.200.69.80#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 141.255.128.101#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 91.239.100.100#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 85.214.20.141#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: utilise le serveur de nom 89.234.141.66#53
oct. 12 21:37:53 domain.tld dnsmasq[3929]: lecture /etc/hosts - 4 adresses
oct. 12 21:37:54 domain.tld systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Je ne comprends rien comment yunohost peut m’indiquer :

Expiration du délai lors de la tentative du serveur de se contacter via HTTP en utilisant son adresse IP publique

Ensuite quand je ping il y a bien un probleme :
ping domain.tld
PING domain.tld(domain.tld (fe80::1e6f:65ff:fe25:d542%eth0)) 56 data bytes
64 bytes from domain.tld (fe80::1e6f:65ff:fe25:d542%eth0): icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from domain.tld (fe80::1e6f:65ff:fe25:d542%eth0): icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from domain.tld (fe80::1e6f:65ff:fe25:d542%eth0): icmp_seq=3 ttl=64 time=0.033 ms

puisque là ça fonctionne mais il prend l’ipv6,
Par contre si je ping l’IPv4 ça ne fonctionne pas…

Pourtant j’ai vérifié l’ipv6 n’est pas autorisée sur mes serveurs dhcp, il n’y a pas non plus d’entrées AAAA sur mes serveurs dns donc logiquement il trouve l’info en local.

J’ai résolu intégralement ce problème.
J’ai paramétré le mode NAT reflexion du routeur firewall pfsense sur NAT+proxy (NAT pur ça fonctionne aussi) mais surtout j’ai désactivé les règles du firewall qui autorisaient l’Ipv6 à l’intérieur des réseaux. Apparement pour le serveur (et lors du renouvellement des certificats Lets Encrypt) l’Ipv6 est choisie en priorité.