Mehrere IPs an einem Interface

teisho

Well-Known Member
Hallo Zusammen,

Ich versuche gerade mehrere IP-Adressen einem Interface zuzuweisen, leider finde ich den Fehler nicht.
Es werden immer nur zwei Adressen zugewiesen obwohl es drei sein sollten.

/etc/rc.conf
Code:
defaultrouter="x.x.x.161"
ifconfig_em0="inet x.x.x.165 netmask 255.255.255.224"
ifconfig_em0_alias0="inet x.x.x.155 netmask 255.255.255.225" #rproxy
ifconfig_em0_alias1="inet x.x.x.153 netmask 255.255.255.225" #gitlab

# ifconfig
Code:
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=81249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER>
        ether 08:60:6e:45:db:5c
        inet x.x.x.165 netmask 0xffffffe0 broadcast x.x.x.191
        inet x.x.x.155 netmask 0xffffffe0 broadcast x.x.x.159
 
Deine Netzmaske bei den Aliasen ist seltsam. Der erste Alias liegt wie die Hauptadresse mit /27 an, aber das ist in _alias0 so nicht angegeben. Ich könnte mir fast vorstellen, dass ifconfig das zunächst für ein /27er hält und die Adresse anlegt, dann aber merkt, dass es doch keine ist und einen Fehler zurückliefert, der die weitere Ausführung unterbindet. Das ist aber ehrlich gesagt geraten.

Aliase sollten mit /32, also .255 am Ende angegeben werden, vor allem, wenn sie wie hier in einem anderen Netz sind.
 
Deine Netzmaske bei den Aliasen ist seltsam. Der erste Alias liegt wie die Hauptadresse mit /27 an, aber das ist in _alias0 so nicht angegeben. Ich könnte mir fast vorstellen, dass ifconfig das zunächst für ein /27er hält und die Adresse anlegt, dann aber merkt, dass es doch keine ist und einen Fehler zurückliefert, der die weitere Ausführung unterbindet. Das ist aber ehrlich gesagt geraten.

Aliase sollten mit /32, also .255 am Ende angegeben werden, vor allem, wenn sie wie hier in einem anderen Netz sind.
Also in der rc.conf habe ich /32 angegeben bei Alias 0 und 1, oder was meinst du?
Ifconfig zeigt trotzdem /27.
 
Nur geraten: Kann es an dem Kommentar am Zeilenende liegen? Ich schreibe die immer drüber.
 
Was Du gepostet hast ist keine gültige Bitmaske. Deine letzten acht Bits sind 11100001.

Genau. Die rechte Seite des Octets darf beim Subnetting nicht mit 1 enden und muss auf der linken Seite mit 1 beginnen, richtig?

Trotzdem interessanter Post, mir war gar nicht so bewußt, dass man einem Interface mehrere IP's zuweisen kann. Praktischer Anwendungsfall? Und wo liegt dabei der Unterschied zu einem "bridged device"?
 
Was Du gepostet hast ist keine gültige Bitmaske. Deine letzten acht Bits sind 11100001.
Ach verdammt, ihr habt ja recht! Wie konnte ich nur so blind sein. Da stand ja 225.
Trotzdem habe ich nach der Anpassung immer noch nicht das gewünschte Resultat.
Code:
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=81249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER>
        ether 08:60:6e:45:db:5c
        inet x.x.107.165 netmask 0xffffffe0 broadcast x.x.107.191
Führt zu gar keiner Adresse außer die Hauptadresse in ifconfig.
Code:
defaultrouter="x.x.107.161"
ifconfig_em0="inet x.x.107.165 netmask 255.255.255
ifconfig_em0_alias0="inet x.x.107.155 netmask 255.255.255.255" #rproxy
ifconfig_em0_alias1="inet x.x.107.153 netmask 255.255.255.255" #gitlab

Füge ich die Adressen per Hand und mit /27er oder /32er Subnet hinzu, werden sie verfügbar und auch geroutet.
Code:
ifconfig em0 inet x.x.107.155/27 alias
ifconfig em0 inet x.x.107.153/27 alias
 
Öhm, ist das ein Copy/Paste-Fehler oder hast du deine Hauptadresse wirklich nach 3/4 Netzmaske angeschnitten? :)

Genau. Die rechte Seite des Octets darf beim Subnetting nicht mit 1 enden und muss auf der linken Seite mit 1 beginnen, richtig?
Doch, darf sie und muss sie bisweilen auch. Es darf nur keine 0 davor stehen, egal an welche Position. Der Übergang ist sozusagen der "Cut". Das Netz kann nicht irgendwo enden und woanders weitergehen.
 
Achte mal auf den Kommentar von @lme und versuche die Kommentare zu entfernen.

Rob

Ja, sorry. Hatte ich ganz vergessen. Bringt leider nichts.
Habe das bei der IPv6-Adresskonfig permanent und da macht es keine Probleme.

Öhm, ist das ein Copy/Paste-Fehler oder hast du deine Hauptadresse wirklich nach 3/4 Netzmaske angeschnitten? :)
Copy&Paste :D

