VyOSでDNSフォワーダの設定をする

VyOSでのDNSフォワーダ

VyOSでは次の手順でDNSフォワーダの設定を行います。

  • DNSサーバを登録する
  • DNSフォワーダの設定をする
    • 許可するクライアントの範囲を指定する
    • DNSクエリパケットを受信するIPアドレスを指定する
    • 使用するDNSサーバを指定する

それぞれ解説します。


DNSフォワーダの設定をする

次のコマンドを使用して設定を行います。

DNSサーバを登録する

設定項目 コマンド
DNSサーバを登録する set system name-server <IPアドレス>


DNSフォワーダの設定をする

設定項目 コマンド
許可するクライアントの範囲を指定する set service dns forwarding allow-from <ネットワーク/プレフィックス>
DNSクエリパケットを受信するIPアドレスを指定する set service dns forwarding listen-address <受信IPアドレス>
DNSサーバを登録する set service dns forwarding system

具体的な設定例を紹介します。


例題1



コマンド

ルータ1

set interfaces ethernet eth1 address dhcp
set interfaces ethernet eth2 address 192.168.0.254/24

set protocols static route 0.0.0.0/0 interface eth1

set system name-server 8.8.8.8
set service dns forwarding allow-from 192.168.0.0/24
set service dns forwarding listen-address 192.168.0.254
set service dns forwarding system

set service dhcp-server shared-network-name LAN10 subnet 192.168.0.0/24 subnet-id 10
set service dhcp-server shared-network-name LAN10 subnet 192.168.0.0/24 range LAN10 start 192.168.0.10
set service dhcp-server shared-network-name LAN10 subnet 192.168.0.0/24 range LAN10 stop 192.168.0.100
set service dhcp-server shared-network-name LAN10 subnet 192.168.0.0/24 option default-router 192.168.0.254
set service dhcp-server shared-network-name LAN10 subnet 192.168.0.0/24 option name-server 192.168.0.254
set service dhcp-server shared-network-name LAN10 subnet 192.168.0.0/24 lease 86400


解説

  • 1つ目のブロックでインタフェースの設定をしています。

    今回はGNS3のNATインスタンスとの接続を行うため、接続先インタフェースであるeth1はDHCPでアドレスを受け取る必要があります。

  • 2つ目のブロックでスタティックルートの設定をしています。

    今回はNATインスタンスとの接続を行うため、動作を安定させるべく、ネクストホップのIPアドレスを192.168.122.1(NATインスタンスのデフォルトIP)にしています。

  • 3つ目のブロックでDNSフォワーダの設定をしています。

    まず、DNSサーバの登録をVyOS自体に行い、その後DNSフォワーダの設定である、

    • 許可するIPアドレス範囲
    • クエリ受信IPアドレス
    • 使用するDNSサーバ(systemのDNSサーバ)

    を指定しています。

  • 4つ目のブロックでDHCPサーバの設定をしています。

    中でも、オプションのname-serverでは、VyOSのLAN側IPアドレスを指定しています。


以上となります。

DNSフォワーダの設定はクラウド連携などですごく有用な設定となります。

お疲れ様でした


関連ページ

VyOSでDHCPの設定をする

VyOSでDHCPを設定する手順を紹介しています。今回紹介した以外にもDHCPの使用方法を紹介しています。


VyOSでNATの設定をする

VyOSでNATの設定をする手順を紹介しており、今回のソースNATに加え、宛先NATやL4ポートとの連携なども紹介しています。

VyOSでOSPFv3の設定をする

VyOSでのOSPFv3

VyOSでOSPFv3を設定する方法は、基本的には通常のOSPF(OSPFv2)と似ています。

もし、通常のOSPFの設定方法について未学習である場合は、先に次の記事よりご確認していただけますと幸いです。

VyOSでOSPFを設定する


OSPFv3の設定で使用する主なコマンドを羅列します。

設定項目 コマンド
OSPFv3を動作させる set protocols ospfv3 interface <インタフェース> area <エリア>
ルータIDを指定する set protocols ospfv3 parameters router-id <ルータID>
プライオリティの設定をする set protocols ospfv3 interface priority <値>
各インターバルの変更をする set protocols ospfv3 interface <インタフェース> hello-interval <秒>
set protocols ospfv3 interface <インタフェース> dead-interval <秒>
パッシブインタフェースの設定をする set protocols ospfv3 interface <インタフェース> passive
デフォルトルートをアドバタイズする set protocols ospfv3 default-information originate [always] [metric <値>] [metric-type <メトリックタイプ>]

 

その他コマンドも含め、基本的にはOSPFv2で使用していたコマンドのospfと記述していた部分をospfv3へ変更するだけで使用できるものが多いです。

 

OSPFv3の設定は、リンク単位で行います。
そのため、OSPFv2で使用できたネットワーク単位でのOSPFの有効化はできません。

また、OSPFv3はMD5認証やプレーンテキストでの認証機能を持ちません。
OSPFv3のパケット認証はIPv6 IPsecに完全委譲されています。
VyOSでは、OSPFv3専用の認証コマンドは存在しておらず、IPsecのSAを自身で作成して、OSPFv3のマルチキャストを保護する必要があります。
こちらの設定は複雑で手順も多いため、今回は紹介を省略します。

 

では設定例を紹介します。

例題1



コマンド

ルータ1

set interfaces ethernet eth1 address fe80::2/64
set interfaces ethernet eth1 address 2001:2::2/64
set interfaces ethernet eth2 address fe80::1/64
set interfaces ethernet eth2 address 2001:1::1/64
set service router-advert interface eth2 prefix ::/64

set protocols ospfv3 parameters router-id 1.1.1.1
set protocols ospfv3 interface eth1 area 0
set protocols ospfv3 interface eth2 area 0
set protocols ospfv3 interface eth2 passive

ルータ2

