mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 09:10:28 +00:00
Better handling of ipv6_default_interface using
net.inet6.ip6.use_defaultzone=1. Now, it works IPv6 link-local unicast addresses as well as IPv6 link-local multicast addresses. MFC after: 1 week
This commit is contained in:
parent
7d11e744c1
commit
b13cc627c7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=207225
|
@ -470,8 +470,8 @@ route6d_flags="" # Flags to IPv6 routing daemon.
|
|||
#ipv6_prefix_ed0="fec0:0000:0000:0001 fec0:0000:0000:0002" # Examples for rtr.
|
||||
#ipv6_prefix_ep0="fec0:0000:0000:0003 fec0:0000:0000:0004" # Examples for rtr.
|
||||
ipv6_default_interface="NO" # Default output interface for scoped addrs.
|
||||
# Now this works only for IPv6 link local
|
||||
# multicast addrs.
|
||||
# This works only with
|
||||
# ipv6_gateway_enable="NO".
|
||||
rtsol_flags="" # Flags to IPv6 router solicitation.
|
||||
rtsold_enable="NO" # Set to YES to enable an IPv6 router
|
||||
# solicitation daemon.
|
||||
|
|
|
@ -210,34 +210,24 @@ static_inet6()
|
|||
;;
|
||||
esac
|
||||
|
||||
# Disallow unicast packets without outgoing scope identifiers,
|
||||
# or route such packets to a "default" interface, if it is specified.
|
||||
# Disallow link-local unicast packets without outgoing scope
|
||||
# identifiers. However, if you set "ipv6_default_interface",
|
||||
# for the host case, you will allow to omit the identifiers.
|
||||
# Under this configuration, the packets will go to the default
|
||||
# interface.
|
||||
route ${_action} -inet6 fe80:: -prefixlen 10 ::1 -reject
|
||||
route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject
|
||||
|
||||
case ${ipv6_default_interface} in
|
||||
'')
|
||||
route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject
|
||||
;;
|
||||
*)
|
||||
laddr=`network6_getladdr ${ipv6_default_interface}`
|
||||
route ${_action} -inet6 ff02:: ${laddr} -prefixlen 16 -interface
|
||||
|
||||
# Disable installing the default interface with the
|
||||
# case net.inet6.ip6.forwarding=0 and
|
||||
# the interface with no ND6_IFF_ACCEPT_RTADV
|
||||
# to avoid conflict between the default router list and
|
||||
# the manual configured default route.
|
||||
# Disable installing the default interface when we act
|
||||
# as router to avoid conflict between the default
|
||||
# router list and the manual configured default route.
|
||||
if ! checkyesno ipv6_gateway_enable; then
|
||||
ifconfig ${ipv6_default_interface} nd6 | \
|
||||
while read proto options
|
||||
do
|
||||
case "${proto}:${options}" in
|
||||
nd6:*ACCEPT_RTADV*)
|
||||
ifconfig ${ipv6_default_interface} inet6 defaultif
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
ifconfig ${ipv6_default_interface} inet6 defaultif
|
||||
sysctl net.inet6.ip6.use_defaultzone=1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd April 14, 2010
|
||||
.Dd April 27, 2010
|
||||
.Dt RC.CONF 5
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -1370,7 +1370,7 @@ configured on that interface.
|
|||
If not set to
|
||||
.Dq Li NO ,
|
||||
this is the default output interface for scoped addresses.
|
||||
Now this works only for IPv6 link local multicast addresses.
|
||||
This works only with ipv6_gateway_enable="NO".
|
||||
.It Va ip6addrctl_enable
|
||||
.Pq Vt bool
|
||||
If set to
|
||||
|
|
Loading…
Reference in a new issue