BOOTPROTO = yok | statik | dhcp ve /etc/resolv.conf


17

Diyor ne anlama geliyor BOOTPROTO=noneiçinde /etc/sysconfig/network-scripts/ifcfg-eth0dosyanın.

Eskiden orada olduğumu hatırlıyorum BOOTPROTO=staticve bize bir IPADDR=<x.x.x.x>an verilirse, sunucunun belirtilen IP adresi ile geleceğini söyleyen çok açık ve basitti . Benzer şekilde, BOOTPROTO=dhcpdinamik bir IP adresi almak için bir DHCP sunucusu arar. Redhat diyor ki:

 BOOTPROTO=protocol
    where protocol is one of the following:

        none — No boot-time protocol should be used.
        bootp — The BOOTP protocol should be used.
        dhcp — The DHCP protocol should be used.
  • IP'yi ifcfg-eth0 dosyasında belirtmezsek, bir DHCP sunucusu arayacak ve bir IP belirtilmişse, o statik IP'yi alacak mı?

  • IPADDR=BOOTPROTO yok olarak ayarlandığında bir IP adresi belirtilse bile bir DHCP sunucusu araması ve /etc/resolv.conf dosyasını değiştirmesi ihtimali nedir?

Bağlam: - Veri merkezlerini taşıdık ve sunucuların çoğunda IP adreslerini değiştirmek zorunda kaldık. /etc/resolv.confYeni DNS sunucularının IP adresleriyle değiştirilmiştik , ancak bazı nedenlerden dolayı bazı sunucularda /etc/resolv.confboşaltıldı veya eski DNS IP adresleri ortaya çıktı. Gelen /etc/init.d/networkkomut Ben aradığını görün /etc/sysconfig/network-scripts/network-functionsbu görevi yapar. Bu suçlu mu?

# Invoke this when /etc/resolv.conf has changed:
change_resolv_conf ()
{
    s=$(/bin/grep '^[\ \        ]*option' /etc/resolv.conf 2>/dev/null);
    if [ "x$s" != "x" ]; then
       s="$s"$'\n';
    fi;
    if [ $# -gt 1 ]; then
       n_args=$#;
       while [ $n_args -gt 0 ];
         do
            if [[ "$s" = *$1* ]]; then
               shift;
               n_args=$(($n_args-1));
               continue;
            fi;
            s="$s$1";
            shift;
            if [ $# -gt 0 ]; then
                s="$s"$'\n';
            fi;
            n_args=$(($n_args-1));
         done;
    elif [ $# -eq 1 ]; then
       if [ "x$s" != "x" ]; then
          s="$s"$(/bin/grep -vF "$s" $1);
       else
          s=$(cat $1);
       fi;
    fi;
    (echo "$s" > /etc/resolv.conf;) >/dev/null 2>&1;
    r=$?
    if [ $r -eq 0 ]; then
        [ -x /sbin/restorecon ] && /sbin/restorecon /etc/resolv.conf >/dev/null 2>&1 # reset the correct context
        /usr/bin/logger -p local7.notice -t "NET" -i "$0 : updated /etc/resolv.conf";
        [ -e /var/lock/subsys/nscd ] && /usr/sbin/nscd -i hosts; # invalidate cache
    fi;
    return $r;
}

Bu fonksiyon hangi sikluslar altında denir?

O ayarı biliyorum PEERDNSiçin nodeğiştirmesini /etc/resolv.conf önleyecektir, ancak, bir DHCP sunucusu rağmen arayan sunucumuz başlamıştı olmadığını bilmek istiyorum BOOTPROTOolarak ayarlandı nonebelirtildi ve bir IP adresi? evet ise, neden?

Sorunu tekrarlamak için sunucu sorunlarını birkaç kez yeniden başlattım, ancak içeriği /etc/resolv.confşimdi değişmiyor. İlk yeniden başlatma sırasında /etc/resolv.conf dosyasının değiştirilmesine ne sebep olabilirdi?

Kullanabilir miyiz BOOTPROTO=static? Kullanımdan kaldırıldığını okudum. Makinelerimizin tümü RHEL 6.5

Yanıtlar:


21

Eğer okursanız /etc/sysconfig/network-scripts/ifup-eth, ağ BOOTPROTOayarının dhcpveya olarak ayarlanmışsa DHCP kullandığını görürsünüz bootp, aksi takdirde kullanılmaz:

if ["${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then DYNCONFIG=true

Ayrıca, DYNCONFIGboş değilse (ve dhclientvarsa) komut dosyaları DHCP kullanmaya çalışır, aksi takdirde statik IP adresleme denenir.

Kullanılması grep -r BOOTPROTO *içinde /etcsen bir şey kullanabilirsiniz düşündüren yukarıdaki pasajı dışında bir şey görünmüyor BOOTPROTOsürece yukarıdaki iki kişiden biri olmasın.

Kullanabilirsiniz BOOTPROTO=static, ancak desteklenmediği söylenirse, gelecekte böyle çalışacağını garanti edemezsiniz. Ayrıca, sorununuzda bir fark yaratmaz staticveya nonekomut dosyasının DHCP kullanmamasına neden olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.