Browse Source

ipv6 autoconf on hosts (non-routers).

to do this,
1. in sysctl.conf, add these lines:
net.inet6.ip6.forwarding=0
net.inet6.ip6.accept_rtadv=1
2. in hostname.foo, add
rtsol
specifying two or more interfaces with "rtsol" may result in strange
behavior - ipv6 spec does not permit multi-interface node to be autoconfig'ed.
OPENBSD_2_7
itojun 25 years ago
parent
commit
fd9d65dd43
2 changed files with 20 additions and 3 deletions
  1. +17
    -1
      src/etc/netstart
  2. +3
    -2
      src/etc/sysctl.conf

+ 17
- 1
src/etc/netstart View File

@ -1,6 +1,6 @@
#!/bin/sh - #!/bin/sh -
# #
# $OpenBSD: netstart,v 1.55 2000/01/02 04:38:17 todd Exp $
# $OpenBSD: netstart,v 1.56 2000/01/02 05:14:52 itojun Exp $
# Returns true if $1 contains only alphanumerics # Returns true if $1 contains only alphanumerics
isalphanumeric() { isalphanumeric() {
@ -53,6 +53,8 @@ if ifconfig lo0 inet6 >/dev/null 2>&1; then
# disallow "internal" addresses to appear on the wire. # disallow "internal" addresses to appear on the wire.
route add -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject route add -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject
route add -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject route add -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject
rtsolif=""
else else
ip6kernel=NO ip6kernel=NO
fi fi
@ -95,6 +97,9 @@ for hn in /etc/hostname.*; do
ifconfig $if $name $mask $bcaddr $ext1 $ext2 down ifconfig $if $name $mask $bcaddr $ext1 $ext2 down
cmd="dhclient $if" cmd="dhclient $if"
;; ;;
"rtsol")
rtsolif="$rtsolif $if"
;;
"up") "up")
# The only one of these guaranteed to be set is $if # The only one of these guaranteed to be set is $if
# the remaining ones exist so that media controls work # the remaining ones exist so that media controls work
@ -143,6 +148,17 @@ for hn in /etc/hostname.*; do
eval "$cmd" eval "$cmd"
done < /etc/hostname.$if done < /etc/hostname.$if
done done
if [ "$ip6kernel" = "YES" -a "x$rtsolif" != "x" ]; then
fw=`sysctl -n net.inet6.ip6.forwarding`
ra=`sysctl -n net.inet6.ip6.accept_rtadv`
if [ "x$fw" = "x0" -a "x$ra" = "x1" ]; then
rtsol $rtsolif
else
echo "WARNING: inconsistent config - check /etc/sysctl.conf for IPv6 autoconf"
fi
fi
for bn in /etc/bridgename.*; do for bn in /etc/bridgename.*; do
# Strip off /etc/bridgename. prefix # Strip off /etc/bridgename. prefix
if=${bn#/etc/bridgename.} if=${bn#/etc/bridgename.}


+ 3
- 2
src/etc/sysctl.conf View File

@ -1,9 +1,10 @@
# $OpenBSD: sysctl.conf,v 1.14 1999/12/30 19:38:42 provos Exp $
# $OpenBSD: sysctl.conf,v 1.15 2000/01/02 05:14:52 itojun Exp $
# This files contains a list of sysctl options the user wants set at # This files contains a list of sysctl options the user wants set at
# boot time. # boot time.
# ie. # ie.
#net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of packets #net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of packets
#net.inet.ip6.forwarding=1 # 1=Permit forwarding (routing) of packets
#net.inet6.ip6.forwarding=1 # 1=Permit forwarding (routing) of packets
#net.inet6.ip6.accept_rtadv=1 # 1=Permit IPv6 autoconf (forwarding must be 0)
#net.inet.tcp.rfc1323=0 # 0=disable TCP RFC1323 extensions (for if tcp is slow) #net.inet.tcp.rfc1323=0 # 0=disable TCP RFC1323 extensions (for if tcp is slow)
#net.inet.esp.enable=1 # 1=Enable the ESP IPSec protocol #net.inet.esp.enable=1 # 1=Enable the ESP IPSec protocol
#net.inet.ah.enable=1 # 1=Enable the AH IPSec protocol #net.inet.ah.enable=1 # 1=Enable the AH IPSec protocol


Loading…
Cancel
Save