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.
External links¶
- external_links_file
Path to the file describing the external links of the topology.
The file must be of the following format:
<ASN1>.<router_number> <ASN2>.<router_number> <relation> <speed>
- Supported relations:
p2c: provider-customer
c2p: customer-provider
p2p: peer-to-peer
Example
1.1 2.1 p2c 10000 2.1 3.1 p2p 10000 2.1 4.1 p2c 10000
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>]