1

Debian никогда не использует адрес шлюза маршрутизатора в resolv.conf

Как я могу настроить Debian, чтобы (никогда не использовать маршрутизатор в качестве распознавателя доменного имени) не отображал адрес шлюза маршрутизатора (nameserver 192.168.1.1) в /etc/resolv.conf при перезагрузке компьютера или выполнении /sbin/dhclient?

Я использую только одну строку в /etc/dhcp/dhclient.conf

prepend domain-name-servers x.x.x.x,y.y.y.y,z.z.z.z;

Это мой файл /etc /network /interfaces:

 auto eth0 
 iface eth0 inet static

 address 192.168.1.170
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255
 getaway 192.168.1.1
 up route add -net default gw 192.168.1.1 netmask 0.0.0.0 eth0

 dns-nameservers x.x.x.x y.y.y.y z.z.z.z

Если я запускаю /sbin /dhclient /etc/init.d/networking restart

мой /etc/resolv.conf содержит:

nameserver x.x.x.x
nameserver y.y.y.y
nameserver z.z.z.z
nameserver 192.168.1.1

3 ответа3

2

Еще один момент: г ет способ 192.168.1.1 должен быть г ел путь 192.168.1.1 (который, вероятно , почему вы должны были добавить маршрут по умолчанию, чтобы получить что - нибудь работает?)

2

Прежде всего, пожалуйста, очистите вашу конфигурацию. Ваш интерфейс eth0 должен быть настроен со статическим IP-адресом или с DHCP? Если статический, почему вы используете dhclient? Если DHCP, почему /etc/network/interfaces перечисляет статические IP-параметры и iface eth0 inet static вместо iface eth0 inet dhcp? Кроме того, нет причин, по которым вам нужно было бы добавлять маршрут по умолчанию с помощью команды up route поскольку вы уже указали маршрут по умолчанию в качестве параметра gateway .

Теперь имейте в виду, что в соответствии с именем, prepend domain-name-servers добавляет DNS-серверы в список, который предоставляется DHCP-сервером. Это не заменяет их.

Я рекомендую вместо того, чтобы спрашивать dhclient о настройке серверов имен, которые вы хотите использовать, используйте вместо этого структуру resolvconf . resolvconf координирует все возможные источники информации о DNS-серверах (в том числе отдельные клиенты DHCP, работающие на одном или нескольких сетевых интерфейсах, локальные DNS-серверы, которые вы хотите использовать в качестве распознавателей, и статическую конфигурацию) и централизует создание единого связного /etc/resolv.conf . Это гораздо лучше, чем позволить нескольким различным элементам управлять /etc/resolv.conf и заставлять их топать друг друга, пытаясь это сделать.

Установите пакет resolvconf , если он еще не установлен. Это автоматически отключит dhclinent «s прямого отвод с файлом /etc/resolv.conf

Теперь ваше требование заключается в том, что вы не хотите использовать сервер (ы) имен, предоставляемый сервером DHCP, поэтому прокомментируйте строку, которая читает eth* в /etc/resolvconf/interface-order . Не забудьте также прокомментировать последнюю строку файла, которая гласит * , иначе eth0 все равно будет учитываться.

Затем вы хотите использовать набор статически подготовленных серверов имен. Так как они являются глобальными для системы (не связаны с состоянием, если какой-либо данный интерфейс), вы можете добавить их в качестве серверов имен на интерфейсе lo в /etc/network/interfaces:

iface lo inet loopback
    dns-nameservers x.x.x.x y.y.y.y z.z.z.z

И тогда, если ifdown lo; ifup lo чтобы активировать это.

0

Если вы можете избежать этого, вообще не используйте свой шлюз в качестве распознавателя.

Они общеизвестно глючат при проксировании DNS - см. RFC 5625.

У вас есть отлично работающий Linux-бокс - просто поместите копию BIND или, что еще лучше, "Unbound".

ObDisclaimer - я написал, что RFC.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .