I have a system with a non-global zone accessible via 192.168.0.20. I have a gateway with IP address 192.168.0.1. In order to reach the zone via IP, in the global zone I have to define the persistent route as show below.
# route -p show
No persistent routes are defined
# route -p add default 192.168.0.1
add net default: gateway 192.168.0.1
add persistent net default: gateway 192.168.0.1
# route -p show
persistent: route add default 192.168.0.1
# netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 192.168.0.1 UG 1 0
127.0.0.1 127.0.0.1 UH 2 84 lo0
As you can see, the change is reflected in the route command output as well as the netstat command output. At this point I can ping correctly. If I reboot my system I am no longer able to reach the zone IP address. The route command indicates the static route still exists, however the netstat command does not.
# route -p show
persistent: route add default 192.168.0.1
# netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
127.0.0.1 127.0.0.1 UH 2 84 lo0
At this point I have to again, execute the "route -p add default 192.168.0.1" command in order to access the zone via IP.