Skip to content

Instantly share code, notes, and snippets.

@takehaya
Created June 25, 2019 06:10
Show Gist options
  • Save takehaya/f5f286c13f5c9893d4b5d38a791617d9 to your computer and use it in GitHub Desktop.
Save takehaya/f5f286c13f5c9893d4b5d38a791617d9 to your computer and use it in GitHub Desktop.
Vagrant.configure("2") do |config|
config.vm.box = "higebu/vyos"
config.vm.define :vyos1 do | vyos |
vyos.vm.hostname = "vyos1"
vyos.vm.network :private_network, ip: "192.168.13.1", virtualbox__intnet: "intnet13"
vyos.vm.network :private_network, ip: "10.1.14.1", virtualbox__intnet: "intnet14"
vyos.vm.network :private_network, ip: "10.1.41.1", virtualbox__intnet: "intnet41"
end
config.vm.define :vyos2 do | vyos |
vyos.vm.hostname = "vyos2"
vyos.vm.network :private_network, ip: "192.168.23.1", virtualbox__intnet: "intnet23"
vyos.vm.network :private_network, ip: "10.2.25.1", virtualbox__intnet: "intnet25"
end
config.vm.define :vyos3 do | vyos |
vyos.vm.hostname = "vyos3"
vyos.vm.network :private_network, ip: "192.168.13.2", virtualbox__intnet: "intnet13"
vyos.vm.network :private_network, ip: "192.168.23.2", virtualbox__intnet: "intnet23"
end
config.vm.define :vyos4 do | vyos |
vyos.vm.hostname = "vyos4"
vyos.vm.network :private_network, ip: "192.168.46.1", virtualbox__intnet: "intnet46"
vyos.vm.network :private_network, ip: "10.1.14.2", virtualbox__intnet: "intnet14"
vyos.vm.network :private_network, ip: "10.1.41.2", virtualbox__intnet: "intnet41"
end
config.vm.define :vyos5 do | vyos |
vyos.vm.hostname = "vyos5"
vyos.vm.network :private_network, ip: "192.168.56.1", virtualbox__intnet: "intnet56"
vyos.vm.network :private_network, ip: "10.2.25.2", virtualbox__intnet: "intnet25"
end
config.vm.define :vyos6 do | vyos |
vyos.vm.hostname = "vyos6"
vyos.vm.network :private_network, ip: "192.168.46.2", virtualbox__intnet: "intnet46"
vyos.vm.network :private_network, ip: "192.168.56.2", virtualbox__intnet: "intnet56"
end
end
# http://www.n-study.com/network/2015/01/bgp_9.html
# http://enog.jp/wp-content/uploads/2015/09/enog34_vyos-bgp_0904.pdf
# R1
set protocols bgp 65001
set interfaces loopback lo address 192.168.0.1/32
set interfaces dummy dum0 address 10.1.1.1/32
## ospf
set protocols ospf area 0 network 192.168.0.0/16
set protocols ospf log-adjacency-changes
## step 1 ibgp neighbor
set protocols bgp 65001 neighbor 192.168.0.2 remote-as 65001
set protocols bgp 65001 neighbor 192.168.0.2 update-source 192.168.0.1
set protocols bgp 65001 neighbor 192.168.0.3 remote-as 65001
set protocols bgp 65001 neighbor 192.168.0.3 update-source 192.168.0.1
## step 2 ebpg neighbor
set protocols static route 10.1.1.4/32 next-hop 10.1.14.4
set protocols static route 10.1.1.4/32 next-hop 10.1.41.4
set protocols bgp 65001 neighbor 10.1.1.4 remote-as 65002
set protocols bgp 65001 neighbor 10.1.1.4 update-source dum0
set protocols bgp 65001 neighbor 10.1.1.4 ebgp-multihop 1
## step 5 bgp route for advertisement
set protocols bgp 65001 neighbor 192.168.0.2 nexthop-self
set protocols bgp 65001 neighbor 192.168.0.3 nexthop-self
# R2
set protocols bgp 65001
set interfaces loopback lo address 192.168.0.2/32
set interfaces dummy dum0 address 192.168.0.2/32
## ospf
set protocols ospf area 0 network 192.168.0.0/16
set protocols ospf log-adjacency-changes
## step 1 ibgp neighbor
set protocols bgp 65001 neighbor 192.168.0.1 remote-as 65001
set protocols bgp 65001 neighbor 192.168.0.1 update-source 192.168.0.2
set protocols bgp 65001 neighbor 192.168.0.3 remote-as 65001
set protocols bgp 65001 neighbor 192.168.0.3 update-source 192.168.0.2
## step 2 ebpg neighbor
set protocols bgp 65001 neighbor 10.2.25.2 remote-as 65002
## step 5 bgp route for advertisement
set protocols bgp 65001 neighbor 192.168.0.1 route-map import nexthop
set protocols bgp 65001 neighbor 192.168.0.3 route-map import nexthop
set policy route-map nexthop rule 10 action permit
set policy route-map nexthop rule 10 set ip-next-hop 192.168.0.2
## step 7 change ospf cost
set interfaces ethernet eth2 ip ospf cost 1
# R3
set protocols bgp 65001
set interfaces loopback lo address 192.168.0.3/32
set interfaces dummy dum0 address 100.1.1.3/24
## ospf
set protocols ospf area 0 network 192.168.0.0/16
set protocols ospf log-adjacency-changes
## step 1 ibgp neighbor
set protocols bgp 65001 neighbor 192.168.0.1 remote-as 65001
set protocols bgp 65001 neighbor 192.168.0.1 update-source 192.168.0.3
set protocols bgp 65001 neighbor 192.168.0.2 remote-as 65001
set protocols bgp 65001 neighbor 192.168.0.2 update-source 192.168.0.3
## step 5 bgp route for advertisement
set protocols bgp 65001 network 100.1.1.0/24
# R4
set protocols bgp 65002
set interfaces loopback lo address 192.168.0.4/32
set interfaces dummy dum0 address 10.1.1.4/32
## ospf
set protocols ospf area 0 network 192.168.0.0/16
set protocols ospf log-adjacency-changes
## step 1 ibgp neighbor
set protocols bgp 65002 neighbor 192.168.0.5 remote-as 65002
set protocols bgp 65002 neighbor 192.168.0.5 update-source 192.168.0.4
set protocols bgp 65002 neighbor 192.168.0.6 remote-as 65002
set protocols bgp 65002 neighbor 192.168.0.6 update-source 192.168.0.4
## step 2 ebpg neighbor
set protocols static route 10.1.1.1/32 next-hop 10.1.14.1
set protocols static route 10.1.1.1/32 next-hop 10.1.41.1
set protocols bgp 65002 neighbor 10.1.1.1 remote-as 65001
set protocols bgp 65002 neighbor 10.1.1.1 update-source dum0
set protocols bgp 65002 neighbor 10.1.1.1 ebgp-multihop 1
## step 5 bgp route for advertisement
set protocols bgp 65002 neighbor 192.168.0.5 nexthop-self
set protocols bgp 65002 neighbor 192.168.0.6 nexthop-self
# R5
set protocols bgp 65002
set interfaces loopback lo address 192.168.0.5/32
set interfaces dummy dum0 address 192.168.0.5/32
## ospf
set protocols ospf area 0 network 192.168.0.0/16
set protocols ospf log-adjacency-changes
## step 1 ibgp neighbor
set protocols bgp 65002 neighbor 192.168.0.4 remote-as 65002
set protocols bgp 65002 neighbor 192.168.0.4 update-source 192.168.0.5
set protocols bgp 65002 neighbor 192.168.0.6 remote-as 65002
set protocols bgp 65002 neighbor 192.168.0.6 update-source 192.168.0.5
## step 2 ebpg neighbor
set protocols bgp 65002 neighbor 10.2.25.1 remote-as 65001
# R6
set protocols bgp 65002
set interfaces loopback lo address 192.168.0.6/32
set interfaces dummy dum0 address 100.2.2.6/24
## ospf
set protocols ospf area 0 network 192.168.0.0/16
set protocols ospf log-adjacency-changes
## step 1 ibgp neighbor
set protocols bgp 65002 neighbor 192.168.0.5 remote-as 65002
set protocols bgp 65002 neighbor 192.168.0.5 update-source 192.168.0.6
set protocols bgp 65002 neighbor 192.168.0.4 remote-as 65002
set protocols bgp 65002 neighbor 192.168.0.4 update-source 192.168.0.6
## step 5 bgp route for advertisement
set protocols bgp 65002 network 100.2.2.0/24
## step 9
set protocols bgp 65002 maximum-paths ibgp 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment