resolv.confのキーワードは大文字と小文字を区別しますか?

resolv.confのキーワードは大文字と小文字を区別しますか?

/etc/resolv.conf周りを見ながら、有効な形式に関する次の情報が見つかりました。

しかし、私はどこにも見つかりません。resolv.conf キーワード大文字と小文字を区別しないか、大文字と小文字を区別しません。みんな小文字だと思います。通常でも、必ずしもそうなんですか?大文字のサーバーを見つけたらバグですか?

Google検索が出ます。このフォーラムトピックここで、コード例は、キーワードが大文字と小文字であることを示すようです。存在する敏感。ただし、信頼できる文書へのリンクはありません。

/etc/resolv.confたとえば、キーワードは大文字と小文字を区別しますnameserverか?

ベストアンサー1

もちろん、glibcパーサーライブラリでは大文字と小文字を区別します。 MATCH関数では、strncmp(大文字と小文字の区別の比較)の代わりに(大文字と小文字の区別の比較)を使用します。strncasecmpglibc res_init.c

/etc/resolv.confこのコードはファイルの読み取りと解析を担当します。

#define MATCH(line, name) \
    (!strncmp(line, name, sizeof(name) - 1) && \
    (line[sizeof(name) - 1] == ' ' || \
     line[sizeof(name) - 1] == '\t'))

    if ((fp = fopen(_PATH_RESCONF, "rce")) != NULL) {
        /* No threads use this stream.  */
        __fsetlocking (fp, FSETLOCKING_BYCALLER);
        /* read the config file */
        while (fgets_unlocked(buf, sizeof(buf), fp) != NULL) {
        /* skip comments */
        if (*buf == ';' || *buf == '#')
            continue;
        /* read default domain name */
        if (MATCH(buf, "domain")) {
            if (haveenv)    /* skip if have from environ */
                continue;
            cp = buf + sizeof("domain") - 1;

また、クイック例では、ネームサーバーの代わりにNAMESERVERを使用してルックアップがどのように中断されるかを示します。

# cat /etc/resolv.conf
options timeout:2 attempts:5
; generated by /sbin/dhclient-script
search eu-west-1.compute.internal
nameserver 172.31.0.2
# getent hosts www.google.com
2a00:1450:400b:802::2004 www.google.com
# sed -i 's/nameserver/NAMESERVER/' /etc/resolv.conf
# getent hosts www.google.com
#

おすすめ記事