OpenStackのGatewayのないネットワーク上のVMでuser dataとmeta data取得の為のrouteを設定する

OpenStackでは、AWS EC2と同様に169.254.169.254にhttpでアクセスできる。
Gatewayが設定されていないSubnetに接続されているゲストマシンから、それらの情報を取得するには次の設定をする。なお、構成としてNeutronを使用していることを前提とする。
  • /etc/neutron/dhcp_agent.iniに次の設定をする。
    enable_isolated_metadata = True
    
  • neutron-dhcp-agentが実行されているマシン(いわゆるNetwork node)をリスタートする。
    なお、下記のようにdhcp agentの再起動だけでよさそうにも思えるが、RDO(Havana)ではうまく行かなかった。
    # service neutron_dhcp_agent restart
    
    設定が正常に反映された場合、dnsmasqの--dhcp-optsfileに指定されている設定ファイルの内容は、次のように169.254.169.254への静的ルートを含む。
    # cat /var/lib/neutron/dhcp/04911b6c-d75a-4744-b604-c99a342ca95f/opts
    tag0,option:classless-static-route,169.254.169.254/32,192.168.150.101
    tag0,249,169.254.169.254/32,192.168.150.101
    
  • ゲストマシンの起動
  • ゲストOSのrouteコマンドでrouting tableを確認すると、169.254.169.254が設定されていることが分かる。
    $ route 
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    169.254.169.254 192.168.150.101 255.255.255.255 UGH   0      0        0 eth0
    192.168.150.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    

0 件のコメント: