VyOSでeBGP

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を設定する

はじめ neighboraddress-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
comments powered by Disqus