n0stack
n0stack copied to clipboard
VirtualRouter リソースの追加
#180 でも話になったが,ネットワークのゲートウェイの設定が現在あやふやになっているためVirtualRouter というリソースをProvisioning層に追加するとよさそうであると考えている
例えば
message VirtualRouter {
string name = 1;
map<string, string> annotations = 3;
// 後で詳しく考える
bool global = 10;
enum VirtualRouterState {
// unknown state because failed to connect for scheduled node after RUNNING.
UNKNOWN = 0;
// working API
PENDING = 1;
// running vm
AVAILABLE= 2;
}
VirtualRouterState state = 50;
message VirtualRouterNetworkInterface {
string network_name = 1;
string network_interface_name = 2;
string ipv4...
}
repeated VirtualRouterNetworkInterface network_interfaces = 54;
}
のようなものを考えている.これを追加することでFloating IPやファイアウォールのような機能も実現しやすいだろう.
ipのレンジでグローバルか同課は判断できるため,globalフラグは必要なさそう
良さそうなので実装することは決定
NetworkはL2を管理する
VirtualRouterはL3を管理する.その一環としてL3ロードバランサとして利用できるVirtualIPの機能を付けたい.つまり,
message VirtualRouter {
message VirtualIP {
string vip_network_name = 1;
string vip_network_interface_name = 2;
message VirtualIPTarget {
string target_network_name = 1;
string target_network_interface_name = 2;
}
repeated VirtualIPTarget targets = 3;
}
repeated VirtualIP virtual_ip = 10;
}
というようなフィールドを用意することで実現する.案としてL3 FWの機能も付けておきたい.
また,今後L4ロードバランサとL7ロードバランサのリソースも開発したい