Sha256: 8ae40cd15e2932ab811d7de2983707c26e95bd8e840fd4886c019df8eba8ef25
Contents?: true
Size: 1.71 KB
Versions: 4
Compression:
Stored size: 1.71 KB
Contents
require_relative "lib/clusterfuck" include Clusterfuck # Create a BGPCluster. The BGPCluster is just a cluster that knows how to # discover neighbouring BGP nodes. cluster = BGPCluster.create(:test) # The VIP subnet includes all the VIPs that any BGPPeer can take and announce. # All hosts, even if they're on the same subnet as the node that owns the IP, # will go through their gateway to route the IP. vip_subnet = IPAddr.new("192.168.99.0/24") # Spine becomes the catchall for 10.0.0.0/16 which is the subnet all the nodes # belong to (each subnet is a /24). priv_subnet = IPAddr.new("10.0.0.0/16") # The Spine announces the VIP and private subnet. spine = QuaggaBGPRouter.new(:spine, announce: [vip_subnet, priv_subnet]) # Define the leaf, announcements come later leaf1_subnet = SubnetFactory.next_subnet leaf1 = QuaggaBGPRouter.new(:leaf1, announce: leaf1_subnet.last_ip) leaf2_subnet = SubnetFactory.next_subnet leaf2 = QuaggaBGPRouter.new(:leaf2, announce: leaf2_subnet.last_ip) # A normal host. All the Spine's BGP announcements (vip + priv) will go through # the gateway. host11 = Machine.new(:host11, routes: spine.bgp_announce, gateway: leaf1) # A BGPPeer is just a machine with BGP information so that its BGP neighbours # will automatically add it as a BGP peer. This is for a node to run e.g. # ExaBGP. host21 = ExaBGPPeer.new(:host21, routes: spine.bgp_announce, gateway: leaf2) host22 = Machine.new(:host22, routes: spine.bgp_announce, gateway: leaf2) # The spines and leaves have their own subnets cluster.connect(spine, leaf1) cluster.connect(spine, leaf2) # The leaves create a subnet with all their hosts. cluster.connect(leaf1, host11, subnet: leaf1_subnet) cluster.connect(leaf2, host21, host22, subnet: leaf2_subnet)
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
vagrant-clusterfuck-0.0.7 | cluster.rb |
vagrant-clusterfuck-0.0.6 | cluster.rb |
vagrant-clusterfuck-0.0.5 | cluster.rb |
vagrant-clusterfuck-0.0.4 | cluster.rb |