# resolv.conf

## nettasl

hallo,

ich habe gentoo, sobald ich den Server reboote, fehlen in der /etc/resolv.conf die namerver Einträge. kann sich dies jemand erklären?

Danke!

Gruß

Harald

----------

## Fauli

Wenn du DHCP benutzt, werden die Einträge in /etc/resolv.conf durch den DHCP-Client ersetzt. Verhindern kannst du das, indem du in /etc/conf.d/net für den DHCP-Client die Option -R angibst (siehe auch /etc/conf./net.example und man dhcpcd):

```
# /etc/conf.d/net

config_eth0=( "dhcp" )

dhcpcd_eth0="-R"
```

----------

## musv

Scheint (bei mir) nicht zu funktionieren:

```

hotplug_eth0="yes"

config_eth0=( "dhcp" )

dhcpd_eth0="-R"

dns_search_eth0="csn.tu-chemnitz.de hrz.tu-chemnitz.de informatik.tu-chemnitz.de"

```

```

 * Stopping eth0

 *   Bringing down eth0

 *     Stopping dhclient on eth0 ...                                      [ ok ]

 *     Shutting down eth0 ...                                             [ ok ]

 * Starting eth0

 *   Bringing up eth0

 *     dhcp

 *       Running dhclient ...                                             [ ok ]

 *       eth0 received address 134.109.84.67/23

```

```

# Generated by dhclient for interface eth0

search csn.tu-chemnitz.de

nameserver 134.109.102.249

nameserver 134.109.102.1

```

Ich kann mich noch dunkel erinnern, daß vor vielleicht 2 oder 3 Monaten die Searchreihenfolge ohne dhcpd="-R" auch bei dhcpd noch in der /etc/conf.d/net überschrieben werden konnte. Irgendwann gings dann einfach mal nicht mehr.

----------

## Fauli

dhcpcd_eth0="-R"

----------

## Genone

 *net.example wrote:*   

> # GENERIC DHCP OPTIONS
> 
> # Set generic DHCP options like so
> 
> #dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
> ...

 

dhcpcd_eth0 dürfte nicht viel bringen, da

 *Quote:*   

> # Generated by dhclient for interface eth0 

 

----------

## Fauli

 *Genone wrote:*   

> dhcpcd_eth0 dürfte nicht viel bringen, da
> 
>  *Quote:*   # Generated by dhclient for interface eth0  

 

OK, das stimmt. Dann müsste es dhclient_eth0 heißen.

Ob es auch mit dhcp_eth0 funktioniert, weiß ich nicht. Das dhcpd_eth0 von musv dürfte aber gar nicht gehen.

EDIT:

Aah, jetzt ist der Groschen gefallen:  :Idea: 

dhcp_eth0="nodns" entspricht dhcpcd_eth0="-R", aber bei dhclient einer ganz anderen Option, nämlich "-e PEER_DNS=no".

----------

## musv

ok, weiterprobiert:

```

config_eth0=( "dhcp" )

dhclient_eth0="-e PEER_DNS=no"

dns_search_eth0="csn.tu-chemnitz.de hrz.tu-chemnitz.de informatik.tu-chemnitz.de"

```

```

# Generated by net-scripts for interface eth0

search csn.tu-chemnitz.de hrz.tu-chemnitz.de informatik.tu-chemnitz.de

```

Die Search-Reihenfolge stimmt zwar jetzt. Allerdings fehlen jetzt leider auch die Name-Server.

----------

## Fauli

Das Netzwerk-Init-Skript schreibt die Such-Reihenfolge in /etc/resolv.conf. Mit der dhclient_eth0-Option bleibt diese Datei unverändert, es wird aber auch kein Nameserver eingetragen. Ohne dhclient_eth0 werden die Nameserver eingetragen, aber dabei geht die Such-Reihenfolge wieder verloren.  :Sad: 

In /etc/conf.d/net.example steht, dass in solchen Situationen das Paket resolvconf-gentoo helfen kann.

----------

## musv

Ich hab mal spaßenshalber ein bißchen gesucht, und bin dabei auf folgendes gestoßen:

```

make_resolv_conf() {

  if [ x$PEER_DNS = x ] || [ x$PEER_DNS = xyes ]; then

    if [ "x$new_domain_name" != x ] || [ "x$new_domain_name_servers" != x ]; the

n

      conf="# Generated by dhclient for interface $interface\n"

      if [ "x$new_domain_name" != x ]; then

        conf="${conf}search $new_domain_name\n"

      fi

      for nameserver in $new_domain_name_servers; do

        conf="${conf}nameserver $nameserver\n"

      done

      if [ -x /sbin/resolvconf ]; then

        echo -e "$conf" | resolvconf -a "$interface"

      else

        echo -e "$conf" > /etc/resolv.conf

        chmod 644 /etc/resolv.conf

      fi

    fi

  fi

...

```

Bin zur Zeit ziemlich im Streß, sonst würde ich vielleicht mal bissel rumexperimentieren, ob ich eventuell einen neuen Parameter noch einbauen könnte, um das Problem zu beheben. Aber für 'nen Bug-Report und die notwendingen Änderungen hinsichtlich Man-Page und anderer noch zu beachtender Sachen reichen meine Kenntnisse nicht unbedingt.

----------

