Jail und sysctl: unknown oid 'net.inet6.ip6.auto_linklocal'

openbsdnoob

Active Member
Hallo,

ich wollte gestern auf einem bestehenden Freebsd-Server (6.2 Prerelease) ein neues Jail hinzufuegen (2 Jails rennen schon auf der Maschine ohne Probleme)...habe also die Quellen geupdatet und ein
Code:
make world DESTDIR=/pfad/zum/Jailordner
ausgefuehrt...danach noch ein
Code:
make distribution DESTDIR=/Pfad/zum/Jailordner

hat soweit alles gut geklappt, ich habe dann noch die noetigen Konfigurationen am Host-System und dem neuen Jail gemacht (rc.conf usw auf Host und Jail angepasst) und habe den Server dann neu gestartet.

Dabei trat folgende Fehlermeldung auf:
Code:
sysctl: unknown oid 'net.inet6.ip6.auto_linklocal'
rl0: link state changed to DOWN

Auf dem Host und den beiden anderen Jail laufen alle Dienste (ssh http usw), in dem neuen Jail laeuft sendmail aber ssh will er nicht starten.

Weiss da jemand Rat? Ich steh hier grad ein bischen auf dem Schlauch :-)
 
hast Du das jail einmal mit hand gestartet gehbat um die ssh_host_keys zu generieren? Wie auch die aliasdb?

Und warum überhaupt ein reboot?
Reicht ein /etc/rc.d/jail start <jail> nicht aus?
Oder einfach mal mit JAIL(8) per Hand starten und schauen was er einem auswirft?
 
Ich habe jetzt mal das Jail per
Code:
jail /jails/mailjail xxxx.xxx.de 192.168.20.16 /bin/sh /etc/rc
gestartet.

Ausgabe:
Code:
Loading configuration files.
sysctl: unknown oid 'net.inet6.ip6.auto_linklocal'
Creating and/or trimming log files:.
ln: /dev/log: Operation not permitted
Starting syslogd.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
Starting local daemons:.
Updating motd.
Starting cron.
Local package initialization:.
Raising kernel security level:
kern.securelevel: -1 -> 3

2.Versuch
Code:
jail /jails/mailjail xxx.xxx.de 192.168.20.16 /bin/sh

In diesem Fall :
Code:
:/etc# newaliases
/etc/mail/aliases: 28 aliases, longest 20 bytes, 299 bytes total
/etc# /etc/rc.d/sshd start
/etc# ps -aux
USER   PID %CPU %MEM   VSZ   RSS  TT  STAT STARTED      TIME COMMAND
root  1226  0.0  0.2  1692  1208  p0  SJ   11:04AM   0:00.01 /bin/sh
root  1245  0.0  0.2  1396   908  p0  R+J  11:07AM   0:00.00 ps -aux

So wie es aussieht will ssh wohl da auch net :/
 
Zuletzt bearbeitet:
Kannst Du mal bitte deine rc.conf vom jail Zeigen?
Hast Du vorher auch das jaildev gemountet?
 
rc.conf von der Jail:
Code:
rpcbind_enable="NO"
network_interfaces=""
syslogd_enable="YES"
syslogd_program="/usr/sbin/syslogd"
syslogd_flags="-ss"
hostname="mail.noju.de"
font8x8="iso15-8x8"
font8x14="iso15-8x14"
font8x16="iso15-8x16"
scrnmap="NO"
keymap="german.iso"
sshd_enable="YES"
sshd_flags="-p 2228"
sendmail_enable="NO"
kern_securelevel_enable="YES"
kern_securelevel="3"

rc.conf vom Host:
Code:
defaultrouter="192.168.20.10"
hostname="yyy.yyy.de"
ifconfig_rl0="inet 192.168.20.12  netmask 255.255.255.0"
ifconfig_rl0_alias0="inet 192.168.20.14  netmask 255.255.255.255"
ifconfig_rl0_alias1="inet 192.168.20.15  netmask 255.255.255.255"
ifconfig_rl0_alias2="inet 192.168.20.16  netmask 255.255.255.255"
keymap="german.iso"
moused_enable="NO"
moused_type="NO"
sshd_enable="YES"
sshd_flags="-p 2223"
usbd_enable="YES"
auditd_enable="YES"
bthidd_enable="NO"
syslogd_flags="-s -s"
syslogd_flags="-b 192.168.20.12"
sendmail_enable="NO"
jail_enable="YES"
jail_list="myjail myjail2 myjail3"
jail_set_hostname_allow="NO"
jail_sysvipc_allow="NO"
jail_socket_unixiproute_only="YES"
jail_sysvipc_allow="NO"
jail_stop_jailer="NO"
jail_myjail_rootdir="/jails/www"
jail_myjail_hostname="x.x.de"
jail_myjail_ip="192.168.20.14"
jail_myjail_exec="/bin/sh /etc/rc"
jail_myjail_devfs_enable="YES"
jail_myjail_devfs_ruleset="devfsrules_jail"
jail_myjail_mount_enable="NO"
jail_myjail2_rootdir="/jails/mywww"
jail_myjail2_hostname="xx.xx.de"
jail_myjail2_ip="192.168.20.15"
jail_myjail2_exec="/bin/sh /etc/rc"
jail_myjail2_devfs_enable="YES"
jail_myjail2_devfs_ruleset="devfsrules_jail"
jail_myjail2_mount_enable="NO"
jail_myjail3_rootdir="/jails/mailjail"
jail_myjail3_hostname="xxx.xxx.de"
jail_myjail3_ip="192.168.20.16"
jail_myjail3_exec="/bin/sh /etc/rc"
jail_myjail3_devfs_enable="YES"
jail_myjail3_devfs_ruleset="devfsrules_jail"
jail_myjail3_mount_enable="NO"

