MikroTik社のRouterOSを使ったことはありますか。MikroTik社のハードウェア製品としてはRouterBOARDなどがあり、このブログでも2014年12月にRB750GLというルータを紹介しています。そのRouterBOARDはルータのソフトウェアとしてRouterOSを搭載しているのですが、それの仮想環境向けの製品がCloud Hosted Router、略してCHRです。今回はフレッツ光クロスを導入する際にCHRを使用してみたので、その設定を簡単に紹介したいと思います。
まず様々な前提条件ですが、フレッツ光クロスのVNEはXpass、IPv4アドレスは1つの固定のグローバルIPありとなります。フレッツ光クロスは最大10 Gbpsとなりますので、10 GbpsのNICを搭載したMinisforum社のMS-01にProxmox VEをインストールし、その上で1つの仮想マシンとしてCHRを動かしています。なおCHRのインタフェースとしてはether1をLAN、ether3をWANとして使用しています。また10 Gbpsでの通信が可能なP10ライセンスを割り当てています。
Proxmox VE上にCHRをインストールする手順としては以下のYouTubeを参考にさせていただきました。ありがとうございます。
How to install MikroTik CHR on Proxmox Hypervisor. FULL setup STEP-BY-STEP. – YouTube
CHRが起動したあとは、まずIPv6の通信を確立させ、そのIPv6を利用してIPv4のトンネルを確立となります。そのためまずはIPv6アドレスを取得するためにDHCPクライアントを動作させます。メニューからIPv6 > DHCP ClientとたどりAdd Newで追加します。InterfaceをWANであるether3、Requestはprefixのみ、Pool Nameはわかりやすい名前を指定し、Use Interface DUIDとAdd Default Routeも追加で有効にします。右下のOKで設定を完了します。
問題なく設定されればPrefixが指定されます。これがこのルータに割り当てられたIPv6アドレスのプレフィックスとなります。
プレフィックスが割り当てられたあとはインタフェースにIPv6アドレスを付与する必要があります。IPv6の場合はいくつかの設定方法が考えられますが、今回はWANのインタフェースであるether3にpoolから払い出して付与する設定とします。IPv6 > AddressesからAdd Newで追加します。Addressは今回は::1/64とし、From PoolからDHCPクライアント設定で設定したpoolを指定、Interfaceはether3、Advertiseはする必要がないので無効とします。右下のOKで設定完了です。
問題なく設定されればether3にグローバルIPv6アドレスが設定されていることを確認できます。
ここで一旦CHRの設定から離れまして、ISPから届いていると思われる情報を確認し、DDNSのアップデートを実施します。具体的には必要なパラメータを埋めた以下のURLにアクセスします。問題なく完了すれば成功したことが分かるような画面が表示されると思います。おそらくこれでトンネルの接続元のIPv6アドレスとトンネル内で利用する固定IPv4アドレスの関連付けを行っているのだろうと思われますが、正確なところは分かりません。とりあえずこれを実行しないとトンネルが確立されませんでした。
{DDNSアップデート先URL}?d={FQDN}&u={DDNS ID}&p={DDNSパスワード}&a={WAN側のインタフェースに設定したIPv6アドレス}
さて次にIPv4 over IPv6を追加します。左のメニューからInterfecesを選択し、Add NewからIPIPv6 Tunnelを選択します。画像では既に設定が終わっているのでトンネルインタフェースが存在していますが、一旦スルーしてください。
Nameは何でもよいかと思いますが、今回はデフォルトのままにしています。そしてLocal Addressにether3に設定したIPv6アドレス、Remote AddressにISPから届いている情報に記載のTunnel destinationアドレスを指定します。Keepaliveはオフにすべしという情報があったのでオフにしています。右下のOKで設定完了です。
インタフェース一覧でトンネルインタフェースが追加されていることが確認できます。
追加したトンネルインタフェースにIPv4アドレスを設定します。IP > Addressesに進みAdd Newを選択します。設定画面でISPから指定されたIPv4アドレスを入力します。AddressはCIDR表記で、Networkはそのネットワークアドレスを入力します。今回は1IPなので/32の有無の違いのみです。Interfaceにトンネルインタフェースを指定します。右下のOKで設定完了です。
一覧画面でトンネルインタフェースにIPv4アドレスが設定されていることが確認できます。
最後にデフォルトルートの設定です。IP > RoutesからAdd Newで設定を追加します。Dst. Addressにはデフォルトルートを示す0.0.0.0/0、Gatewayに頭に%を付けたトンネルインタフェース名を入力します。右下のOKで設定を完了します。
一覧画面に戻るとデフォルトルートとしてトンネルインタフェースが設定されていることを確認できます。
NATの設定も必要ですね。IP > Firewallとたどり、タブからNATを選んでAdd Newします。Out. Interfaceに追加したトンネルインタフェース、Actionとしてmasqueradeを指定します。
NAT設定の一覧画面で設定が追加されていることが確認できます。なお画像ではOut. Interface Listでの指定となっておりますが、先の設定ですとOut. Interfeceにトンネルインタフェースが設定されている形になります。
以上で通信を確立させるための最低限の設定は完了となります。CHRのPingでIPv6、IPv4の宛先へ通信できることを確認しましょう。なお実際に運用するにはこれらに加えてLAN側のアドレスやファイアウォールなどの設定も必要となります。そのあたりは汎用的なものとなるので今回は省略しますが、適切に設定しましょう。
最後になりますが、最初にも少し書いたとおりCHRを動かすためにはライセンスが必要となります。そのあたりも今後紹介できればと考えています。それでは!