gai.conf - Linux


Overview

gai.conf is a configuration file in Linux that stores global DNS settings for the GNU C Library (glibc). It allows administrators to specify DNS servers, search domains, and other DNS-related options for the system, ensuring consistent DNS resolution behavior across applications.

Syntax

# syntax: name value
# name = "name"
# value = either "string" or "number"
#
# Any entry may be followed by '#' and comment text.
#
# The file must not contain lines consisting solely of '#' and comment text.
search example.com otherdomain.com
nameserver 8.8.8.8
nameserver 1.1.1.1
options ndots:5

Options/Flags

| Option | Description | Default Value |
|—|—|—|
| search | Specifies up to six DNS search domains. | unset |
| nameserver | Sets the primary and secondary DNS servers. | unset |
| domain | Sets the default domain for unqualified hostnames. | unset |
| broadcast | Enables broadcasting DNS queries. | off |
| ndots | Specifies the number of dots in a name before a search is performed. | 1 |
| inet6 | Enables IPv6 DNS resolution. | off |
| timeout | Sets the timeout for DNS queries in seconds. | 5 |
| attempts | Number of retries for failed queries. | 2 |
| rotate | Rotates between configured DNS servers. | off |
| edns0 | Enables EDNS0 support for larger DNS packets. | off |
| ip6-bytestring | Specifies the format of IPv6 addresses in DNS requests. | unset |

Examples

Configure primary and secondary DNS servers:

nameserver 8.8.8.8
nameserver 1.1.1.1

Specify search domains:

search domain1.com domain2.com

Enable broadcasting DNS queries:

broadcast on

Increase timeout for DNS queries:

timeout 10

Common Issues

  • Unresolved hostnames: Ensure that the correct DNS servers are configured and that the network is configured to use the system DNS settings.
  • Slow DNS resolution: Check the configured DNS servers for performance issues or consider using a different DNS provider.
  • DNS conflicts: If multiple DNS servers are configured, ensure that they provide consistent information.

Integration

Combine with resolvectl: Configure DNS settings dynamically using the resolvectl command.

resolvectl config
resolvectl status

Use with DHCP: The DHCP server can provide DNS settings to clients. Configure gai.conf to use the DHCP-provided DNS settings.

dhclient -r
dhclient

Related Commands

  • resolv.conf: Stores DNS settings specific to a network interface.
  • nslookup: Looks up DNS records for a specified hostname or IP address.
  • dig: A more advanced DNS lookup tool with additional options.