Forum Linux.général dnsmasq + multiples vlan = pb de résolution DNS externe

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
25
mai
2014

Bonjour,

J'ai un problème pénible que je n'arrive pas à résoudre.
J'ai mis en place un petit routeur firewall avec dnsmasq + opendns depuis un petit moment. Je n'utilisais que 2 ports ethernet pour mon besoin et là j'en rajoute un 3ème (pour une dmz) :
- eth1 pour l'accès internet (192.168.1.0/24)
- eth0 pour le réseau local (domaine home) (192.168.0.0/24)
- eth2 pour la dmx (domaine dmz) (192.168.2.0/24)

J'ai configuré mes règles iptables, tout fonctionne comme je veux, le réseau local accède à internet et aux machines de la dmz.
Dnsmasq fonctionnait parfaitement bien avant que je n'ajoute ce nouveau VLAN dmz.

Le service dhcp de dnsmasq fonctionnent pour mes 2 VLAN (home et dmz)
Le service dns et la résolution interne/externe fonctionne le vlan local (home)
Par contre sur le vlan dmz pas moyen de faire des résolutions externes. Il suffixe toutes les résolutions de domaines externes par le domaine de mon lan local (home)

Ping depuis une machine de ma DMZ
root@serv1:# ping google.com
PING google.com (173.194.41.67) 56(84) bytes of data.
64 bytes from lhr08s01-in-f3.1e100.net (173.194.41.67): icmp_req=1 ttl=50 time=41.5 ms
64 bytes from lhr08s01-in-f3.1e100.net (173.194.41.67): icmp_req=2 ttl=50 time=38.5 ms
64 bytes from lhr08s01-in-f3.1e100.net (173.194.41.67): icmp_req=3 ttl=50 time=49.6 ms

Logs de dnsmasq
dnsmasq: query[A] google.com from 192.168.2.2
dnsmasq: forwarded google.com to 208.67.222.222
dnsmasq: forwarded google.com to 208.67.220.220
dnsmasq: query[AAAA] google.com from 192.168.2.2
dnsmasq: forwarded google.com to 208.67.220.220
dnsmasq: reply google.com is 173.194.41.67
dnsmasq: reply google.com is 173.194.41.71
dnsmasq: reply google.com is 173.194.41.70
dnsmasq: reply google.com is 173.194.41.64
dnsmasq: reply google.com is 173.194.41.65
dnsmasq: reply google.com is 173.194.41.66
dnsmasq: reply google.com is 173.194.41.78
dnsmasq: reply google.com is 173.194.41.73
dnsmasq: reply google.com is 173.194.41.72
dnsmasq: reply google.com is 173.194.41.69
dnsmasq: reply google.com is 173.194.41.68
dnsmasq: reply google.com is 2a00:1450:4009:809::1007

Quand j'essaye de pinger google.fr, ca ne marche pas, il ajoute toujours mon domaine à google.fr . Pourquoi … je n'en sais rien
dnsmasq: query[A] google.fr.home from 192.168.2.2
dnsmasq: config google.fr.home is NXDOMAIN-IPv4
dnsmasq: query[AAAA] google.fr.home from 192.168.2.2
dnsmasq: config google.fr.home is NXDOMAIN-IPv6

Voici l'intégralité de mon fichier dnsmasq.conf
http://pastebin.com/4e40aSxi