Code:
:~# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ar0s1a    496M     53M    403M    12%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ar0s1g     39G    2.4G     33G     7%    /jails
/dev/ar0s1e    496M     24M    432M     5%    /tmp
/dev/ar0s1f     19G    2.2G     16G    12%    /usr
/dev/ar0s1d    9.7G     36M    8.9G     0%    /var
devfs          1.0K    1.0K      0B   100%    /jails/www/dev
devfs          1.0K    1.0K      0B   100%    /jails/mywww/dev
devfs          1.0K    1.0K      0B   100%    /jails/mailjail/dev
 
Mal abgesehen davon das mir securelevel im Jail neu ist und mir der Sinn auch nicht erschliesset, beschleicht mich das Gefühl das dein Jail nicht mit dem Host synct ist.

Du sagtest neue Sourcen geladen?
Auch gebaut?
Dann auch das Hostsytem damit versorgt?
(Nicht die anderen Jails dann vergessen.)

Edit: ich sehe gerade in der Manpage (dange grunix ;-) das securelevel tatsächlich geht.
 
Zuletzt bearbeitet von einem Moderator:
Sollte ein "make world" nicht erst bauen und dann installieren?

Das Hostsystem habe ich vor 2 Tagen neu gebaut und installiert...
aber um sicher zu gehn bau ich grad die World beim Host neu ...mal sehn ob das etwas bringt
 
Ich habe jetzt die World mal neugebaut fuer den Host und sie auch installiert...leider kommt diese Fehlermeldung immer noch und in dem neuen Jail will ssh nicht hochfahren...

auf die Fragen von asg:
jls sagt mir das die neue Jail laeuft und devfs is in die Jail gemountet

auf die Frage von mark05:
nich das ich wuesste

Inhalt der sysctl.conf vom Host:
Code:
security.jail.set_hostname_allowed=0
security.jail.socket_unixiproute_only=1
security.jail.sysvipc_allowed=0
security.jail.allow_raw_sockets=0
#security.jail.getfsstatroot_only=1

die sysctl.conf im Jail ist leer.
 
Nein der Port wird sonst wo nicht verwendet...die andren Jails und der Host hoeren mit ihrem ssh auf andren Ports ...

Allerdings hab ich jetzt einfach mal das frischgebaute Hostsystem per
Code:
make installworld DESTDIR=/jails/mailjail/

auch in das Jail installieren lassen und auf einmal gehts :-)

Leider kommt die Fehlermeldung(sysctl: unkown oid usw.) beim Starten des Host immernoch und taucht auch im "/var/log/console.log" des Jails auf (nur dem neuen Jail, im alten Jail sagt die "console.log" nichts dazu)

Hier ist mal die make.conf die ich sonst fuer den Bau von Jails verwende:
Code:
NO_ACPI= true
NO_BOOT= true
NO_BLUETOOTH= true
NO_FORTRAN= true
NO_GDB= true
NO_GPIB= true
NO_I4B= true
NO_IPFILTER= true
NO_PF= true
NO_AUTHPF= true
NO_KERBEROS= true
NO_LPR= true
NO_MAILWRAPPER=true
NO_MODULES= true
NO_NETCAT= true
NO_NIS= true
NO_SHAREDOCS= true
NO_USB= true
NO_VINUM= true
NO_ATM= true
NO_CRYPT= true
NO_GAMES= true
NO_INFO= true
NO_MAN= true
NO_PROFILE= true
NO_BIND= true
NO_BIND_DNSSEC= true
NO_BIND_ETC= true
NO_BIND_LIBS_LWRES= true
NO_BIND_MTREE= true
NO_BIND_NAMED= true

Habe sie nach dem Vorbild von asg's PDF erstellt und hat bei den bei den anderen 2 Jails wunderbar funktioniert...zum Bauen des Host-systems verwende ich eine andere "make.conf" wo nicht so viele "NO_.." drin sind^^
 
