Solarisのzoneでのdefault route

今年の1月7日のエントリで、Solarisでつくったzone上でrouteが設定できないと書きました。
Solaris10上のzoneでは、ネットワークに関する情報は、親のzoneと共有する形態になっていて、それがだめならExclusive Zonesってのつくって、親zoneとは別のネットワークインタフェイスを専用で使うみたいなことをしないといけないらしい。

いやぁそれはこまるなぁとおもってzonecfgあたりのmanをしばらく眺めていると、ちゃんと設定できるみたいです。ただしdefault routeだけど。

こんな感じで設定しなおしました。

# zonecfg -z hoge
zonecfg:hoge> remove net  
zonecfg:hoge> add net
zonecfg:hoge:net> set physical=e1000g1
zonecfg:hoge:net> set address=10.1.100.1
zonecfg:hoge:net> set defrouter=10.1.200.1
zonecfg:hoge:net> end

親のzone上でデフォルトルートを確認すると、上記zonecfgで設定したルーティング情報がみえる。

# netstat -r
Routing Table: IPv4
  Destination           Gateway           Flags  Ref     Use     Interface 
-------------------- -------------------- ----- ----- ---------- --------- 
default              XXX.XXX.XXX.XXX        UG        1       2449           
default              10.1.200.1           UG        1       2172 e1000g1   
arpanet              10.1.200.1           UG        1       8924           

一行目にあるdefault routeは、e1000g0のインタフェイスから参照されるもの。じゃあということで、zonecfghじゃなくて親zone上でroute addでルーティングを追加してあげると、ネットワーク的によくない状況が発生する。現象としてはe1000g0,e1000g1の両方ともときどき通じなくなったり、遅延がおきたり。
現象確認してすぐなおしちゃったので、実際にどのような現象がおきていたかは検証できていません。