set interfaces ethernet eth1 address fe80::4/64
set interfaces ethernet eth1 address 2001:3::1/64
set interfaces ethernet eth2 address fe80::3/64
set interfaces ethernet eth2 address 2001:2::1/64

set protocols ospfv3 parameters router-id 2.2.2.2
set protocols ospfv3 interface eth1 area 10
set protocols ospfv3 interface eth2 area 0

ルータ3

set interfaces ethernet eth1 address fe80::5/64
set interfaces ethernet eth1 address 2001:3::2/64
set interfaces ethernet eth2 address fe80::6/64
set interfaces ethernet eth2 address 2001:4::1/64
set service router-advert interface eth2 prefix ::/64

set protocols ospfv3 parameters router-id 3.3.3.3
set protocols ospfv3 interface eth2 passive
set protocols ospfv3 interface eth1 area 10
set protocols ospfv3 interface eth2 area 10

解説

ルータ1

  • 1つ目のブロックでIPv6に関する設定をしています。

    インタフェースのIPv6アドレス設定に加え、SLAACを有効にしています。

  • 2つ目のブロックでOSPFv3に関する設定をしています。

    1つ目のコマンドでルータIDの指定をしています。
    今回、ルータ1ではIPv6アドレスしか設定しておらず、IPv4形式のアドレスが無いため、自動でルータIDを選出することができません。
    そのため、parameters router-idでルータIDを指定する必要があります。

    2,3つ目のコマンドでインタフェースでOSPFv3の有効化をしています。また、eth2では更にパッシブインタフェースを有効にしています。


ルータ2

  • 1つ目のブロックでIPv6の設定をしています。

    ルータ1ではSLAACの設定も行いましたが、ルータ2は特にSLAACの対象となるクライアントが接続されていませんので、設定しなくても問題ありません。

  • 2つ目のブロックでOSPFv3の設定をしています。

    なお、eth1,eth2でパッシブインタフェースを有効にしてしまいますと、OSPFv3のパケットがやり取りできなくなってしまうため、パッシブインタフェースは有効にしてはいけません。


ルータ3

注意点等はルータ1と同様です。


確認

OSPFv3の確認を行う際には、主に次のコマンドを使用します。

確認内容 コマンド
ルーティングテーブルの確認をする run show ipv6 route
OSPFv3のネイバーを確認する run show ipv6 ospfv3 neighbor
OSPFv3のインタフェースを確認する run show ipv6 ospfv3 interface


基本的に、「run show ipv6 ospfv3 <確認項目>」といったコマンドを使用します。

中でも、よく使うのは表の上2つ(ルーティングテーブルとネイバーの確認)ですので、これらを実行します。

 

まずは、ルータ1でネイバーの確認をしてみます。

ルータ1

run show ipv6 ospfv3 neighbor



ルータIDが2.2.2.2であるルータ(ルータ2)が認識されていることがわかります。

続いて、ルーティングテーブルも確認します。

ルータ1

run show ipv6 route



出力の真ん中ほどのところに、2001:4::/64が登録されていることがわかります。

こちらはルータ3とPC2のリンクのネットワークですので、適切にルートがアドバタイズされてきていることがわかります。

以上となります。

OSPFv3の設定はIPv6の設定に慣れていないと難しく感じますが、慣れてくると意外と見やすくなってきます。
VyOSでOSPFv3など、様々な技術の学習をする方の支えになりましたら幸いです。

お疲れ様でした

Applied Skills合格談

Microsoft Applied Skillsとは

Microsoftが提供する”実務ベースのスキル証明”です。

Microsoftの資格として、Azureの試験であるAZ-900やAZ-104などがありますが、これらに対してApplied Skillsには次の特徴があります。

  • 実際にAzure Portalを操作する
  • 課題を完成させる
  • 無料で受験できる(現状は)

よって知識ベースではなく、実務に近いハンズオン試験となっています。

また、Applied Skillsは明確な資格ではありませんが、履歴書に書くことができるそうです。(賞状もPDFで発行されます。)

今回僕は僕が受験しましたMicrosoft Applied Skills: Configure secure access to workloads with Azure networking(以降Applied Skills Networkと略)をもとに紹介したいと思います。

Applied Skills Network

公式より、各試験にLearnが用意されています。受験も同ページから行えます。

Applied Skills Networkの場合は次のページからアクセスできます。
Applied Skills Microsoft Applied Skills: Azure ネットワークを使用してワークロードへのセキュア アクセスを構成する

Applied Skills Networkの試験では、このLearnをきちんと理解していれば解ける内容となっていました。

受験した感想としては、Azure未経験などで実務経験がないが構築練習がしたい・なおスキルの証明をしたいという要望を叶えてくれる、すごくよい試験だと感じました。
無料で受験できますので、気軽に挑戦することもできます。

  • クラウド未経験の方
  • AWSしか触ったことがない方
  • 転職活動などで手軽にアピール手段を作りたい方
  • AZ-700の受験を検討している方の第一歩

など、様々な方におすすめできると思っています。

受検する上での注意点

1,環境

Applied Skillsの試験では、ブラウザ上での操作を行います。

実際のAzure Portalで操作をするのではなく、ページ上に仮想的に作成されたデスクトップ画面を使って操作します。(おそらく外部のサーバで動作している仮想マシンへの接続をしています。)

そのため、動作が非常に重いです。

ですが、「古いPCのようにフリーズが頻発する」というよりかは、「フレームレートがかなり低い」といった重さなように感じました。

操作がしにくいことにはかわりなく、普段Azureの操作がなれている方でも苦戦すると感じました。

また、このサーバへの接続に恐ろしく時間がかかり、不安定でした。

1度接続できれば、以降は問題ありません。

初回接続が本当に長く、20分ほどかかりました(なお試験時間にカウントされています)

