在netron provider network環境中使用metadata

雖然L3 agent在havana中可以做到多節點部署,但是和nova-network的multi-host還是有些差距,實際生產環境中還是會使用實體路由器,由實體路由器本身保證HA。這就使得我們會使用netron的provider network feature。當我們使用provider network時,發現了虛機無法訪問metadata的問題,本文記錄了兩個解決辦法。


首先說下我們計算節點的構架大致如下:

使用的2層agent是ml2(ovs+vlan),dhcp agent做了multi host部署。 provider 網絡以100.100.100.0/24 GW 爲100.100.100.1爲例。




當我們在provider network上啓動虛機後,虛機會獲取到默認網關是100.100.100.1, 當虛機想訪問169.254.169.254時, 就會發送到默認網關處,而此處的默認網關是外部路由,顯然不會對169.254.169.254作出任何反映。這就造成了虛機無法獲取metadata。


目前我所知的解決的辦法有以下兩個:

1. 在外部路由上將169.254.169.254:80端口映射到metadata HA ip:8775,這樣外部路由器就可以將請求轉發到metadata server。 但這裏有一個明顯的缺陷,我們需要手動的在外部路由器上加上這樣的映射。


2. 在dhcp.ini中啓用enable_isolated_metadata。

需要注意的是由於以下bug,我們在創建subnet的時候必須要disable gateway ip,通過設置Host Routes的方式將默認路由設置進去。

https://bugs.launchpad.net/neutron/+bug/1236783





當我們設置了enable_isolated_metadata後,在dhcp的ops中就會加入169.254.169.254的路由,具體的實現流程以下blog寫的非常清楚,在此不再累述。

http://techbackground.blogspot.ie/2013/06/metadata-via-dhcp-namespace.html

http://techbackground.blogspot.ie/2013/06/metadata-via-quantum-router.html


目前cirros由於以下bug,這個feature還不能work:

https://bugs.launchpad.net/cirros/+bug/1190372





發佈了64 篇原創文章 · 獲贊 9 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章