Une petite aide ?
Merci d'avance

  • # etrange, et pas vraiment de piste mais...

    Posté par  . Évalué à 2.

    Par contre sur le vlan dmz pas moyen de faire des résolutions externes. Il suffixe toutes les résolutions de domaines externes par le domaine de mon lan local (home) pour les addresses en IPV4

    en fait si, puisque google.com est bien resolu
    par contre google.fr ne l'est pas :(

    par contre je vais dire une betise, mais apparemment, tu n'as pas precisé de DNS Forwarder, pour aller interroger quand ce n'est pas un domaine local (.home ou .dmz)

    • [^] # Re: etrange, et pas vraiment de piste mais...

      Posté par  . Évalué à 1.

      Mais pourquoi ça marche alors depuis mon vlan home ?

      Cette directive n'est elle pas suffisante ?

      resolv-file=/etc/resolv.opendns

      cat /etc/resolv.opendns
      nameserver 208.67.222.222
      nameserver 208.67.220.220

      • [^] # Re: etrange, et pas vraiment de piste mais...

        Posté par  . Évalué à 2.

        désolé je n'avais pas vu cette ligne là.

        ce qui est etrange, c'est que ca marche pour google.com mais pas pour google.fr depuis la meme machine (qui se trouve dans dmz) :(

        • [^] # Re: etrange, et pas vraiment de piste mais...

          Posté par  . Évalué à 1. Dernière modification le 25 mai 2014 à 16:52.

          Voici le log de lancement du service dnsmasq (pour info)

          # dnsmasq -d
          dnsmasq: started, version 2.66 cachesize 1000
          dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
          dnsmasq-dhcp: DHCP, IP range 192.168.2.1 -- 192.168.2.5, lease time 3d
          dnsmasq-dhcp: DHCP, IP range 192.168.0.1 -- 192.168.0.100, lease time 3d
          dnsmasq: using local addresses only for domain 2.168.192.in-addr.arpa
          dnsmasq: using local addresses only for domain 0.168.192.in-addr.arpa
          dnsmasq: using local addresses only for domain dmz
          dnsmasq: using local addresses only for domain home
          dnsmasq: ignoring nameserver 127.0.0.1 - local interface
          dnsmasq: reading /etc/resolv.opendns
          dnsmasq: using nameserver 208.67.220.220#53
          dnsmasq: using nameserver 208.67.222.222#53
          dnsmasq: using local addresses only for domain 2.168.192.in-addr.arpa
          dnsmasq: using local addresses only for domain 0.168.192.in-addr.arpa
          dnsmasq: using local addresses only for domain dmz
          dnsmasq: using local addresses only for domain home
          dnsmasq: read /etc/hosts - 11 addresses
          dnsmasq-dhcp: read /etc/ethers - 6 addresses
          • [^] # Re: etrange, et pas vraiment de piste mais...

            Posté par  . Évalué à 2.

            ca me semble bizarre cette double definition "local"
            mais je ne suis pas un expert en dnsmasq

            tu as essayé en desactivant les options relatives à la partie "home"
            pour voir si DMZ prend bien ses infos ?

            • [^] # Re: etrange, et pas vraiment de piste mais...

              Posté par  . Évalué à 1. Dernière modification le 25 mai 2014 à 18:29.

              J'ai viré toutes les références à dmz. Après tout, les machines de mes vlan font parties du même domaine…

              Par contre j'ai déplacé le serveur dans mon vlan et là ça marche…
              C'est clair y a un problème au niveau de mes ip rule ou au niveau du mon parfeu ou au niveau de dnsmasq… je penche plus pour dnsmasq
              Bon je cherche !! raaa qu'est-ce que le temps passe vite quand on galère

              • [^] # Re: etrange, et pas vraiment de piste mais...

                Posté par  . Évalué à 1.

                Mais pourquoi DNSmasq rajoute mon domaine à la fin de l'adresse depuis mon VLAN DMZ ???

                dnsmasq: query[A] mirrordirector.raspbian.org.home from 192.168.2.2
                dnsmasq: config mirrordirector.raspbian.org.home is NXDOMAIN-IPv4
                dnsmasq: query[AAAA] mirrordirector.raspbian.org.home from 192.168.2.2

                dnsmasq: query[A] mirrordirector.raspbian.org.home from 192.168.2.1
                dnsmasq: config mirrordirector.raspbian.org.home is NXDOMAIN-IPv4
                dnsmasq: query[AAAA] mirrordirector.raspbian.org.home from 192.168.2.1
                dnsmasq: config mirrordirector.raspbian.org.home is NXDOMAIN-IPv6

                • [^] # Re: etrange, et pas vraiment de piste mais...

                  Posté par  . Évalué à 2.

                  donc resumons,

                  ton DNSmasqd directement dans ta DMZ (et pas sur la passerelle) ca marche
                  ton DNSmasqd sur ta passerelle ou dans ton LAN, ca ne marche plus ?

                  • [^] # Re: etrange, et pas vraiment de piste mais...

                    Posté par  . Évalué à 1. Dernière modification le 25 mai 2014 à 19:37.

                    C'est exactement ce problème là : link

                    Non c'est pas tout à fait comme ça…

                    J'ai un firewall linux avec 3 interfaces réseaux :
                    - eth1, INET_IFACE
                    - eth0, LAN_IFACE
                    - eth2, DMZ_IFACE

                    Le firewall héberge les services suivants :
                    - dnsmasq
                    - le routage via de règles iptables et ip rules

                    Depuis mon LAN, tout fonctionne
                    Depuis ma DMZ vers mon LAN tout fonctionne et inversement
                    Depuis ma DMZ vers INET (donc internet) aucune des résolutions ne fonctionnent car il suffixe toutes les résolutions DNS par le nom de mon domaine local soit .home

                    • [^] # Re: etrange, et pas vraiment de piste mais...

                      Posté par  . Évalué à 2.

                      si ca marche parfaitement depuis le LAN vers internet,
                      copie.colle la config LAN sur la config DMZ (hormis le DHCP)

                      • [^] # Re: etrange, et pas vraiment de piste mais...

                        Posté par  . Évalué à 1.

                        Peut-être faut il que je découpe mon fichier de configuration et que je lance 2 instances de dnsmasq …. Une pour chaque sous réseau ?

                        • [^] # Re: etrange, et pas vraiment de piste mais...

                          Posté par  . Évalué à 2.

                          sur internet en 2011, c'est qu'on recommandait de faire,

                          une instance par interface (home et dmz)
                          chaque bind sur son interface reseau

                          mais ca n'aide pas pour les fichiers de definitions des machines.

                          • [^] # Re: etrange, et pas vraiment de piste mais...

                            Posté par  . Évalué à 1. Dernière modification le 25 mai 2014 à 21:51.

                            Ca ne marche pas.
                            Le service dnsmasq se met en écoute sur l'interface 127.0.0.1.
                            La deuxième instance refuse de se lancer

                            dnsmasq -C /etc/dnsmasq.dmz.conf
                            dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use

                            Et toujours ce problème de suffixe…

                            dnsmasq: query[A] google.fr.home from 192.168.2.2
                            dnsmasq: config google.fr.home is NXDOMAIN-IPv4
                            dnsmasq: query[AAAA] google.fr.home from 192.168.2.2
                            dnsmasq: config google.fr.home is NXDOMAIN-IPv6

                            • [^] # Re: etrange, et pas vraiment de piste mais...

                              Posté par  . Évalué à 2. Dernière modification le 25 mai 2014 à 22:04.

                              ben c'est peut-etre pour ca aussi que ca ne marche pas,

                              ton dnsmasq pour sa partie DNS devrait ecouter sur les interfaces 192.168.0.x et 192.168.2.x

                              et ca doit etre le cas avec la conf que tu as

                                  interface=eth0
                                  interface=eth2
                                  listen-address=192.168.0.254
                                  listen-address=192.168.2.254
                              

                              d'apres :
                              http://doc.ubuntu-fr.org/configuration_serveur_dns_dhcp

                              tu peux aussi regarder l'option
                              localise-query

                              il recommande aussi de ne pas utiliser l'option 6 pour preciser le DNS, le DHCP etant par defaut le DNS des postes.

                              • [^] # Re: etrange, et pas vraiment de piste mais...

                                Posté par  . Évalué à 1. Dernière modification le 25 mai 2014 à 22:33.

                                J'ai déjà vérifié. Le fichier de configuration de dnsmasq te permet de spécifier quelles interfaces il doit utiliser.
                                Et il faut bien qu'il y ait une résolution dns locale bien sur…

                                    root@zorglub:/etc/dnsmasq.d# netstat -natup |grep dnsmasq
                                    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5186/dnsmasq    
                                    tcp        0      0 192.168.0.254:53        0.0.0.0:*               LISTEN      5186/dnsmasq    
                                    tcp        0      0 192.168.2.254:53        0.0.0.0:*               LISTEN      5186/dnsmasq    
                                    udp        0      0 127.0.0.1:53            0.0.0.0:*                           5186/dnsmasq    
                                    udp        0      0 192.168.0.254:53        0.0.0.0:*                           5186/dnsmasq    
                                    udp        0      0 192.168.2.254:53        0.0.0.0:*                           5186/dnsmasq    
                                    udp        0      0 0.0.0.0:67              0.0.0.0:*                           5186/dnsmasq
                                • [^] # Re: etrange, et pas vraiment de piste mais...

                                  Posté par  . Évalué à 2.

                                  Et il faut bien qu'il y ait une résolution dns locale bien sur…

                                  ou pas,
                                  la passerelle n'a pas forcement besoin de connaitre les DNS internes,
                                  c'est peut-etre là ton soucis,

                                  tu demandes Google.fr depuis une interface, il ne connait, pas,
                                  il tente de resoudre sur lui meme (plutot que sur l'interface internet)

                                  • [^] # Re: etrange, et pas vraiment de piste mais...

                                    Posté par  . Évalué à 1.

                                    J'ai corrigé mon fichier il n'écoute plus sur l'interface locale pour tester

                                    listen-address=192.168.0.254
                                    listen-address=192.168.2.254

                                    netstat -natup |grep dnsmasq
                                    tcp 0 0 192.168.0.254:53 0.0.0.0:* LISTEN 5357/dnsmasq

                                    tcp 0 0 192.168.2.254:53 0.0.0.0:* LISTEN 5357/dnsmasq

                                    udp 0 0 192.168.0.254:53 0.0.0.0:* 5357/dnsmasq

                                    udp 0 0 192.168.2.254:53 0.0.0.0:* 5357/dnsmasq

                                    udp 0 0 0.0.0.0:67 0.0.0.0:* 5357/dnsmasq

                                    Mais le pb c'est que le routeur lui même ne fait plus les résolutions :-(

                                    listen-address=127.0.0.1
                                    listen-address=192.168.0.254
                                    listen-address=192.168.2.254

                                    Je suis obligé de rajouter l'adresse locale lol

                                    • [^] # Re: etrange, et pas vraiment de piste mais...

                                      Posté par  . Évalué à 2.

                                      Mais le pb c'est que le routeur lui même ne fait plus les résolutions :-(

                                      ton routeur doit avoir des DNS exterieurs dans son /etc/resolv.conf

                                      • [^] # Re: etrange, et pas vraiment de piste mais...

                                        Posté par  . Évalué à 1.

                                        Ca marche quand même

                                        cat /etc/resolv.conf
                                        domain home
                                        search home
                                        nameserver 127.0.0.1

                                        Tu spécifies un fichier global dans /etc/dnsmasq.conf
                                        resolv-file=/etc/resolv.opendns

                                        Et tu spécifies les interfaces dans le fichier de conf

                                        listen-address=127.0.0.1
                                        listen-address=192.168.0.254
                                        listen-address=192.168.2.254

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.