なお、画面の左上らへんに再起動のボタンがありましたので、こちらをクリックして接続できる可能性を上げることもできましたので、接続が難しかった場合、10分を目安に再起動を行ってみてください。

内容としては、試験時間2時間もいらないように感じますが、このような理由から2時間ほどの所有時間が必要となります。(筆者は1時間40分ほどかかりました)

 

2,再受験

もし不合格であった場合、再受験することができます。

こちらの再受験も無料です。

ですが、再受験の際には72時間のクールダウンがありますので、連続で受験ができるわけではありません。

出題される問題はおそらく試験回数によらず、毎回同じ問題だと思われますので、難しく感じた場合は試験問題を把握し、その後Learnで学習するといった方式でも良いかもしれません。(スキル定着が目標であれば、あまりおすすめしません)

 

3,合格のコツ

Applied Skills Networkはそれほど難しい試験ではないと個人的には感じています。

AZ-900以下くらいだと思われます。

合格のコツとしては、

  • Learnをそれなりに把握する
  • 焦らず、イライラしない

この2つくらいです。

特に2つ目の「焦らず、イライラしない」に関して、こちらは注意点1,2が原因ですが、待ち時間が長いことに対する覚悟は持った上で受験しましょう。
(個人的な体感では、操作と待ち時間の比率が3:7くらいです)

 

 

以上となります。

 

個人的にはすごく良い制度だと感じます。

 

ぜひ、挑戦してみてください

VyOSでVRFの設定をする

VyOSでのVRF

VyOSでのVRFは主に2種類あります。

  • L3VPN VRF

    ー MPLS VPNなどで使用されるVRF

  • VRF-Lite

    ー MPLSなどに限らず使用できる、企業ネットワークなどで使用されるVRF

当ページは一般的に広く使用されるVRF-Liteの設定について紹介します。

VRF-Lite

Ciscoでは次のように設定を行いました。

  1. VRFインスタンスを作成する
  2. (RDを指定する)
  3. インタフェースとの紐付けを行う

対して、VyOSでは次のように設定を行います。

  1. VRFインスタンスを作成する
  2. インタフェースとの紐付けを行う

このように、RDの指定は不要となっています。

VyOSでのVRF-LiteではRDの指定は不要となっています。(L3VPN VRFでは必要ですが、当ページでは紹介しません。)
他のCiscoとの違いとしては、CiscoではVRFインスタンスを変更したりした場合、紐付けられているインタフェースのIPアドレスなどがリセットされる仕様がありました。
対して、VyOSではそのような仕様はなく、IPアドレスは引き継がれます。

なお、IPv6上でもVRFを使用する場合は、CiscoではマルチプロトコルVRFを使用する必要がありましたが、VyOSではそのような区別はなく、通常のVRFでIPv6の設定も行うことができます。

VRFの設定には次のコマンドを使用します。

設定項目 コマンド
VRFインスタンスを作成する set vrf name <インスタンス名> table <テーブル番号>
インタフェースとVRFインスタンスを紐付ける set interface ethernet <インタフェース名> vrf <インスタンス名>

このようなコマンドを使用します。

VRFインスタンス名に加えて、テーブル番号を指定します。

複数のVRFインスタンスを作成する場合は、テーブル番号は重複させてはいけません。

なお、テーブル番号は100〜65535までの値で指定する必要があります。

関連サービス

VRFはVRF単体で使用することはあまりなく、他のネットワークサービスと併用することが一般的です。

主に次のようなサービスと併用を行うことが多いです。

それぞれ紹介します。

スタティックルート

特定のVRFインスタンスへスタティックルートを登録するには次のコマンドを使用します。

設定項目 コマンド
特定のVRFでスタティックルートを登録する set vrf name <VRF名> protocols static route <宛先ネットワーク/プレフィックス> <next-hop <ネクストホップのIPアドレス> | interface <インタフェース>>

ルーティングプロトコル

VRF上では、主にOSPFやBGPを動作させることが多いです。

それぞれ、次のコマンドを使用します。

設定項目 コマンド
特定のVRFでOSPFを有効にする set vrf name <VRF名> protocols ospf <各種設定内容>
特定のVRFでBGPを有効にする set vrf name <VRF名> protocols bgp <各種設定内容>

このようになります。

表中の各種設定内容には、普通のOSPFやBGPで実行していたコマンドなどが入ります。

ページ下部の例題3にて、VRF上でのOSPFの設定例を紹介しています。(BGPの設定は複雑になるため、当ページでは紹介を省略しています。)

なお、OSPFやBGPの設定に関しては次のページにて紹介していますので、未学習の場合は目を通していただけると幸いです。

VyOSでのOSPFに関して、Ciscoと異なり、プロセスIDの指定ができません。
CiscoではVRFとOSPFを併用する場合、各VRFごとにプロセスIDを分けていました。
対してVyOSでは、意図的にプロセスを分けなくても、name <VRF名>の指定により、各VRF上でのOSPFのプロセス(デーモン)が独立して動作することとなります。


DHCPサーバ

VRF上でDHCPサーバを動作させる場合、次のコマンドを使用します。

設定項目 コマンド
特定のVRFでDHCPサーバの設定を行う set vrf name <VRF名> service dhcp-server <各種設定内容>

このようになります。

表中の各種設定内容には、普通のDHCPサーバの設定で実行していたコマンドなどが入ります。

ページ下部の例題2にて、VRF上でのDHCPサーバの設定例を紹介しています。

なお、DHCPサーバの設定に関しては次のページにて紹介していますので、未学習の場合は目を通していただけると幸いです。



VRFは関連するサービスが多いため、説明も長くなってしまいました。

続いて、設定例などを紹介します。

例題1

コマンド

ルータ1

set vrf name red table 100
set vrf name green table 200

