その他
    ホーム 技術発信 DoRuby IDCF keepalivedを使用したグローバルIPとローカルIPの紐付け

    IDCF keepalivedを使用したグローバルIPとローカルIPの紐付け

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    rickNo38です。
    IDCフロンティアでhttp/httpsのアクセス先を冗長化するため
    keepalivedを使用するために行った設定を記載いたします。

    用意するもの

    ・IDCF契約(仮想サーバ2台以上)
    ・グローバルIP1個(IDCF管理画面上はIPアドレス)
    ・実施したOSはCentOS7

    冗長化を行う理由

    用意されているルーターを使用するとhttpsの場合、アクセス元IPが取得できなくなります。
    そのため、ルーターを返さず直接apache等で受け取る必要があります。
    また、冗長化していないと安全性が低いため冗長化も必用となってきます。

    APIコマンドinstall

    keepalivedでの冗長化を実現するためには、
    管理画面上の設定では不可能なため、
    APIをinstall必要があります。
    設定するのはmasterサーバの1台だけです。su – curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
    yum -y install libxml2 libxml2-devel libxslt libxslt-devel gcc python-devel
    pip install git+https://github.com/idcf/cloudstack-api
    cloudstack-api –version
    —–
    cloudstack-api v0.10.2
    —–

    API設定

    vim ~/.idcfrc
    —–
    [account]
    host=エンドポイント
    api_key=API Key
    secret_key=Secret Key
    —–
    chmod 600 ~/.idcfrc
    # 下記表示されればok
    cloudstack-api listZones
    —–
    {
    “listzonesresponse”: {
    “count”: 3,
    “zone”: [
    {
    “allocationstate”: “Enabled”,
    “dhcpprovider”: “VirtualRouter”,
    “id”: “xxxx”,
    “localstorageenabled”: true,
    “name”: “tesla”,
    etc…
    —–

    サーバに2個目のIPを付与

    # 仮想マシンIDの確認
    cloudstack-api listVirtualMachines -t displayname,id
    —–
    +————–+————————————–+
    | displayname | id |
    +————–+————————————–+
    | test | 1234567890 |
    —–
    # NICの確認
    cloudstack-api listNics –virtualmachineid 1234567890
    —–
    {
    “listnicsresponse”: {
    “count”: 1,
    “nic”: [
    {
    “gateway”: “10.3.0.1”,
    “id”: “abvdefg”,
    “ipaddress”: “10.3.0.2”,
    “isdefault”: true,
    “macaddress”: “xx:xx:xx:xx:xx”,
    “netmask”: “xxx.xxx.xxx.xxx.xxx”,
    “networkid”: “xxxxxxx”
    }
    ]
    }
    }
    —–
    # サーバにIPを付与
    cloudstack-api addIpToNic –nicid abvdefg –ipaddress 10.3.0.3
    # secondaryipが指定されているか確認
    cloudstack-api listNics –virtualmachineid 1234567890
    —–
    {
    “listnicsresponse”: {
    “count”: 1,
    “nic”: [
    {
    “gateway”: “10.3.0.1”,
    “id”: “abvdefg”,
    “ipaddress”: “10.3.0.2”,
    “isdefault”: true,
    “macaddress”: “xx:xx:xx:xx:xx”,
    “netmask”: “xxx.xxx.xxx.xxx.xxx”,
    “networkid”: “xxxxxxx”
    “secondaryip”: [
    {
    “id”: “zxcvasdf”,
    “ipaddress”: “10.3.0.3”
    }
    ]
    }
    ]
    }
    }
    —–

    NAT設定

    # グローバルIPのリスト取得
    cloudstack-api listPublicIpAddresses -t ipaddress,id
    —–
    +—————–+————————————–+
    | ipaddress | id |
    +—————–+————————————–+
    | 210.140.111.111 | aaaaaa |
    ——
    # ローカルIPとグローバルIPのNAT設定
    cloudstack-api enableStaticNat –ipaddressid aaaaaa –virtualmachineid 1234567890 –vmguestip 10.3.0.3
    管理画面メニューのIPアドレスから「210.140.111.111」がNAT設定されているか確認できます。

    keepalived設定

    後は普通にkeepalivedの設定をするだけです。