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?