Vyatta(VyOS)での基本操作をまとめます。
モード変更
configuration mode
vyattaはログイン時では一般ユーザでログインされます。ここでconfigureコマンドを使用すると、set文やdelete文を用いてネットワーク機器を設定変更できるconfig modeへ遷移します。
遷移後はプロンプトが「$」から「#」へ変わります。
admin@vy20.gokatei.go:~$ configure [edit] admin@vy20.gokatei.go#
config modeを離脱し、一般モードに戻るにはexitを入力します。
admin@vy20.gokatei.go# exit exit admin@vy20.gokatei.go:~$
ルートユーザ
以下出力の通り、vyattaはDebianをフォークして作成されたOSです。
admin@vy20.gokatei.go:~$ cat /etc/debian_version 11.0 admin@vy20.gokatei.go:~$ lsb_release -a No LSB modules are available. Distributor ID: Vyos Description: VyOS 1.4-rolling-202107280117 (sagitta) Release: 1.4-rolling-202107280117 Codename: bullseye admin@vy20.gokatei.go:~$
そのためrootユーザへスイッチすると、様々な権限の強い操作が可能です。以下のように「sudo su -」コマンドでrootユーザへスイッチが可能です。
admin@vy20.gokatei.go:~$ sudo su - root@vy20:~#
以下出力のように、tcpdumpのようなroot権限を必要とする操作も可能になります。
root@vy20:~# tcpdump -i eth0 icmp tcpdump: verbose output suppressed, use -v[v]... for full protocol decode listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes 03:40:00.479924 IP 192.168.56.1 > 192.168.56.21: ICMP echo request, id 21543, seq 6, length 64 03:40:00.479968 IP 192.168.56.21 > 192.168.56.1: ICMP echo reply, id 21543, seq 6, length 64 03:40:01.482518 IP 192.168.56.1 > 192.168.56.21: ICMP echo request, id 21543, seq 7, length 64 03:40:01.482564 IP 192.168.56.21 > 192.168.56.1: ICMP echo reply, id 21543, seq 7, length 64 ^C 4 packets captured 4 packets received by filter 0 packets dropped by kernel root@vy20:~#
config mode の操作
入力補完
タブで入力補完する事ができます。以下のように何も入力していない状態でタブキーを押下すると使用可能なコマンド一覧が表示されます。使用頻度が高いのは、set, delete, edit, showです。
admin@vy20.gokatei.go# Possible completions: confirm Confirm prior commit-confirm comment Add comment to this configuration element commit Commit the current set of changes commit-confirm Commit the current set of changes with 'confirm' required compare Compare configuration revisions copy Copy a configuration element delete Delete a configuration element discard Discard uncommitted changes edit Edit a sub-element exit Exit from this configuration level load Load configuration from a file and replace running configuration loadkey Load user SSH key from a file merge Load configuration from a file and merge running configuration rename Rename a configuration element rollback Rollback to a prior config revision (requires reboot) run Run an operational-mode command save Save configuration to a file set Set the value of a parameter or create a new element show Show the configuration (default values may be suppressed) [edit] admin@vy20.gokatei.go#
setと入力した後にタブキーを押すと、setコマンドに指定できるオプションの一覧を見る事ができます。
admin@vy20.gokatei.go# set Possible completions: > cluster Clustering > container Container applications > firewall Firewall > high-availability High availability settings > interfaces Network interfaces > load-balancing Configure load-balancing > nat Network Address Translation (NAT) parameters > nat66 IPv6-to-IPv6 Network Prefix Translation (NAT66/NPT) Settings > pki VyOS PKI configuration > policy Routing policy > protocols Routing protocols > service System services > system System parameters > traffic-policy Quality of Service (QOS) policy type > vpn Virtual Private Network (VPN) > vrf Virtual Routing and Forwarding > zone-policy Configure zone-policy [edit] admin@vy20.gokatei.go# set
設定操作
setコマンドで設定を作成します。
set interfaces ethernet eth1 address 192.168.57.20/24
deleteコマンドで設定を削除します。
delete interfaces ethernet eth1 address 192.168.57.20/24
設定を作成する時に似たような文字列を何度も入力し、非常に手間がかかるかもしれません。そのような場合は、editコマンドを使用すると、前半の共通部分の設定の入力を省略する事ができます。例えば、BGPの設定について、editコマンドを使用しない場合と、editコマンドを使用する場合の操作の比較を以下に載せます。
[editコマンドを使用しない場合] set protocols bgp address-family ipv4-unicast network 192.168.57.0/24 set protocols bgp local-as '65000' set protocols bgp neighbor 192.168.56.10 remote-as '65000' set protocols bgp neighbor 192.168.56.11 remote-as '65000' [editコマンドを使用する場合] edit protocols bgp set local-as 65000 set address-family ipv4-unicast network 192.168.57.0/24 set neighbor 192.168.56.10 remote-as 65000 set neighbor 192.168.56.11 remote-as 65000
設定反映
compareで未反映の設定を確認する事ができます。
admin@vy20.gokatei.go# compare [edit] +address-family { + ipv4-unicast { + network 192.168.57.0/24 { + } + } +} +local-as 65000 +neighbor 192.168.56.10 { + remote-as 65000 +} +neighbor 192.168.56.11 { + remote-as 65000 +} [edit] admin@vy20.gokatei.go#
commitで設定を反映されます。
admin@vy20.gokatei.go# commit [edit] admin@vy20.gokatei.go#
設定が中途半端な場合(作りかけ)は、commitできない事もあります。その場合は、エラーメッセージに沿った修正を行い、再度のcommitを試みます。
admin@vy20.gokatei.go# set protocols bgp local-as '65000' [edit] admin@vy20.gokatei.go# set protocols bgp neighbor 192.168.56.10 [edit] admin@vy20.gokatei.go# commit Neighbor "192.168.56.10" remote-as must be set! [[protocols bgp]] failed Commit failed [edit] admin@vy20.gokatei.go# set protocols bgp neighbor 192.168.56.10 remote-as 65000 [edit] admin@vy20.gokatei.go# commit [edit] admin@vy20.gokatei.go#
もし、commitせずに設定を破棄したい場合は、discardコマンドを使用します。
admin@vy20.gokatei.go# discard Changes have been discarded [edit] admin@vy20.gokatei.go#
設定確認
config modeではなく、一般ユーザモードでshow configuration と入力すると、設定の一覧を確認できます。
admin@vy20.gokatei.go:~$ show configuration interfaces { ethernet eth0 { address 192.168.56.21/24 hw-id 08:00:27:3a:79:71 } ethernet eth1 { hw-id 08:00:27:84:e1:f1 } loopback lo { } } <omitted>
show configuration commandsと入力すると、set文の形式でconfigを読む事ができます。
admin@vy20.gokatei.go:~$ show configuration commands set interfaces ethernet eth0 address '192.168.56.21/24' set interfaces ethernet eth0 hw-id '08:00:27:3a:79:71' set interfaces ethernet eth1 hw-id '08:00:27:84:e1:f1' set interfaces loopback lo set protocols set service ssh <omitted>
show configuration commandsはパイプで繋ぎ、表示を整形する事もできます。以下は、bgpでgrepする例です。
admin@vy20.gokatei.go:~$ show configuration commands | grep bgp set protocols bgp address-family ipv4-unicast network 192.168.57.0/24 set protocols bgp local-as '65000' set protocols bgp neighbor 192.168.56.10 remote-as '65000' set protocols bgp neighbor 192.168.56.11 remote-as '65000' admin@vy20.gokatei.go:~$