set interfaces ethernet eth1 address 10.0.0.1/24
set interfaces ethernet eth1 vrf red
set interfaces ethernet eth2 address 10.10.0.1/24
set interfaces ethernet eth2 vrf red
set interfaces ethernet eth3 address 10.0.0.1/24
set interfaces ethernet eth3 vrf green
set interfaces ethernet eth4 address 10.10.0.1/24
set interfaces ethernet eth4 vrf green

set vrf name red protocols static route 192.168.10.0/24 next-hop 10.0.0.2
set vrf name red protocols static route 192.168.20.0/24 next-hop 10.10.0.2
set vrf name green protocols static route 192.168.10.0/24 next-hop 10.0.0.2
set vrf name green protocols static route 192.168.20.0/24 next-hop 10.10.0.2

ルータ2

set interfaces ethernet eth1 address 10.0.0.2/24
set interfaces ethernet eth2 address 192.168.10.254/24

set protocols static route 0.0.0.0/0 next-hop 10.0.0.1

ルータ3

set interfaces ethernet eth1 address 10.10.0.2/24
set interfaces ethernet eth2 address 192.168.20.254/24

set protocols static route 0.0.0.0/0 next-hop 10.10.0.1

ルータ4

set interfaces ethernet eth1 address 10.0.0.2/24
set interfaces ethernet eth2 address 192.168.10.254/24

set protocols static route 0.0.0.0/0 next-hop 10.0.0.1

ルータ5

set interfaces ethernet eth1 address 10.10.0.2/24
set interfaces ethernet eth2 address 192.168.20.254/24

set protocols static route 0.0.0.0/0 next-hop 10.10.0.1

解説

ルータ1

  • 1つ目のブロックでVRFインスタンスを作成しています。

    重複しないインスタンス名とテーブル番号を指定する必要があります。

  • 2つ目のブロックでインタフェースの設定をしています。

    それぞれ、インタフェースのIPアドレスを設定した後にVRFインスタンスとの紐付けを行っています。

  • 3つ目のブロックでスタティックルートの登録を行っています。

    set vrf nameコマンドから設定を行うことにより、各VRFで適切にスタティックルートの登録を行う必要があります。


その他のルータ

その他のルータでは、VRFに関する設定は特に不要です。

今回はインタフェースのIPアドレスと、デフォルトルートの設定のみを行いました。

確認

VRFの設定に関して確認するには次のコマンドを使用します。

確認内容 コマンド
VRFの設定を確認する run show vrf <VRF名>
特定のVRFインスタンスのテーブルを確認する run show ip route vrf <VRF名 | all>
ルーティングテーブルの確認について、Cisco同様、通常のコマンドを使用してしまうとVRFの経路は表示されません。
そのため、特定のVRFインスタンスへ登録した経路はvrfオプションをつけてのみ確認可能となります。


それぞれルータ1で実行してみます。


run show vrfコマンドでは、VRFが有効かどうかや紐付けられているインタフェースなどを確認することができます。

続いて、各ルーティングテーブルを確認します。


今回はvrf allと指定し、すべてのVRFインスタンスの経路を表示しましたが、特定のインスタンス名に限定することも可能です。

 

また、もし普通のrun show ip routeコマンドを実行するとこのようになります。


今回はグローバルルーティングテーブルになにも経路や設定をしていないため、経路が1つも表示されません。

 

例題2

例題1のトポロジを流用します。(問題文のみ変更されています。)

コマンド

ルータ1(追加コマンド)

set vrf name red service dhcp-server shared-network-name RED_LAN10 subnet 192.168.10.0/24 subnet-id 10 
set vrf name red service dhcp-server shared-network-name RED_LAN10 subnet 192.168.10.0/24 range RED_LAN10 start 192.168.10.10
set vrf name red service dhcp-server shared-network-name RED_LAN10 subnet 192.168.10.0/24 range RED_LAN10 stop 192.168.10.100
set vrf name red service dhcp-server shared-network-name RED_LAN10 subnet 192.168.10.0/24 lease 86400
set vrf name red service dhcp-server shared-network-name RED_LAN10 subnet 192.168.10.0/24 option default-router 192.168.10.254
set vrf name red service dhcp-server listen-address 10.0.0.1

ルータ2(追加コマンド)

set service dhcp-relay listen-interface eth2
set service dhcp-relay upstream-interface eth1
set service dhcp-relay server 10.0.0.1

解説

ルータ1

DHCPサーバに関する設定を行っています。

vrf name red serviceにDHCPの設定を続けることで、特定のVRFインスタンスに対してのみアドレス配布が行えるようになります。

 

ルータ2

DHCPリレーエージェントの設定を行っています。

そのため、今回はDHCPサーバで配布されるデフォルトゲートウェイのIPアドレスをルータ2のアドレスにしてあげる必要がありました。

例題3

コマンド

ルータ1

set vrf name red table 100
set vrf name green table 200

set interfaces ethernet eth1 address 10.0.0.1/24
set interfaces ethernet eth1 vrf red
set interfaces ethernet eth2 address 10.10.0.1/24
set interfaces ethernet eth2 vrf red
set interfaces ethernet eth3 address 10.0.0.1/24
set interfaces ethernet eth3 vrf green
set interfaces ethernet eth4 address 10.10.0.1/24
set interfaces ethernet eth4 vrf green

set vrf name red protocols ospf interface eth1 area 0
set vrf name red protocols ospf interface eth1 priority 255
set vrf name red protocols ospf interface eth2 area 0
set vrf name red protocols ospf interface eth2 priority 255
set vrf name green protocols ospf interface eth3 area 0
set vrf name green protocols ospf interface eth3 priority 255
set vrf name green protocols ospf interface eth4 area 0
set vrf name green protocols ospf interface eth4 priority 255

ルータ2

set interfaces ethernet eth1 address 10.0.0.2/24
set interfaces ethernet eth2 address 192.168.10.254/24

set protocols ospf interface eth1 area 0
set protocols ospf interface eth2 area 0
set protocols ospf interface eth2 passive

