route(8) says:

> The route is assumed to be to a network if any of
> the following apply to destination:
>
> •   it is the word "default", equivalent to 0/0

Consistent with this, you can substitute "0/0" for "default":

> # netstat -rnf inet | grep default
> default            192.0.2.1          UGS        [...]

> # route delete 0/0
> delete net 0/0

> # netstat -rnf inet | grep -c default
> 0

> # route add 0/0 192.0.2.1
> add net 0/0: gateway 192.0.2.1

> # netstat -rnf inet | grep default
> default            192.0.2.1          UGS        [...]

> # route delete default
> delete net default

> # netstat -rnf inet | grep -c default 
> 0

Back in OpenBSD 5.7, I found it convenient to substitute "::/0" for
"-inet6 default", and I did so in some of my old hostname.if(5) files,
but this doesn't seem to work in OpenBSD 6.0:

> # netstat -rnf inet6 | grep default
> default                            fe80::1234%em0              [...]

> # route delete ::/0
> delete net ::/0: not in table

> # netstat -rnf inet6 | grep default
> default                            fe80::1234%em0              [...]

> # route delete -inet6 default
> delete net default

> # netstat -rnf inet6 | grep -c default
> 0

> # route add ::/0 fe80::1234%em0
> add net ::/0: gateway fe80::1234%em0: File exists

> # netstat -rnf inet6 | grep -c default
> 0

> # route add -inet6 default fe80::1234%em0
> add net default: gateway fe80::1234%em0

> # netstat -rnf inet6 | grep default
> default                            fe80::1234%em0              [...]

I've been looking in and around sbin/route/route.c, sys/net/route.c,
and sys/net/rt* for a relevant change with little success.

Is this a regression, or was the equivalence between "-inet6 default"
and "::/0" just a transient implementation detail?

Reply via email to