(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Vyatta】config-syncで片方のRouterに定義を同期して反映する

スポンサーリンク

はじめに

VyattaではNETCONF Protocolという機構を利用してConfigをネットワーク越しに設定することができますが、冗長構成のVyattaではset system config-syncを用いることで片側でのcommit時に構成定義の同期が可能となります。

本記事ではVRRP構成のVyattaを利用し、実際に確認しました。

環境情報
  • Debian 4.19.150-0vyatta1

1系側での設定

対向のIPアドレスを以下のように入れておき

set system config-sync remote-router xx password '********'
set system config-sync remote-router xx sync-map TEST
set system config-sync remote-router xx username vyatta

対向に同期させたい設定項目を以下のように記載しておきます。

set system config-sync sync-map TEST rule 1 action include
set system config-sync sync-map TEST rule 1 location 'service firewall'

ただし、この状態であれば以下のように対向側とのコネクションの成立に失敗します。

# commit
syncing configuration to remote-router X.X.X.X ..
config-sync error X.X.X.X:Remote:X.X.X.X: Connect failed:Could not open socket to X.X.X.X:830

2系側での設定

上記にある通りで830番ポートで接続に来るため以下を投入します。

# set service netconf
# set service ssh port 830

この設定を入れると

$ show system connections 
...
tcp        0      0 0.0.0.0:830             0.0.0.0:*               LISTEN
tcp6       0      0 :::830                  :::*                    LISTEN

該当ポートがリッスン状態となります。

この状態でも同期には以下のように失敗するので

# commit
...
config-sync error X.X.X.X:Sync[X.X.X.X]: Remote user vyatta not in secrets group

最後に1系側で指定したユーザに以下のようなグループ定義を与えます。

# set system login group secrets
# set system login user vyatta group secrets

config-syncの確認

同状態で新たな定義を追加して

# set security firewall name SERVICE-ALLOW rule XX action accept
# set security firewall name SERVICE-ALLOW rule XX destination address ...

1系にてcommitを行うと、標準出力にて"sync done"と出力されて

syncing configuration to remote-router X.X.X.X ..
remote-router X.X.X.X sync done

2系にて設定値を確認すると確かに定義が入っていました。

終わりに

今回はfirewall部分だけでしたが、configuration sync-maps部分を追加すればどの定義部分を同期化するかを選択できるのでそこをカスタマイズすることで任意の設定を同期化可能です。

以上、ご参考になれば幸いです。