ルータ3

set interfaces ethernet eth1 address 10.10.0.2/24
set interfaces ethernet eth2 address 192.168.20.254/24

set protocols ospf interface eth1 area 0
set protocols ospf interface eth2 area 0
set protocols ospf interface eth2 passive

ルータ4

set interfaces ethernet eth1 address 10.0.0.2/24
set interfaces ethernet eth2 address 192.168.10.254/24

set protocols ospf interface eth1 area 0
set protocols ospf interface eth2 area 0
set protocols ospf interface eth2 passive

ルータ5

set interfaces ethernet eth1 address 10.10.0.2/24
set interfaces ethernet eth2 address 192.168.20.254/24

set protocols ospf interface eth1 area 0
set protocols ospf interface eth2 area 0
set protocols ospf interface eth2 passive

解説

ルータ1

3つ目のブロックで各VRF上でOSPFの設定を行っています。

set vrf nameコマンドからOSPFの設定を行うことで、各VRFごとにOSPFを動作させることができます。


その他のルータ

その他のルータでは、OSPFを動作させることに加え、内部側インタフェースではパッシブインタフェースとすることで無駄なトラフィックを削減しています。

確認

VRF上のOSPFの確認を行うには次のコマンドを使用します。

確認内容 コマンド
VRF上のOSPFの各種設定内容を確認する run show ip ospf vrf <VRF名> <各種確認項目>
ルーティングテーブルの確認をする run show ip route vrf <VRF名 | all>

試しに、ルータ1でredのネイバーを確認してみます。

続いて、redのルーティングテーブルも確認してみます。


それぞれ適切に登録・認識されていることが確認できました。

 

 

 

以上となります。

 

VRFはややこしい技術ではありますが、様々なネットワークで使用できる技術ですので、ぜひ身につけましょう。

 

お疲れ様でした

VyOSでユーザの設定 及び SSHの設定をする

VyOSでのSSH

Ciscoでは次の手順でSSHの設定を行いました。

  1. ホスト名を設定する
  2. ドメイン名を設定する
  3. RSA鍵を作成する
  4. 認証方式の設定をする
  5. SSHのバージョンを指定する
  6. SSHを有効にする

対して、VyOSでは次の手順で設定を行います。

  1. (認証の設定をする)
  2. SSHを有効にする

かなり簡単に設定することができ、SSHを有効にするという1つの工程でもSSHアクセスを可能にすることができます。

VyOSではCiscoよりも簡単にSSHの設定を行うことができます。
VyOSはLinuxベースのルータOSであり、LinuxのSSHの仕組みである、OpenSSHを利用してSSHアクセスを可能にしています。
そのため、ホスト名やドメイン名は設定する必要がありません。

当ページでは次のパートに分けて解説します。

SSHを有効にする

VyOSでSSHを有効にするには、次のコマンドを実行します。

設定項目 設定内容
SSHを有効にする set service ssh port <ポート番号>

なお、ポート番号には「22」を入れることが一般的です。

このコマンド1つでSSHを有効化することができます。(詳しくは後述)

設定例を紹介します。

例題1

VyOSルータのインタフェースeth1にIPアドレス192.168.10.254/24を設定し、SSHアクセスができるようにします。

コマンド

set interface ethernet eth1 address 192.168.10.254/24

set service ssh port 22

解説

IPアドレスを設定した後にSSHを有効にしています。

 

set service ssh port 22のみでSSHを有効化できるのには、次の理由があります。
・OpenSSHの仕組みを使用しているため、設定が簡素化できる
・VyOSにはデフォルトでユーザが作成されている(ユーザ名:vyos、パスワード:vyos)

ですが、このまま使用するとセキュリティ的に問題がありますので、次に紹介する認証方式の設定を行います。


認証に関する設定(ユーザの作成等)をする

前述の通り、デフォルトユーザを使用し続けることと、パスワード認証をSSHで行うことはセキュリティ的に問題があります。

そこで、ユーザの新規作成を行います。

ユーザの新規作成には次のコマンドを使用します。

設定項目 コマンド
新しいユーザを作成する set system login user <ユーザ名> authentication <認証方式> <認証情報等>


コマンドの<認証方式>では、様々な方式を使用することができますが、よく使用するのは次の2つです。

  • プレーンテキスト認証(plaintext-password)
  • 公開鍵認証(public-keys)

それぞれ設定コマンドは次のようになります。

プレーンテキスト認証でユーザを作成する

設定項目 コマンド
ユーザを作成する set system login user <ユーザ名> authentication plaintext-password <パスワード文字列>

公開鍵認証でユーザを作成する

設定項目 コマンド
鍵生成アルゴリズムを指定する set system login user <ユーザ名> authentication public-keys <鍵名&gt type <アルゴリズム>
鍵を登録する set system login user <ユーザ名> authentication public-keys <鍵名> key '<鍵>'

公開鍵認証に関して、typeでは「ssh-ed25519」を指定することが一般的です。
また、鍵の登録の際、文字列の両端に「'(シングルクォート)」を入力しないと鍵文字列と認識されませんので注意が必要です。

なお、別途クライアント等で作成した鍵(pubファイル)は次のような形式になっていると思われます。
ssh-ed25519 AA・・・・
この先頭のssh-ed25519は不要で「AA・・・」以降をVyOSにkeyとして登録する必要があります。


なお、次の設定を行うことも多いです。

 

設定項目 コマンド
ユーザを無効にする set system login user <ユーザ名> disable

このコマンドを使用して、デフォルトユーザ(vyos)を無効にします。

set system login user vyos disable

 

設定項目 コマンド
パスワード認証を無効にする set service ssh disable-password-authentication

公開鍵認証を設定する場合、パスワード認証を無効にしておいたほうがセキュリティを向上させることができます。

基本的にはこれらのコマンドを使用してSSHアクセスをコントロールします。

例題2



