VyOSを使ったまともなルータ作り

こんにちは、虎の穴ラボのH.Y.です。(激似)(天丼ネタ)

今回は、前回⇣の続きになります。
VyOSを使った純粋なルータ作り - 虎の穴 開発室ブログ


前回あまりにも、特定用途過ぎたので、
家庭用ルータの主な機能であるNAPTとDHCPの設定とその確認を行っていきます。

構成の確認


下のような構成でやっていきたいと思います。
f:id:toranoana-lab:20181226141923p:plain

eth0の設定は、
IPアドレス固定
RIPでルーティング情報を取得
詳細は、前回の記事を参考にしてください。

NAPTの設定

少ないグローバルIPをより多くの端末でインターネットにアクセスするために使われている機能です。
会社によって、NAPT、PATやIPマスカレードとか呼ばれています(用語を統一してほしい)

# 編集モードに移行
configure
# NATの外側のネットワークを設定します
set nat source rule 1 outbound-interface eth0
# NATの内側のネットワークを設定します
set nat source rule 1 source 192.168.101.0/24
# NAPTの設定をします。
set nat source rule 1 translation address masquerade

DHCPサーバの設定

クライアントにIPを振り分ける設定を行っていきます。

# DHCPサーバの設定を作成します。
set service dhcp-server shared-network-name private-network-101 subnet 192.168.101.0/24
# 配布するIPアドレスの範囲を設定します。
set service dhcp-server shared-network-name private-network-101 subnet 192.168.101.0/24 start 192.168.101.100 stop 192.168.101.199
# デフォルトゲートウェイを設定します。
set service dhcp-server shared-network-name private-network-101 subnet 192.168.101.0/24 default-router 192.168.101.1
# DNSサーバを設定します。
set service dhcp-server shared-network-name private-network-101 subnet 192.168.101.0/24 dns-server 192.168.100.1
# 設定有効化
commit
# 設定保存
save

DHCP設定の確認

実際に確認用PCを接続して、DHCPとNAPTの設定が動いているかを確認します。

今回確認用PCはWindows10で確認しています。

>ipconfig /all
Windows IP 構成
  ホスト名. . . . . . . . . . . . . . .: ********
  プライマリ DNS サフィックス . . . . .:
  ノード タイプ . . . . . . . . . . . .: ハイブリッド
  IP ルーティング有効 . . . . . . . . .: いいえ
  WINS プロキシ有効 . . . . . . . . . .: いいえ
イーサネット アダプター イーサネット:
  接続固有の DNS サフィックス . . . . .:
  説明. . . . . . . . . . . . . . . . .: Intel(R) 82579LM Gigabit Network Connection
  物理アドレス. . . . . . . . . . . . .: F0-DE-F1-A7-F7-**
  DHCP 有効 . . . . . . . . . . . . . .: はい
  自動構成有効. . . . . . . . . . . . .: はい
  リンクローカル IPv6 アドレス. . . . .: fe80::ad5a:d776:5ca4:a12d%8(優先)
  IPv4 アドレス . . . . . . . . . . . .: 192.168.101.102(優先)
  サブネット マスク . . . . . . . . . .: 255.255.255.0
  リース取得. . . . . . . . . . . . . .: 2018122423:05:25
  リースの有効期限. . . . . . . . . . .: 2018122523:05:25
  デフォルト ゲートウェイ . . . . . . .: 192.168.101.1
  DHCP サーバー . . . . . . . . . . . .: 192.168.101.1
  DHCPv6 IAID . . . . . . . . . . . . .: 150003441
  DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-22-7F-26-3D-F0-DE-F1-A7-F7-**
  DNS サーバー. . . . . . . . . . . . .: 192.168.100.1
  NetBIOS over TCP/IP . . . . . . . . .: 有効

設定どおりのIP、デフォルトゲートウェイ、DNSサーバが配布されていることが確認できます。

>tracert 8.8.8.8
google-public-dns-a.google.com [8.8.8.8] へのルートをトレースしています
経由するホップ数は最大 30 です:

 1    <1 ms    <1 ms    <1 ms  192.168.101.1
 2    <1 ms    <1 ms    <1 ms  setup.netvolante.jp [192.168.100.1]

tracertコマンドで経路確認しても、指定のデフォルトゲートウェイ経由で外のネットワークに出ていることは確認できました。

NAPT設定の確認

確認用PCからNAPTの設定が有効かどうかを確認する術がないので
外のネットワークの機器から確認します
f:id:toranoana-lab:20181226164810p:plain

NAPT確認用PCから確認PCに向けってpingを投げてみます。

>ping 192.168.101.102
192.168.101.102 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。

想定通り、外のネットワークから直接アクセスできないようになっています。


今度は、NAPT確認用PCにnginxを動かして、確認用PCからアクセスしてみます。

192.168.100.201 - - [24/Dec/2018:14:33:04 +0000] "GET / HTTP/1.1" 200 529 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"

nginxのアクセスログを見てみると、vyosルータのeth0側のIPになっているので、
想定通りIPの変換ができていることを確認できました。

まとめ

設定自体は、7行の簡単な設定でしたが、確認作業に時間がかかりました。
確認をしながら設定をしないと、インフラ周りはトラブルーシュートが難しいので
一つ一つ確認したほうがいいですね(経験あり)


虎の穴ではJavaエンジニアをはじめとして一緒に働く仲間を絶賛募集中です!
この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧下さい。
www.toranoana.jp