この文書ではコンソールでFloating IPを扱う時に必要な内容を記述します。
Floating IPは外部ネットワークを選択して指定されたネットワークからIPを割り当てられて使用できます。これをIPプールと表現し、NHN Cloudは現在"Public Network" 1個のみ選択できます。IPプールを選択した後、作成ボタンをクリックしてFloating IPを作成できます。Floating IPの作成は インスタンス > 管理ページ または インスタンス > Floating IPページでも行うことができます。
インスタンスの状態と関係なくFloating IPを接続または、解除できます。 インスタンス > 管理ページで対象インスタンスを選択し、Floating IP管理 ボタンをクリックしてFloating IPを接続または解除できます。 Floating IPの解除は Floating IP ページでも行うことができます。
[参考]インスタンスにFloating IPを接続するにはインスタンスが含まれるサブネットがルーティングテーブルと接続されていて、
該当ルーティングテーブルがインターネットゲートウェイを介してインターネットに接続されている必要があります。
複数のネットワークインターフェイスを持つインスタンスは、各ネットワークインターフェイスにFloating IPを接続できます。しかし最初を除いた残りのネットワークインターフェイスに接続したFloating IPにインスタンスに接続するにはインスタンスのRouting Rule設定が必要です。
TOASTで提供する共用Linuxイメージ配布バージョン2018.12.27
以上で作成したインスタンスは、起動時にRouting Ruleを自動的に設定してそれぞれのネットワークインターフェイスに接続されたすべてのFloating IPを介してアクセスできます。
インスタンスに接続した後、次のようにRouting Rule設定を確認できます。
$ ip rule
0: from all lookup local
100: from { eth0のIPアドレス} lookup 1
200: from { eth1のIPアドレス} lookup 2
300: from { eth2のIPアドレス} lookup 3
...
32766: from all lookup main
32767: from all lookup default
上記のようにip ruleコマンドを実行した時、各ネットワークインターフェイスごとにRouting Ruleが設定されている場合、すべてのFloating IPを介してインスタンスにアクセスできます。
これ以外のイメージで作成したインスタンスは、次のようにインスタンス内にRouting Ruleを設定してインスタンスに接続されたすべてのFloating IPを介してアクセスするようにできます。
最初のネットワークインターフェイス(eth0)に接続されたFloating IPを介してインスタンスに接続した後、 Floating IPを接続して接続しようとする残りのネットワークインターフェイスに対して次のようなコマンドを実行します。
ip rule add from {ネットワークインターフェイスIPアドレス}/32 table {テーブル番号} priority {優先順位}
ip route add default via {ネットワークインターフェイスのDefaultゲートウェイアドレス} table {テーブル番号}
ip route add {ネットワークインターフェイスのサブネットCIDR} dev {ネットワークインターフェイス名} table {テーブル番号}
例えば、インスタンスが持つネットワークインターフェイス情報が次のような時
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:8d:71:d6 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.132/24 brd 192.168.100.255 scope global dynamic eth0
valid_lft 86379sec preferred_lft 86379sec
inet6 fe80::f816:3eff:fe8d:71d6/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:06:96:2f brd ff:ff:ff:ff:ff:ff
inet 172.16.0.37/24 brd 172.16.0.255 scope global dynamic eth1
valid_lft 86381sec preferred_lft 86381sec
inet6 fe80::f816:3eff:fe06:962f/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP qlen 1000
link/ether fa:16:3e:06:ac:10 brd ff:ff:ff:ff:ff:ff
inet 10.254.0.90/24 brd 10.254.0.255 scope global dynamic eth2
valid_lft 86386sec preferred_lft 86386sec
inet6 fe80::f816:3eff:fe06:ac10/64 scope link
valid_lft forever preferred_lft forever
eth1
、eth2
に対してFloating IPに接続するために以下のようなコマンドを利用してRouting Ruleを設定します。
# eth1のFloating IPに接続するためのRouting Rule設定
ip rule add from 172.16.0.37/32 table 2 priority 200
ip route add default via 172.16.0.1 table 2
ip route add 172.16.0.0/24 dev eth1 table 2
# eth2のFloating IPに接続するためのRouting Rule設定
ip rule add from 10.254.0.90/32 table 3 priority 300
ip route add default via 10.254.0.1 table 3
ip route add 10.254.0.0/24 dev eth2 table 3
コマンド実行後、次のように設定されたRouting Ruleを確認できます。
$ ip rule
0: from all lookup local
200: from 172.16.0.37 lookup 2
300: from 10.254.0.90 lookup 3
32766: from all lookup main
32767: from all lookup default
$ ip route show table 2
default via 172.16.0.1 dev eth1
172.16.0.0/24 dev eth1 scope link
$ ip route show table 3
default via 10.254.0.1 dev eth2
10.254.0.0/24 dev eth2 scope link
上のRouting Rule設定はインスタンスを再起動すると初期化されるため、インスタンスが再起動する時にRouting Ruleが自動的に設定されるように設定することを推奨します。