コマンド


まず、UbuntudesktopPCで鍵を作成します。

ubuntudesktopPC

ssh-keygen -t ed25519

これにより鍵が作成されました。デフォルトでは~/.sshに作成されると思います。

このうちの拡張子がpubであるほうが公開鍵ですので、こちらをcatコマンドで閲覧します。

cat ~/.ssh/id_ed25519.pub

すると、次のような出力が得られると思われます。

 

うちの、ssh-ed25519を除いた、AAA・・・・をコピーしておきます。

続いて、ルータ1の設定へ行きましょう。

ルータ1

set interfaces ethernet eth1 address 192.168.10.254/24

set system login user testuser1 authentication public-keys testuser1key type ssh-ed25519
set system login user testuser1 authentication public-keys testuser1key key 'AAAAC3NzaC1lZDI1NTE5AAAAIL7ZBjMOJDOOj4v/c4p60Jfr19nuYUZyrIWaIktH0x7o bosshost@bosshost'
set system login user vyos disable

set service ssh port 22
set service ssh disable-password-authentication

解説

  • 1つ目のブロックでインタフェースのIPアドレスを設定しています。
  • 2つ目のブロックでユーザの設定を行っています。

    まず、新規ユーザとしてtestuser1を作成し、認証方式としてpublic-keys(公開鍵方式)を指定しています。

    1つ目のコマンドでアルゴリズムを、2つ目のコマンドで先程Ubuntuで生成した鍵を指定しています。

    最後に、デフォルトのユーザであるvyosを無効化しています。

  • 3つ目のブロックでSSHの設定をしています。

    SSHの有効化に加えて、パスワード認証を無効にしています。

    今回は公開鍵認証を行うため、パスワード認証は無効にしておいたほうがセキュリティ的に良いでしょう。

以上となります。

続いて、確認を行います。

確認

UbuntudesktopPCからSSHアクセスができるか確認しましょう。

UbuntudesktopPC

ssh testuser1@192.168.10.254

コマンド実行によりパスワード入力を求められずにルータ1へアクセスできたら成功となります。

プロンプトが「testuser1@vyos」となっていれば成功です。

 

 

以上となります。

 

今回はネットワークだけでなく、Linuxの知識も必要となる分野でした。

Linux及びネットワーク学習を行う方の手助けになれば幸いです。

 

お疲れ様でした

VyOS 基本コマンド

VyOS基本コマンド

当ベージでは、次の項目を紹介します。

なお、VyOSの導入に関しては次のページで紹介をしています。まだVyOSの導入が済んでいない場合はこちらのページからご確認をお願いします。

VyOSの基礎

VyOSを起動すると、最初にログインプロンプトが表示されます。

画面例

login: でユーザ名を入力すると、次はパスワードの入力が求められます。

VyOSでは、初期ユーザのログイン情報は、次のようになっています。

ユーザ名 パスワード
vyos vyos

これらを入力することで、ログイン成功表記と設定画面へ行くことができます。

ログインに成功すると、プロンプトがvyos@vyos:~$となります。

vyos@vyos:~$ 

この$のプロンプトでは、設定を行うことはできず、確認コマンドやpingコマンドなどのみ実行することができます。

設定を行うするには、configureコマンドを使い、設定モードに入ります。

vyos@vyos:~$ configure 
vyos@vyos# 

プロンプトが$から#へ変更されれば成功です。

VyOSでは初期ログイン情報がユーザ名/パスワードともに、vyosとなっています。
また、ログイン直後は設定ができないモードである、閲覧モードになっているため、configureコマンドで設定モードへ移行する必要があります。
見分け方は次の通りです。
マーク モード
$ 閲覧モード
# 設定モード
また、閲覧モードで実行できるコマンドは、設定モードにて、「run」キーワードを使用することで使用することもできます。
詳しくは後述します。

また、当ブログでは基本的にコマンドのみを紹介するため、プロンプトを省略します。


コマンドの型

VyOSでは、設定を行う際には、setキーワードを使用します。

例1(インタフェースの設定を行う場合)

set interface ethernet eth1 address 192.168.10.10/24

例2(OSPFの設定を行う場合)

set protocols ospf interface eth1 area 0
set protocols ospf interface eth2 area 0

どのような設定内容であっても、必ず最初にsetを入力します。

対して、実行したコマンドを削除するには、deleteキーワードを使用します。

例(先程設定したインタフェースの設定を削除する)

delete interface ethernet eth1 address 192.168.10.10/24

deleteコマンドでは、階層に深く注意をはらう必要があります。
例として、OSPFの設定を削除する場合、2つの削除方法があります。

方式1

delete protocols ospf interface eth1 area 0
delete protocols ospf interface eth2 area 0
方式1では、設定したコマンドを1つずつ削除しています。

対して、まとめて削除する方法があります。

方式2

delete protocols ospf
このように設定した場合、protocols ospf・・・と続くコマンドをすべて削除します。

このようにまとめて削除を行うことができる反面、誤って削除しすぎてしまうこともあるため、注意が必要です。

また、VyOSの大きな特徴として、「commit」コマンドがあります。

VyOSでは、設定コマンドを入力した後に、このcommitコマンドを実行しないと、設定が反映されません。

set interface ethernet eth1 address 192.168.10.10/24
set protocols ospf interface eth1 area 0
# この時点ではまだ設定は反映されていない

commit
# commitコマンドの入力により設定が反映される。

VyOSではcommitコマンドを実行しないと設定が反映されませんので、必ず実行を行ってください。(複数のコマンドを入力した後にcommitを実行して、まとめて反映させることもできます。)
なお、当ブログではcommitコマンドは省略されていることもありますが、コマンド実行後にはcommitを必ず行うようお願いいたします。

 

また、commitを行うと実行中のルータに設定が反映されますが、ルータに設定が保存されるわけではありません。

 

