Specification file

This page describes the different elements you can configure in a specification file.

General settings

namestring

Name of the subdirectory where configuration files will be generated. It defaults to “generated” if the key is absent.

Autonomous Systems

autonomous_systemsarray

Describe the different AS of the topology.

asnint

AS number.

routers:

Number of routers in the AS. .. note:: Generated routers will be referred by an index (starting from 1) in multiple configuration elements

loopback_startstring

Loopback address of the first router. Following routers will use contiguous addresses.

igpstring

IGP used in the AS.

Recognized values: IS-IS, OSPF

prefixstring

Prefix used by the AS. It will also be used to auto-assign IP addresses to the different interfaces.

subnet_lengthint

Subnet length that will be used to auto-assign IP addresses for the different interfaces.

mplsbool

Enable MPLS in the AS. Defaults to false.

links

Internal links specification.

kindstring

Kind of interconnexion to use.

Supported values: full-mesh, ring, manual.

speedint

Bandwidth that will be used for the links when using a non-manual kind of links, and for manual presets.

costint

Cost that will be used for the links when using a non-manual kind of links, and for manual presets. If the speed key is set and there are no cost, the cost defaults to the speed if using OSPF.

presetstring

Preset that will be applied to a manual configuration (if set).

Supported values: full-mesh, ring.

filestring

Path (relative to the configuration file, or absolute) a file containing the links specification. Only valid if using a manual configuration. Uses the following format :

<router_id_A> <router_id_b> [<speed> [<igp_cost_a> <igp_cost_b>]]

If only one IGP cost is set, it will be applied to both interfaces. If you want to set it to only one interface, use * on the other.

Example

1 2 1000 63 32
4 3 1000 48
2 3 1000 ** 10
2 5 1000
3 5 1000

Routing protocols options

There are optional keys available to further customize the routing protocols.

bgp

BGP settings

ibgp

iBGP settings

disabledbool

If set, BGP configuration won’t be generated

redistribute_igpbool

If set, an attribute to redistribute the routes from the IGP in use will be added to the BGP process

manualbool

If set, the iBGP sessions won’t be use the automatic pattern (1 session / neighbor directly connected)

route_reflectorsarray

Route-Reflectors settings

routerint

ID of the router that will be a route-reflector

clientsarray (int)

IDs of the RR clients

cliquesarray (array (int))

IDs of routers that have a full-mesh (clique) iBGP neighborhood

isis

IS-IS settings

level-1array (int)

IDs of L1 routers

level-2array (int)

IDs of L2 routers

level-1-2array (int)

IDs of L1-L2 routers

areasmap (int, array (int))

Describes the different areas (area as a key, array of router IDs as value)

Example

isis:
  level-1: [1, 4]
  level-2: [5]
  level-1-2: [2, 3]
  areas:
    1: [1, 2]
    2: [3, 4]
    3: [5]
ospf

OSPF settings

Warning

This is still a work in progress. The generated configuration will not work out of the box.

networksarray

Describes the diffrent networks

prefixstring

Network prefix

areaint

Area for the prefix

routersarray (int)

IDs of routers with this network configured

stubsarray (int)

Areas that are stubs

Example

ospf:
  networks:
    - prefix: 192.168.1.1/24
      area: 0
      routers: [2, 3, 5]
    - prefix: 192.168.1.1/24
      area: 1
      routers: [1]
    - prefix: 192.168.1.1/24
      area: 2
      routers: [4]
  stubs: [1, 4]

L3VPN

Topomate allows you to define BGP/MPLS VPNs inside an AS. Please make sure that MPLS is enabled on the AS when using VPNs.

vpnarray

VPN settings

vrfstring

Name of the VRF that will be used.

hub_and_spokebool

If true, the VPN will be configured using an Hub-and-Spoke topology, using a secondary VRF on the hub.

customersarray

Customers specification

hostnamestring

Hostname of the CE router.

remote_subnetstring

Subnet managed by the CE.

loopbackstring

Loopback of the CE router. Must belong to the remote subnet.

subnetstring

Subnet used for the link between the PE and the CE.

downstream_subnetstring

Subnet used for the secondary link between the PE and the CE. Only used on a hub.

parentint

ID of the parent router (PE) in the AS.

hubbool

If set, consider that the current CE is a hub.

IXP

Topomate allows you to simulate Internet Exchange Points.

ixpsarray

Describe the IXPs

asnint

ASN of the IXP

prefixstring

Network prefix used by the routers participating in the IXP (usually local, won’t be advertised)

loopbackstring

Loopback address of the route-server

peersarray (string)

Routers connected to the IXP, in the following format :

<ASN>.<router_ID> [<speed>]