Wie mache ich das ?
Wenn es ein Blankes nicht aktualisiertes Jail ist, brauchst Du das natürlich nicht.
Ansonsten `man mergemaster` ;-)

DESTDIR als Umgebungsvariable oder -D

Wegen dem IP6 Problem:
Such mal im Jail nach dem Zeug wo das vorkommt:
`find . -type f -exec grep -q 'net.inet6.ip6.auto_linklocal' {} \; -print`
 
hier mal die Ausgabe von deinem Befehl paefchen :
Code:
find . -type f -exec grep -q 'net.inet6.ip6.auto_linklocal' {} \; -print
./jails/mailjail/etc/rc.d/auto_linklocal
./jails/mailjail/var/log/console.log
./usr/src/etc/rc.d/auto_linklocal
./usr/src/sbin/ifconfig/ifconfig.8
./usr/src/sys/netinet6/in6_proto.c
./usr/home/shinzu/.bash_history
./usr/doc/ja_JP.eucJP/man/man8/ifconfig.8
./etc/rc.d/auto_linklocal

kann ich keider net viel anfangen damit :/
 
Hi :)

Ich wuerde mal testweise diese Datei entfernen:
./jails/mailjail/etc/rc.d/auto_linklocal

Das habe ich mal gemacht und siehe da die Fehlermeldung ist weg ....aber kann mir mal bitte jemand erklaeren wozu ich diese Datei brauche, was dadurch nicht mehr funktionieren koennte? Ein bischen Hintergrundwissen kann ja nicht schaden :-)
 
OK ich hab mir die Besagte Datei mal angeschaut.

Da wird nichts anderes gemacht als net.inet6.ip6.auto_linklocal auf 1 zu setzen wenn ipv6_enable="no" gesetzt ist.
Default ist es auf "no", was Du in deiner rc.conf nicht überschrieben hast. Also setzt er es auf 1.
Was mich jetzt wundert ist:
a) warum existiert "net.inet6.ip6.auto_linklocal" nicht (oder nur im jail nicht?)
b) warum meckert nur die Jail (habe die anderen jails die Datei nicht?)
c) Wenn bei dir sysctl net.inet6.ip6.auto_linklocal wirklich nicht exisiert, wo dran liegt das? hast Du vielleicht den Kernel ohne IPv6 Support gebacken?
Das würde die Meldung erklären und Du kannst sie mit besten gewissen ignorieren oder entfernen.

find . -type f -exec grep -q 'net.inet6.ip6.auto_linklocal' {} \; -print

Suche dort wo ich stehe alle Dateien vom Type File, Drusche die nach "'net.inet6.ip6.auto_linklocal" und wenn was gefunden wurde gebe sie mir aus ;-)
 
Also den Kernel und World hab ich mit ohne IPv6-Support gebastelt...nun habe ich nur den Host und das neue Jail mit der neuen World versorgt, da die andern beiden Jail ja auch so laufen ("never change..." usw. :) )

Damit haette sich das Thema von meiner Seite her erledigt...Ich danke fuer die Antworten und Anregungen...bis zum naechsten Problem :)

Markus
 
Also wenn er vor dem installieren der Jail die Quellen upgedated hat, dann hat er natürlich eine neuere Jail als Kernel. IPv6 Auto Link-Local Zeugs wurde erst ganz frisch MFCd. Das neue rc-Skript versucht einfach eine sysctl zu setzen, die der Kernel noch nicht kennt.

Bei RELENG_6_* Systemen passiert einem sowas selten, aber im MFC Wahnsinn kurz vor einem Release sollte man auf sowas immer achten.

@paefchen: Sinn des securelevels in Jails? Ein Feature von Jails ist die Tatsache, dass du innerhalb der Jail einen anderen Securelevel als auf dem Host fahren kannst. Der Host is auf -1 und die Jails auf 1. Somit kannst du zB die logfiles in der Jail auf 'append-only' setzen und die log-rotation vom Host aus erledigen - dieser kann das flag auf level -1 aufheben und wieder setzen.
 
Zuletzt bearbeitet:
Das neue rc-Skript versucht einfach eine sysctl zu setzen, die der Kernel noch nicht kennt.

Nicht mehr kennt. ;-) er hat ein 6.2er Kernel nur ohne IPv6 Support.
(Hier stellt sich für mich die Frage ob man in Zukunft das im rc Sytem prüfen könnte um der Meldung in so einem Fall aus dem Weg zu gehen?)

@paefchen: Sinn des securelevels in Jails? Ein Feature von Jails ist die Tatsache, dass du innerhalb der Jail einen anderen Securelevel als auf dem Host fahren kannst. Der Host is auf -1 und die Jails auf 1. Somit kannst du zB die logfiles in der Jail auf 'append-only' setzen und die log-rotation vom Host aus erledigen - dieser kann das flag auf level -1 aufheben und wieder setzen.

Danke Elessar.
 
Zurück
Oben