設定を保存するにはsaveコマンドを実行します。

 

commitコマンドだけでは設定を保存することはできません。

Ciscoで例えるならば、
commitコマンド → running-configへの書き込み
saveコマンド → startup-configへの書き込み
といったイメージです。

 

VyOSの基本的な操作はこのようになっています。

インタフェースの設定

インタフェースの設定は次の手順で行います。

  1. インタフェースにIPアドレスを設定する
  2. インタフェースを有効にする

インタフェースにIPアドレスを設定するには次のコマンドを使用します。

設定項目 コマンド
インタフェースにIPアドレスを設定する set interface <インタフェースの種類> <インタフェース名> address <IPアドレス/プレフィックス>

インタフェースの種類とは、例として次のようなものがあります。

  • ethernet
  • loopback
  • tunnel

物理インタフェースを設定する際には、基本的にはethernetを選択します。

続いて、インタフェース名の指定を行います。

インタフェース名は物理インタフェースであれば、「ethX」といったフォーマットになっており、0から番号が振られます。

IPアドレスの指定に関して、プレフィックス表記を使用した設定のみ可能で、ドット付き10進数表記(例:255.255.255.0)は使用できません。


工程2のインタフェースの有効化に関して、VyOSではインタフェースを有効化するコマンドはありません。
インタフェースへの接続を検知すると、自動でインタフェースが有効になります。

ですが、意図的にインタフェースをダウンさせたい場合、次のコマンドを実行します。
設定項目 コマンド
インタフェースを無効化する set interface <インタフェースの種類> <インタフェース名> disable

 

例題

インタフェースeth1にIPアドレス192.168.10.10/24を設定する

コマンド

set interface ethernet eth1 address 192.168.10.10/24

確認

VyOSでインタフェースの確認を行うには、次のコマンドを使用します。

確認内容 コマンド
インタフェースの確認を行う run show interfaces

実際に確認してみます。

 

run show interfaces

 

次のような出力が得られます。

 

 

出力のS/Lに関して、こちらはインタフェースの状態を表しており、u/Dではダウンしていることとなります。

 

試しに、eth1にルータやPCなどの機器を接続してみます。

 

接続後のrun show interfaces

 

このように、u/uとなり、インタフェースがUPしました。

スタティックルート

VyOSでスタティックルートを登録するには、次のコマンドを使用します。

設定項目 コマンド
スタティックルートを登録する set protocols static route <宛先ネットワーク/プレフィックス> <next-hop <ネクストホップのIPアドレス> | interface <送信インタフェース>>

ネクストホップのIPアドレスを指定しても、自身の送出インタフェースを指定してもどちらでも問題ありません。

ですが、場合によっては「ネクストホップのIPアドレスを指定したほうが安定する」などがありますので、その点には注意が必要です。

 

例題

コマンド

ルータ1

set interfaces ethernet eth1 address 1.1.1.1/24
set interfaces ethernet eth2 address 192.168.10.254/24
set protocols static route 192.168.20.0/24 next-hop 1.1.1.2

ルータ2

set interface ethernet eth1 address 1.1.1.2/24
set interface ethernet eth2 address 192.168.20.254/24
set protocols static route 0.0.0.0/0 next-hop 1.1.1.1


解説

双方のルータでインタフェースとスタティックルートの設定をしています。

なお、デフォルトルートは0.0.0.0/0となります。


確認

VyOSでルーティングテーブルを確認するには、次のコマンドを実行します。

確認内容 コマンド
ルーティングテーブルを確認する run show ip route

双方のルータで実行してみます。

ルータ1

ルータ2


基本確認コマンド

 

VyOSでは、今まで紹介した確認コマンドに加え、次の確認コマンドを使用することが多いです。

確認項目 コマンド
ルータに行われている設定を表示する run show configuration commands


run show configuration commandsにより、ルータに設定されている全コマンドを表示させることができます。

試しに先程の設定例のルータ1で実行してみます。

ルータ1

run show configuration commands

 



自身で設定したコマンドに加え、デフォルトで実行されているコマンドなどもすべて表示されます。

 

ですが、これでは自分の狙った設定をピンポイントで見つけることが困難です。

そこで、matchオプションを使用します。

オプションを使用する際には、「|」でコマンドを区切り、match <キーワード>と言ったように実行します。

 

試しにルータ1で実行してみます。

ルータ1

run show configuration commands | match route

 

 

このようにすると、routeという単語が含まれているコマンドのみが表示されるようになります。

 

 

最後に、今回出てきた基本的な確認コマンドをリストにしておきます。

確認項目 コマンド
インタフェースを確認する run show interfaces
ルーティングテーブルを確認する run show ip route
ルータに設定されているコマンドを表示する run show configuration commands [ | match <キーワード>]

 

以上となります。

 

VyOSは階層化がすごく丁寧におこなわれており、最初はなれない点はあると思いますが、段々とVyOSの作法になれていきましょう。

VyOSでネットワーク構築を行おうと考えている方の支えになれば幸いです。

 

 

お疲れ様でした

ネットワーク構築課題(BGP・BFD)

BGP・BFDの設定

今回の問題はBGPの設定と、BFDの設定の知識が必要となります。

これらに関して未学習である場合は、下記の記事にて紹介していますのでそちらをご確認していただければ幸いです。

問題

コマンド

ルータ1

set interfaces ethernet eth1 address 100.0.0.1/24
set interfaces ethernet eth2 address 192.168.10.254/24
set interfaces loopback lo address 1.1.1.1/32

set protocols static route 2.2.2.2/32 next-hop 100.0.0.2

set protocols bgp system-as 100
set protocols bgp neighbor 2.2.2.2 remote-as 200
set protocols bgp neighbor 2.2.2.2 update-source lo
set protocols bgp neighbor 2.2.2.2 ebgp-multihop 2
set protocols bgp neighbor 2.2.2.2 address-family ipv4-unicast
set protocols bgp address-family ipv4-unicast network 192.168.10.0/24

