朝日ネット 開発者ブログ

朝日ネットのエンジニアによるリレーブログ。今、自分が一番気になるテーマについて書きます。

ISPを構築してみる (2)

朝日ネットで業務システムを開発しているkakoです。前回の記事では、AsahiNet内のプライベートASになんちゃってISP(KakoNet)を構築する、という目標の全体構想を述べました。今回はそれを実現するための検証・構築手順を提案したいと思います。また最初の検証として、VirtualBoxの内部ネットワークにVyOSとUbuntuを構築した手順を記載します。

全体構想を実現するための検証・構築手順

最終的な目標は、KakoNetとAsahiNetでBGPピアを張り、KakoNetのPPPoEクライアントがインターネットへ接続することです。しかし、サービス稼働中のAsahiNetの本番環境でいきなり検証を行うわけにいきません。そのため、まずはローカルPCの仮想環境にKakoNetおよびAsahiNetを模したHogeNetを構築し、BGPピアを張ってAS間で通信できるシステムの検証・構築を行います。その上でHogeNetとAsahiNetを差し替えるようにして、KakoNetとAsahiNetの本番環境でBGPピアを張るという下記のような手順を提案します。

①HogeNetを構築します。コアルータはVyOS、HogeNet内のホストはUbuntuを採用します。

②KakoNetのコアルータをVyOSで構築し、HogeNetのコアルータとBGPピアを張ります。

f:id:kako-asahi:20180705184928p:plain

③KakoNetにPPPoEクライアントとPPPoEサーバを構築し、PPPoE通信を行います。どのようなソフトウェアを使って実現するかは今後検討します。

④KakoNetにRADIUSサーバをUbuntuとFreeRADIUSで構築します。PPPoEサーバがRADIUSサーバに対してRADIUS認証を行い、RADIUSサーバがIPアドレスを払い出し、PPPoEクライアントにIPアドレスを割り当てます。

f:id:kako-asahi:20180705184931p:plain

⑤KakoNetのPPPoEクライアントがHogeNetのホストへIPの到達性があることを確認します。

f:id:kako-asahi:20180705184919p:plain

⑥HogeNetのコアルータとAsahiNetのコアルータを差し替える形で、KakoNetとAsahiNetの本番環境でBGPピアを張ります。AsahiNetの管理しているIPアドレスを、KakoNetのRADIUSサーバに払い出し可能なIPアドレスとして登録します。KakoNetのPPPoEクライアントがインターネットへ接続できることを確認します。

f:id:kako-asahi:20180705184922p:plain

VirtualBoxの内部ネットワークにVyOSとUbuntuを構築

検証・構築手順①としてローカルPCの仮想環境にソフトウェアルータとゲストOSを下記のように構築し、それをHogeNetとしました。各種ソフトウェアは下記のものを採用しています。

  • ホストOS:Windows10
  • 仮想化ソフト:VirtualBox 5.2.12(ゲストOS間のみでネットワークを構築できる「内部ネットワーク」を利用するため)
  • ソフトウェアルータ:VyOS 1.1.8
  • ゲストOS:Ubuntu 16.04.4 Server

VirtualBoxのインストール

下記URLからWindows 64-bit用のインストーラーをダウンロードし、ローカルPCにインストールします。
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html

VyOSをVirtualBoxへインストール

下記URLからVyOSのisoファイル(vyos-1.1.8-amd64.iso)をダウンロードします。
https://downloads.vyos.io/?dir=release/1.1.8

VirtualBoxに新規仮想マシンを下記のように作成します。

  • 名前:hoge-rt
  • タイプ:Linux
  • バージョン:Debian (64bit)
  • メモリーサイズ:256MB
  • ハードディスク:仮想ハードディスクを作成する
  • ハードディスクのファイルタイプ:VDI (VirtualBox Disk Image)
  • 物理ハードディスクにあるストレージ:可変サイズ
  • ファイルの場所とサイズ:hoge-rt、1.00GB

仮想マシンを起動し、起動ハードディスクにVyOSのisoファイルを選択します。ユーザーガイド - VyOS jpを参考にVyOSをVirtualBoxにインストールします。

VyOSの仮想マシンを終了し、VirtualBoxで仮想マシンのネットワーク設定を行います。下画像のように、仮想マシンの設定画面からアダプター1で内部ネットワークを選択し、名前を「hogenet」とします。

f:id:kako-asahi:20180705184925p:plain

再度VyOSの仮想マシンを起動し、下記のように設定を変更します。1

  • eth0のIPアドレス:192.0.2.1/24
  • ホスト名:hoge-rt

コマンドは下記のようになります。

$ configure
# set interfaces ethernet eth0 address 192.0.2.1/24
# set system host-name hoge-rt
# commit
# save
# exit
$ reboot

UbuntuをVirtualBoxへインストール

下記URLからUbunutuのisoファイル(ubuntu-16.04.4-server-amd64.iso)をダウンロードします。
http://releases.ubuntu.com/16.04.4/

VirtualBoxに新規仮想マシンを下記のように作成します。

  • 名前:hoge-host
  • タイプ:Linux
  • バージョン:Ubuntu (64bit)
  • メモリーサイズ:512MB
  • ハードディスク:仮想ハードディスクを作成する
  • ハードディスクのファイルタイプ:VDI (VirtualBox Disk Image)
  • 物理ハードディスクにあるストレージ:可変サイズ
  • ファイルの場所とサイズ:hoge-host、2.50GB

仮想マシンを起動し、起動ハードディスクにUbuntuのisoファイルを選択しインストールします。

Ubuntuの仮想マシンを終了し、VirtualBoxで仮想マシンのネットワーク設定を行います。下画像のように、仮想マシンの設定画面からアダプター1で内部ネットワークを選択し、名前を「hogenet」とします。

f:id:kako-asahi:20180705184913p:plain

再度Ubuntuの仮想マシンを起動し、設定を変更します。2

  • enp0s3のネットワークインターフェースのIPアドレス:192.0.2.2/24

/etc/networks/interfacesのenp0s3の設定を下記のように変更し、networkingのサービスを再起動します。

auto enp0s3
iface enp0s3 inet static
  address 192.0.2.2
  netmask 255.255.255.0
  gateway 192.0.2.1

コアルータとホスト間でIPの到達性があることを確認

例えばhoge-hostからhoge-rtに対してpingコマンドを打ってみると下記のようになります。

kako@hoge-host:~$ ping 192.0.2.1
PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.
64 bytes from 192.0.2.1: icmp_seq=1 ttl=64 time=0.301 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=64 time=0.691 ms
64 bytes from 192.0.2.1: icmp_seq=3 ttl=64 time=0.658 ms

おわりに

次回は検証・構築手順②として挙げた、VyOS間でBGPを張る検証に取り組みたいと思います。

採用情報

朝日ネットでは新卒採用・キャリア採用を行っております。


  1. アダプターとVyOSのネットワークインターフェース名は1:1で対応しています。eth0、eth1などのインターフェース名が割り当てられますが、環境によって対応するインターフェース名が変わるようです。

  2. アダプターとUbuntuのネットワークインターフェース名は1:1で対応しています。アダプター1 = enp0s3、アダプター2 = enp0s8、アダプター3 = enp0s9、アダプター4 = enp0s10、となっています。