2016年12月20日火曜日

VyOS で VLAN ID を振ったポートグループ内に DHCP サーバを構築してみた

概要

前回 VyOS を ESXi 上に構築しました
今回は構築した VyOS に DHCP 機能とおまけとして DNS の参照も行ってみました

環境

  • VirtualBox 5.1.10
  • ESXi 6.0 update 2
  • Windows7 Enterprise バージョン 6.1
    • Intel Core i5-5300U CPU @ 2.30GHz
    • メモリ 10GB
    • ストレージ 120GB (SSD)
  • VyOS 1.1.7 (32bit 版)

VLAN ID を付与したポートグループの作成

まず新規でポートグループを作成します
作成したポートグループに VLAN ID を付与します
vyos_config_dhcp_and_dns1.png
とりあえず「0」以外であれば何でも OK です
仮想スイッチ「vSwitch0」は既存のものを利用します
これは VirtualBox のホストオンリーアダプタ用の vmnic から作成した仮想スイッチになります

VM へのネットワークカード追加

作成したポートグループを VM のネットワークインタフェースとして設定します
VM も既存のものを利用します
vm1 のネットワークアダプタ1 を先程作成したポートグループ (VM Network2) にします
vyos_config_dhcp_and_dns2.png

そして同じポートグループに VyOS も所属させます
vm1 と同様にネットワークアダプタ3 を新規で追加します
vyos_config_dhcp_and_dns3.png

今回の構成の vSwitch のトポロジーを見ると以下のようになっています
( VM Network2 と vm2 は今回使用しません )
vyos_config_dhcp_and_dns4.png

VyOS への設定

では、VyOS に設定を追加していきます
VM Network のネットワークを使って SSH で VyOS にログインしてください

新規ポートグループ用の IP 付与

まずは追加した VM Network2 用のポートグループ内で VyOS が通信するためのネットワークを付与します

  • configure

で編集モードになります

  • set interfaces ethernet eth2 address ‘172.10.0.1/24’
  • set interfaces ethernet eth2 description ‘VM Network2’
  • commit

IP はルータってぽく「172.10.0.1」にしています
CIDR「/24」は「/16」などでも問題ないですが、255 台以上同じポートグループに所属させることはないので、とりあえず「/24」にしておきます
description は show interfaces を実行したときにわかりやすいように付与しています
完了したら commit しましょう
これで新規で追加したネットワークアダプタ用の IP が VyOS に振られましす

DHCP 設定

次に DHCP の設定を行います

  • configure

  • set service dhcp-server disabled ‘false’
  • set service dhcp-server shared-network-name VM_NETWORK_2 subnet 172.10.0.0/24 default-router ‘172.10.0.1’
  • set service dhcp-server shared-network-name VM_NETWORK_2 subnet 172.10.0.0/24 dns-server ‘172.10.0.1’
  • set service dhcp-server shared-network-name VM_NETWORK_2 subnet 172.10.0.0/24 lease ‘86400’
  • set service dhcp-server shared-network-name VM_NETWORK_2 subnet 172.10.0.0/24 start 172.10.0.2 stop ‘172.10.0.254’
  • commit

簡単に各コマンドを説明します
まず DHCP を有効にします
次に DHCP サーバを適用するネットワークを作成します
名前は「VM_NETWORK_2」とルータの IP および CIDR は先程 VyOS 自身に付与した 172.10.0.1/24 としています
dns-server を同様に VyOS の IP に設定します (DNS の参照先はあとで再度設定します)
DHCP のリースタイムを設定します
とりあえず 86400 秒 (1日) にしていますが、好きなように設定してもらって OK です
最後に start, stop を使って DHCP サーバが振る IP の範囲を指定しています
今回はすべて DHCP 用の IP として使用するので 2 から 254 を割り当てています

これで完了です
すべて入力できたら commit します 

VM 側で動作確認

では、VM 側で問題なく DHCP として IP が取得できるか確認してみましょう
確認するゲスト OS vm1 は CentOS6 になります
ネットワークアダプタ1 に設定した VM Network2 側のイーサネットは eth0 になります
ifcfg-eth0 で静的に IP を振る設定をしている場合は BOOTPROTO=dhcp にして service network restartifdown eth0, ifup eth0 してみましょう
VyOS に指定した start, stop の範囲から IP を取得をできると思います
vm1 が正常に動作する route 情報は以下の感じになります

172.10.0.0/24 dev eth0  proto kernel  scope link  src 172.10.0.2
10.0.3.0/24 dev eth1  proto kernel  scope link  src 10.0.3.16
169.254.0.0/16 dev eth0  scope link  metric 1002
169.254.0.0/16 dev eth1  scope link  metric 1003
default via 10.0.3.2 dev eth1

eth0 を DHCP にして VyOS から IP をもらうタイミングで default gateway が 172.10.0.1 になる可能性があります
そうなるとせっかくインターネットに接続するために付けている NAT 用の通信も VyOS を通るようになってしまいインターネットに接続できなくなってしまいます
その場合は ip r del default via 172.10.0.1 dev eth0 などして削除したあとに再度 ip r add default via 10.0.3.2 dev eth1 をして default gateway を設定し直してください

動作確認として VM Network2 のポートグループ内に更に追加で VM を 1 台作成して動作確認しても良いかと思います 

おまけ (DNS サーバの参照)

今回の構成の場合 vm1 にある NAT 用のネットワークアダプタは単純に外に出るためのものなので DNS がありません
VyOS に DNS の名前解決を行わせることもできるので、VyOS から参照できる DNS サーバがある場合は設定すると良いかと思います

  • set service dns forwarding cache-size ‘0’
  • set service dns forwarding listen-on ‘eth2’
  • set service dns forwarding name-server ‘8.8.8.8’
  • commit

ちなみにこの場合は「google.co.jp」などのグローバルな名前解決は行ってくれますが LAN or イントラ内の名前解決はしてくれません
LAN or イントラ内に DNS がある場合はそちらを優先して設定したほうが良いかと思います
もちろん 8.8.8.8 にしても LAN or イントラ内の DNS サーバにしても VyOS から参照できる必要はあります

最後に

VyOS を使って VLAN ID を付与したポートグループ内に DHCP サーバを構築してみました
ESXi だけだとこのあたりの機能には手が届かないので、そのあたりを簡単にカバーできる VyOS はやはり強力なツールかなと思います
次回はもう 1 つポートグループを作成してポートグループ同士を通信できるようにしてみたいと思います

P.S
ちょっと ESXi シリーズと VyOS 紹介シリーズがだいぶごっちゃになって来たので一旦構成図を作成してまとめておきたいなと思っています

0 件のコメント:

コメントを投稿