モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

VyOS の High Availability 設定 (VRRP)

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2017/04/02
最終更新最終更新
2019/08/08
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    Pythonでデータ解析と自動化ツールを開発しています。DjangoでのWeb開発も得意です!

    0
    ステッカーを贈るとは?

    VRRP (Virtual Router Redundancy Protocol) という仕組みを用いて可用性を高めるための設定方法をまとめます。

    設定方法を検証するための構成

    VirtualBox のゲスト OS として VyOS 用の VM を三つ用意します。192.168.200.0/24 のネットワークは VirtualBox の「内部ネットワーク」として用意します。

    ホスト OS の所属するネットワーク
    |
    |
    |NAT
    |                      .1
    |- eth0 | vyos-0001 | eth1 --|
    |           master     .4    |
    |                      VIP   |---- eth0 | vyos-0003
    |                            |      .3
    |- eth0 | vyos-0002 | eth1 --|
                backup     .2   192.168.200.0/24
    

    固定 IP の設定

    vyos-0001

    vyos@vyos-0001# set interfaces ethernet eth1 address 192.168.200.1/24
    vyos@vyos-0001# commit
    vyos@vyos-0001# save
    

    vyos-0002

    vyos@vyos-0002# set interfaces ethernet eth1 address 192.168.200.2/24
    vyos@vyos-0002# commit
    vyos@vyos-0002# save
    

    vyos-0003

    vyos@vyos-0003# set interfaces ethernet eth0 address 192.168.200.3/24
    vyos@vyos-0003# commit
    vyos@vyos-0003# save
    

    VRRP 設定

    192.168.200.4/24 を仮想 IP として設定します。vyos-0001 の priority を高めに設定することで master に指定します。同じセグメントに他の VRRP のパケットが流れたときに区別ができるように、vrrp-group というグループ ID を設定します。ここでは仮に 10 としました。また、sync-group は今回の用途では実は不要な設定です。複数の VRRP 設定を同じ sync-group に所属させると、あるグループの interface で failover が発生したときに、他のグループでも failover が発生するようになります。例えば vyos-0001 の eth0 と vyos-0002 の eth0 でも VRRP 設定を組んだときに、eth0 側と eth1 側で master が不一致になる状況を回避できます。公式ドキュメントはこちらです。VRRP は VyOS 公式ドキュメントにおける記述がなく、必要に応じて Vyatta のドキュメントを参照する必要があります。

    vyos-0001

    vyos@vyos-0001# set interfaces ethernet eth1 vrrp vrrp-group 10 virtual-address 192.168.200.4/24
    vyos@vyos-0001# set interfaces ethernet eth1 vrrp vrrp-group 10 sync-group my-vrrp-sync-group
    vyos@vyos-0001# set interfaces ethernet eth1 vrrp vrrp-group 10 priority 255
    vyos@vyos-0001# commit
    vyos@vyos-0001# save
    

    vyos-0002

    vyos@vyos-0002# set interfaces ethernet eth1 vrrp vrrp-group 10 virtual-address 192.168.200.4/24
    vyos@vyos-0002# set interfaces ethernet eth1 vrrp vrrp-group 10 sync-group my-vrrp-sync-group
    vyos@vyos-0002# set interfaces ethernet eth1 vrrp vrrp-group 10 priority 100
    vyos@vyos-0002# commit
    vyos@vyos-0002# save
    

    内部からの確認

    VRRP の状態を確認します。vyos-0001 が master として認識されていることが分かります。

    vyos-0001

    vyos@vyos-0001# run show vrrp detail
    Use of uninitialized value in printf at /opt/vyatta/share/perl5/Vyatta/VRRP/OPMode.pm line 249.
    --------------------------------------------------
    Interface: eth1
    --------------
      Group: 1
      ----------
      State:                        MASTER
      Last transition:              2m6s
    
      Source Address:
      Priority:                     255
      Advertisement interval:       1 sec
      Authentication type:          none
      Preempt:                      enabled
    
      Sync-group:                   my-vrrp-sync-group
    
      VIP count:                    1
        192.168.200.4/24
    

    vyos-0002

    vyos@vyos-0002# run show vrrp detail
    Use of uninitialized value in printf at /opt/vyatta/share/perl5/Vyatta/VRRP/OPMode.pm line 249.
    --------------------------------------------------
    Interface: eth1
    --------------
      Group: 1
      ----------
      State:                        BACKUP
      Last transition:              1m13s
    
      Master router:                192.168.200.1
      Master priority:              255
    
      Source Address:
      Priority:                     100
      Advertisement interval:       1 sec
      Authentication type:          none
      Preempt:                      enabled
    
      Sync-group:                   my-vrrp-sync-group
    
      VIP count:                    1
        192.168.200.4/24
    

    外部からの確認

    vyos-0003 から VIP に対して arping を実行すると、vyos-0001 の 192.168.200.1 に対して実行したときと同じ MAC アドレスが得られることが分かります。

    vyos@vyos-0003:~$ arping 192.168.200.1
    WARNING: interface is ignored: Operation not permitted
    ARPING 192.168.200.1 from 192.168.200.4 eth0
    Unicast reply from 192.168.200.1 [08:00:27:5A:75:64]  0.838ms
    Unicast reply from 192.168.200.1 [08:00:27:5A:75:64]  0.842ms
    
    vyos@vyos-0003:~$ arping 192.168.200.2
    WARNING: interface is ignored: Operation not permitted
    ARPING 192.168.200.2 from 192.168.200.4 eth0
    Unicast reply from 192.168.200.2 [08:00:27:A6:0C:AC]  0.890ms
    Unicast reply from 192.168.200.2 [08:00:27:A6:0C:AC]  0.987ms
    
    vyos@vyos-0003:~$ arping 192.168.200.4
    WARNING: interface is ignored: Operation not permitted
    ARPING 192.168.200.4 from 192.168.200.4 eth0
    Unicast reply from 192.168.200.4 [08:00:27:5A:75:64]  0.762ms
    Unicast reply from 192.168.200.4 [08:00:27:5A:75:64]  0.850ms
    

    障害時の検証

    vyos-0001 と vyos-0002 に割り当てられた IP を確認します。一般に、一つのインターフェースには IPv4 と IPv6 の混在も含めて複数の IP を設定可能です。ただし、DHCP との混在はできません。

    vyos-0001

    vyos@vyos-0001# run show interfaces ethernet eth1
    eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:5a:75:64 brd ff:ff:ff:ff:ff:ff
        inet 192.168.200.1/24 brd 192.168.200.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet 192.168.200.4/24 scope global secondary eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fe5a:7564/64 scope link
           valid_lft forever preferred_lft forever
    
        RX:  bytes    packets     errors    dropped    overrun      mcast
             20331        152          0          0          0          0
        TX:  bytes    packets     errors    dropped    carrier collisions
             70623       1058          0          0          0          0
    

    vyos-0002

    vyos@vyos-0002# run show interfaces ethernet eth1
    eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:a6:0c:ac brd ff:ff:ff:ff:ff:ff
        inet 192.168.200.2/24 brd 192.168.200.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fea6:cac/64 scope link
           valid_lft forever preferred_lft forever
    
        RX:  bytes    packets     errors    dropped    overrun      mcast
             47460        791          0          0          0        774
        TX:  bytes    packets     errors    dropped    carrier collisions
              1058         11          0          0          0          0
    

    ここで vyos-0001 を落としてみます。

    vyos@vyos-0001:~$ poweroff
    

    vyos-0002 に VIP が移動しました。vyos-0001 を起動すると VIP は元に戻ります。

    vyos@vyos-0002# run show interfaces ethernet eth1
    eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:a6:0c:ac brd ff:ff:ff:ff:ff:ff
        inet 192.168.200.2/24 brd 192.168.200.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet 192.168.200.4/24 scope global secondary eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fea6:cac/64 scope link 
           valid_lft forever preferred_lft forever
    
        RX:  bytes    packets     errors    dropped    overrun      mcast
             51600        860          0          0          0        843
        TX:  bytes    packets     errors    dropped    carrier collisions
              2858         41          0          0          0          0
    
    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    Pythonでデータ解析と自動化ツールを開発しています。DjangoでのWeb開発も得意です!

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • Ciscoルータの基本操作
        シスコ社の製品のうち、ルータは Cisco*** という製品名でスイッチは Catalyst*** という製品名です。いずれも *** は機種番号で、数字が小さいほど小規模ネットワーク向けとなっています。例えば資格試験 CCNA Routing and Switching では小規模および中規模ネットワークが対象です。そのため、中小規模のネットワークのルータおよびス
      • BIND 9 ゾーンファイル Dynamic Update の設定方法
        DHCP 環境下などで IP が動的に付与される場合は DNS レコードを動的に更新する必要があります。これを実現する Dynamic Update 機能が BIND 9 には実装されています。使用方法をまとめます。Dynamic Update に対応した DNS を特に Dynamic DNS または DDNS とよぶことがあります。 ゾーンファイルの作成 ローカルホストに example.co...
      • VyOS の基本的なルーティング設定
        本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP)の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネッ...
      • BIND 9.10.2 の公式マニュアルに学ぶ DNS の基本
        DNS の実装としては Internet Systems Consortium (ISC) の Berkeley Internet Name Domain (BIND) が有名です。本ページは公式サイトの Documentation からダウンロードできる v9.10.2 の PDF マニュアルおよび『DNSの仕組み完全解説』から基本事項を抽出してまとめ
      • スタティックルートの設定
        サムネイル画像-73e0bcdf3a
        インターフェイスに IP を設定しただけでは他のデバイスと通信できません。各デバイスにルーティングテーブルを設定する必要があります。ルーティングテーブルの設定方法には動的に自動設定するものと、静的に手動設定するものの二種類があります。ここでは静的に手動設定するスタティックルートの方法を紹介します。 具体的にはまず PC0, PC1, Router0, Router1 それぞれ
        あきらあきら10/7/2021に更新
        いいねアイコン画像0