PREFIX versus NETMASK

7

Ich habe in Centos 6 eine virtuelle Netzwerkschnittstelle eingerichtet, indem ich ifcfg-eth0 nach ifcfg-eth0: 1 kopiert und die entsprechenden Variablen geändert habe. Aber die Verbindung war instabil. Obwohl eine der bereits vorhandenen Variablen war, musste PREFIX=24ich das NETMASK=255.255.255.0Skript für die virtuelle Schnittstelle hinzufügen , um die Verbindung stabil zu machen. Sollten diese Variablen nicht den gleichen Effekt haben?

BEARBEITEN:

Dies ist ifcfg-eth0: 1 instabil:

DEVICE="eth0:1"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=00:26:18:24:4D:xx
TYPE=Ethernet
BOOTPROTO=none
IPADDR=69.64.93.x
PREFIX=24
GATEWAY=64.150.183.1
DNS1=69.64.66.11
DNS2=69.64.66.10
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0:1"

Im Stall habe ich gerade diese Zeile hinzugefügt:

NETMASK=255.255.255.0

ifconfig Ausgabe mit instabilem zuerst und stabil nach:

eth0:1    Link encap:Ethernet  HWaddr 00:26:18:24:4D:xx  
          inet addr:69.64.93.x  Bcast:69.255.255.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:28 Base address:0x6000 

eth0:1    Link encap:Ethernet  HWaddr 00:26:18:24:4D:xx  
          inet addr:69.64.93.x  Bcast:69.64.93.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:28 Base address:0x6000 
Clodoaldo
quelle
1
Was ist die Ausgabe von ip addr showund ip route showmit zwei verschiedenen Konfigurationen? Gibt es einen Unterschied?
Zoredache
Ich möchte die Konfiguration nicht erneut berühren, da dies ein Produktionsserver ist und ich nicht weiß, wie sich dies auf die reale Schnittstelle auswirkt. ifconfigvor und nach dem Hinzufügen NETMASKzeigte 255.0.0.0 bzw. 255.255.255.0 als Maske der virtuellen Schnittstelle.
Clodoaldo
@ Zoredache Gerade bearbeitet. Ich hatte bereits das offensichtliche Problem und habe es behoben. Meine Frage ist, ob es einen Unterschied zwischen diesen genannten Variablen gibt.
Clodoaldo

Antworten:

5

Das Problem ist wahrscheinlich, dass die von Ihnen verwendete IP-Adresse ipcalc verwirrt, wenn versucht wird, das NETMASK zu erraten. Betrachten der Netzwerkskripte:

/etc/sysconfig/network-scripts/network-functions:
    133 expand_config ()
    134 {
    135     if [ -z "${NETMASK}" ]; then
    136         eval `/bin/ipcalc --netmask ${IPADDR}`
    137     fi
    138 
    139     if [ -z "${PREFIX}" ]; then
    140         eval `/bin/ipcalc --prefix ${IPADDR} ${NETMASK}`
    141     fi
    142 
    143     if [ -z "${BROADCAST}" ]; then
    144         eval `/bin/ipcalc --broadcast ${IPADDR} ${NETMASK}`
    145     fi
    146 
    147     if [ -z "${NETWORK}" ]; then
    148         eval `/bin/ipcalc --network ${IPADDR} ${NETMASK}`
    149     fi
    150 }

Angenommen, Sie verwenden den Speicherplatz 10.0.0.0, der sich technisch in a / 8 befindet, wenn Sie dies ipcalc geben:

# /bin/ipcalc --netmask 10.34.102.1 
NETMASK=255.0.0.0

Sie können testen, ob dies das Problem war, indem Sie Ihre Adresse dort eingeben und prüfen, ob sie den Wert zurückgibt, den Sie als NETMASK erwartet haben. Persönlich denke ich, dass dies wirklich ein Fehler in CentOS ist. Wenn NETMASK null ist, aber PREFIX angegeben ist, sollte es verwendet werden, um NETMASK festzulegen.

Polynom
quelle
Ja, ich erhalte die falsche Netzmaske: # /bin/ipcalc --netmask 69.64.93.x NETMASK=255.0.0.0Aber die IP der realen Schnittstelle, von der das Skript kopiert wurde, erhält auch eine falsche Netzmaske von ipcalc, aber die Ausgabe von ifconfig ist korrekt.
Clodoaldo