Code:
defaultrouter="x.x.107.161"
ifconfig_em0="inet x.x.107.165 netmask 255.255.255.224"
ifconfig_em0_alias0="inet x.x.107.155 netmask 255.255.255.255"
ifconfig_em0_alias1="inet x.x.107.153 netmask 255.255.255.255"
 
Kannst Du mal Deine gesamte rc.conf hier posten? Vielleicht ist es irgendetwas anders.
 
Kannst Du mal Deine gesamte rc.conf hier posten? Vielleicht ist es irgendetwas anders.
Das mach' ich doch glatt. Vielen Dank. :)
Code:
clear_tmp_enable="YES"
syslogd_flags="-ss"
sendmail_enable="NONE"
hostname="uruk"

defaultrouter="x.x.107.161"
ifconfig_em0="inet x.x.107.165 netmask 255.255.255.224"
ifconfig_em0_alias0="inet x.x.107.155 netmask 255.255.255.255"
ifconfig_em0_alias1="inet x.x.107.153 netmask 255.255.255.255"

cloned_interfaces="lo1"
ifconfig_lo1_alias0="inet 172.16.1.2 netmask 255.255.255.255"
ifconfig_lo1_alias1="inet 172.16.1.3 netmask 255.255.255.255"

ipv6_defaultrouter="fe80::1%em0"
ifconfig_em0_ipv6="inet6 xxxx:xxx:xxx:4394::2/64"
ifconfig_em0_alias0="inet6 xxxx:xxx:xxx:4394::f00 prefixlen 64"
ifconfig_em0_alias1="inet6 xxxx:xxx:xxx:4394::23 prefixlen 64"
ifconfig_em0_alias2="inet6 xxxx:xxx:xxx:4394::42 prefixlen 64"
ifconfig_em0_alias3="inet6 xxxx:xxx:xxx:4394::beef prefixlen 64"
ifconfig_em0_alias4="inet6 xxxx:xxx:xxx:4394::cafe prefixlen 64"

sshd_enable="YES"
ntpdate_enable="YES"
ntpd_enable="YES"

dumpdev="AUTO"
zfs_enable="YES"

pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
 
ifconfig_em0_alias0="inet x.x.107.155 netmask 255.255.255.255"
ifconfig_em0_alias0="inet6 xxxx:xxx:xxx:4394::f00 prefixlen 64"

Du überschreibst damit den Wert der Variable.

Ich würde es so gruppieren:
Code:
defaultrouter="x.x.107.161"
ipv6_defaultrouter="fe80::1%em0"

ifconfig_em0="inet x.x.107.165 netmask 255.255.255.224"
ifconfig_em0_ipv6="inet6 xxxx:xxx:xxx:4394::2/64"

ifconfig_em0_alias0="inet x.x.107.155 netmask 255.255.255.255"
ifconfig_em0_alias1="inet x.x.107.153 netmask 255.255.255.255"

ifconfig_em0_alias2="inet6 xxxx:xxx:xxx:4394::f00 prefixlen 64"
ifconfig_em0_alias3="inet6 xxxx:xxx:xxx:4394::23 prefixlen 64"
ifconfig_em0_alias4="inet6 xxxx:xxx:xxx:4394::42 prefixlen 64"
ifconfig_em0_alias5="inet6 xxxx:xxx:xxx:4394::beef prefixlen 64"
ifconfig_em0_alias6="inet6 xxxx:xxx:xxx:4394::cafe prefixlen 64"

Die rc.conf ist nur eine Sammlung von Variablen, es werden dort direkt keine Aktionen ausgeführt. Dies muss man im Hinterkopf behalten.

Rob
 
Du überschreibst damit den Wert der Variable.

Ich würde es so gruppieren:
Code:
defaultrouter="x.x.107.161"
ipv6_defaultrouter="fe80::1%em0"

ifconfig_em0="inet x.x.107.165 netmask 255.255.255.224"
ifconfig_em0_ipv6="inet6 xxxx:xxx:xxx:4394::2/64"

ifconfig_em0_alias0="inet x.x.107.155 netmask 255.255.255.255"
ifconfig_em0_alias1="inet x.x.107.153 netmask 255.255.255.255"

ifconfig_em0_alias2="inet6 xxxx:xxx:xxx:4394::f00 prefixlen 64"
ifconfig_em0_alias3="inet6 xxxx:xxx:xxx:4394::23 prefixlen 64"
ifconfig_em0_alias4="inet6 xxxx:xxx:xxx:4394::42 prefixlen 64"
ifconfig_em0_alias5="inet6 xxxx:xxx:xxx:4394::beef prefixlen 64"
ifconfig_em0_alias6="inet6 xxxx:xxx:xxx:4394::cafe prefixlen 64"

Die rc.conf ist nur eine Sammlung von Variablen, es werden dort direkt keine Aktionen ausgeführt. Dies muss man im Hinterkopf behalten.

Rob
Das hatte ich gar nicht mehr auf dem Schirm! Jetzt geht alles wie erwartet. Vielen Dank :)
 
Jau, die rc.conf ist einfach ein Shellscript, was von oben nach unten durchläuft. :)
 
Zurück
Oben