VyOSでeBGP
VyOSでeBGPを設定してみる。
ソフトウェア |
バージョン |
VyOS |
1.4-rolling-202203080319 |
VirtualBox |
6.1.32 r149290 (Qt5.6.3) |
Vagrant |
2.2.19 |
vagrant-vyos |
1.1.10 |
構築環境
Vagrantで準備するとeth0としてNATタイプのインタフェースとdefaultルートが設定されます。
図には載せないですが全てのホストでdefaultルートがeth0経由でホストマシンに向いています。
属性 |
値 |
peer’s ASN |
65001 |
bgw’s ASN |
65000 |
other |
100.0.30.0/24 |
ix |
100.0.20.0/24 |
backbone |
100.0.10.0/24 |
仮想マシンの準備
vagrant init vyos/current
して下のように書き換える。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Vagrant.configure("2") do |config|
config.vm.box = "vyos/current"
config.vm.define :vybgw do | vybgw |
vybgw.vm.hostname = "vybgw"
vybgw.vm.network :private_network, virtualbox__intnet: "backbone"
vybgw.vm.network :private_network, virtualbox__intnet: "ix"
end
config.vm.define :vypeer do | vypeer |
vypeer.vm.hostname = "vypeer"
vypeer.vm.network :private_network, virtualbox__intnet: "ix"
vypeer.vm.network :private_network, virtualbox__intnet: "other"
end
end
|
VyOSを設定する
はじめ neighbor
にaddress-family
を設定しておらずBGPピアの確立にに失敗していました。
OPENメッセージは流れるのですが即座にtcp::RSTが飛んでいて悩んでいました。この回答を見つけて解決しました。
接続できてるのですが、router-id
を定めてないなど最低限の設定になっています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# vagrant ssh vypeer
configure
set interfaces ethernet eth1
set interfaces ethernet eth1 address "100.0.20.1/24"
set interfaces ethernet eth2
set interfaces ethernet eth1 address "100.0.30.1/24"
set protocols bgp local-as 65001
set protocols bgp address-family ipv4-unicast network "10.0.30.0/24"
set protocols bgp neighbor 10.0.20.2 remote-as 65000
set protocols bgp neighbor 10.10.0.2 address-family ipv4-unicast
commit
save
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# vagrant ssh vybgw
configure
set interfaces ethernet eth1
set interfaces ethernet eth1 address "10.0.10.1/24"
set interfaces ethernet eth2
set interfaces ethernet eth2 address "10.0.20.2/24"
set protocols bgp local-as 65000
set protocols bgp address-family ipv4-unicast network "10.0.10.0/24"
set protocols bgp neighbor 10.0.20.1 remote-as 65001
set protocols bgp neighbor 10.0.20.1 address-family ipv4-unicast
commit
save
|
ref. VyOS1.4.x::BGP
確認作業
経路交換できてると下のように経路を確認できます。Next Hop の項目が 0.0.0.0
は自ノードで設定している経路になります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
show ip bgp
BGP table version is 2, local router ID is 100.0.30.1, vrf id 0
Default local pref 100, local AS 65001
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 100.0.10.0/24 100.0.20.2 0 0 65000 i
*> 100.0.30.0/24 0.0.0.0 0 32768 i
Displayed 2 routes and 2 total paths
|
またシェルを起動すれば基本的なコマンド(ip,ping,traceroute,tcpdump
)は入っているので色々と確認できます。
1
2
|
bash
tcpdump -i eth1 -w ./output.pcap
|