set protocols bfd peer 2.2.2.2 interval transmit 300
set protocols bfd peer 2.2.2.2 interval receive 500
set protocols bfd peer 2.2.2.2 interval multiplier 3
set protocols bfd peer 2.2.2.2 multihop
set protocols bfd peer 2.2.2.2 source address 1.1.1.1
set protocols bgp neighbor 2.2.2.2 bfd

ルータ2

set interfaces ethernet eth1 address 100.0.0.2/24
set interfaces ethernet eth2 address 192.168.20.254/24
set interfaces loopback lo address 2.2.2.2/32

set protocols static route 1.1.1.1/32 next-hop 100.0.0.1

set protocols bgp system-as '200'
set protocols bgp neighbor 1.1.1.1 remote-as 100
set protocols bgp neighbor 1.1.1.1 update-source lo
set protocols bgp neighbor 1.1.1.1 ebgp-multihop 2
set protocols bgp neighbor 1.1.1.1 address-family ipv4-unicast
set protocols bgp address-family ipv4-unicast network 192.168.20.0/24

set protocols bfd peer 1.1.1.1 interval transmit 300
set protocols bfd peer 1.1.1.1 interval receive 500
set protocols bfd peer 1.1.1.1 interval multiplier 3
set protocols bfd peer 1.1.1.1 multihop
set protocols bfd peer 1.1.1.1 source address 2.2.2.2
set protocols bgp neighbor 1.1.1.1 bfd

解説

  • 1つ目のブロックでインタフェースのIPアドレスの設定をしています。
  • 2つ目のブロックでスタティックルートの設定をしています。

    今回はeBGPをループバックインタフェース同士で構成するため、双方に対抗ルータのループバックインタフェースへの到達性を確保する必要があります。

  • 3つ目のブロックでBGPの設定をしています。

    送信元インタフェースをループバックインタフェースとすると同時に、今回はeBGPをループバックインタフェース同士で構成するため、TTLを2以上の値にする必要があります。

  • 4つ目のブロックでBFDの設定をしています。

    今回はループバックインタフェース同士でBFDを動作させるため、シングルホップのBFDでは対抗ピアへ到達できないため、マルチホップのBFDを使用する必要があります。

    なお、マルチホップのBFDを設定する際には送信元IPアドレスを必ず設定する必要がある点に注意が必要です。

    最終行でBGPピアへの適用を行っています。


今回は次の手順で設定を行いました。
1,BGPの設定
2,BFDの設定
3,BFDをBGPに適用する

この手順だと、BGP→BFD→BGPと階層を変更する必要があるため、若干の手間があります。
そのため、BGPの設定の際にBFDとの紐付けを行う、次のようなコマンド手順でも問題ありません。

ルータ2(例)

set interfaces ethernet eth1 address 100.0.0.2/24
set interfaces ethernet eth2 address 192.168.20.254/24
set interfaces loopback lo address 2.2.2.2/32

set protocols static route 1.1.1.1/32 next-hop 100.0.0.1

set protocols bgp system-as '200'
set protocols bgp neighbor 1.1.1.1 remote-as 100
set protocols bgp neighbor 1.1.1.1 update-source lo
set protocols bgp neighbor 1.1.1.1 ebgp-multihop 2
set protocols bgp neighbor 1.1.1.1 address-family ipv4-unicast
set protocols bgp neighbor 1.1.1.1 bfd
set protocols bgp address-family ipv4-unicast network 192.168.20.0/24

set protocols bfd peer 1.1.1.1 interval transmit 300
set protocols bfd peer 1.1.1.1 interval receive 500
set protocols bfd peer 1.1.1.1 interval multiplier 3
set protocols bfd peer 1.1.1.1 multihop
set protocols bfd peer 1.1.1.1 source address 2.2.2.2
BFDの設定を行う前にBGPでBFDとの紐付けをしていますが、VyOSでは基本的にはcommitされている際に必要なコマンドが入力されていれば良いため、このような設定方法でも問題ありません。(一部例外)


確認

今回の問題では次の項目がどうかを確認します。

  • BFDピアが適切に構成されているか
  • BGPピアが適切に構築されているか
  • BGPとBFDの紐付けが適切に行われているか

まず、BFDピアが適切に構成されているかを確認します。

双方のルータでrun show bfd peersを実行します。

ルータ1

ルータ2

 

双方ともにStateがUPとなっているため、適切にBFDが動いていることがわかります。

 

続いて、BGPピアが適切に構築されているかを確認します。

双方のルータでrun show bgp neighborsを実行します。(出力が長いため、一部のみ掲載します。)

ルータ1

ルータ2

 

双方ともにStateがEstablishedとなっているため、適切にBGPピアとなっていることがわかります。

 

最後に、BGPとBFDの紐付けが適切に行われているかを確認します。

こちらもrun show bgp neighborコマンドの出力で確認することができます。

出力の下側に表示されます。(出力が長いため、下側の一部のみ掲載します。)

ルータ1

ルータ2

 

BFDに関する記述があることがわかります。

この記述があることがBFDとの紐付けが適切に行われている証拠となります。

例として、BFDとの紐付け(set protocols bgp neighbor 1.1.1.1 bfd)がなかった場合の出力を添付します。

ルータ2(BFD未紐付けの場合)

 

同じ位置ですがBFDに関する記述がありません。

 

run show bgp neighborからの出力だと、BFDのパラメータが設定と一致していない場合があります。
これはBFD側でどのような値を設定してもrun show bgp neighborの出力からはMultiplier3,RX300,TX300の値しか得られませんので、BFDのパラメータを確認する際にはrun show bfd peersの出力を確認するべきです。
なお、実際にはBFDで設定したパラメータで動作しているそうです。

 

以上となります。

 

お疲れ様でした