Comment définir DNS exclusivement pour un espace de noms réseau sous Linux


9

J'ai créé un espace de noms réseau sous Linux.

Je pensais qu'il y avait un fichier resolv.conf pour chaque espace de noms créé mais ce n'est pas le cas sur mon système. Je n'ai pas le chemin suivant /etc/netns/namespace_name/resolv.conf .. Le dossier netns n'existe pas.

Il n'y a qu'un seul resolv.conf (/etc/resolv.conf et un autre en miroir dans /run/resolv.conf). Toute modification de ce fichier affecte toutes les interfaces réseau. Existe-t-il un moyen d'utiliser différents DNS pour l'hôte et l'espace de noms?

Réponses:


11

Vous devez créer vous-même le répertoire / etc / netns / _namespace_name_ et y placer une version différente resolv.conf.


1
Serait /etc/netns/namespace-name/resolv.confutilisé automatiquement?
CMCDragonkai du

Et cela peut-il également être utilisé pour iptables?
CMCDragonkai

2
Il sera utilisé automatiquement car le chemin complet ci-dessus est monté par ip netnsliaison sur /etc/resolv.conf, comme expliqué dans la page de manuel d'ip netns man7.org/linux/man-pages/man8/ip-netns.8. html . Ainsi, à partir d'un espace de noms de réseau donné, /etc/resolv.conf est le fichier resolv.conf par espace de noms si et seulement si /etc/netns/namespace-name/resolv.conf a été créé. Sinon, une application verra le resolv.conf de la machine hôte, ce qui pourrait ne pas être le comportement souhaité.
Ricky Robinson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.