From 039797bceac6da5fc17c79847da42f85a41a80a4 Mon Sep 17 00:00:00 2001 From: DM Date: Sat, 1 Jul 2023 23:54:11 +0100 Subject: [PATCH] Pushing existing code --- 6widespine_10widetier2_10widetier1_clos.png | Bin 0 -> 124316 bytes 8widespine_16widetier2_16widetier1_clos.png | Bin 0 -> 205588 bytes README.md | 25 ++ closx | 289 ++++++++++++++++++++ configs/cisco_ios/s1-r1.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r2.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r3.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r4.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r5.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r6.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r7.conf | 207 ++++++++++++++ configs/cisco_ios/s1-r8.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r1.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r10.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r11.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r12.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r13.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r14.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r15.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r16.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r2.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r3.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r4.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r5.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r6.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r7.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r8.conf | 207 ++++++++++++++ configs/cisco_ios/t1-r9.conf | 207 ++++++++++++++ configs/cisco_ios/t2-r1.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r10.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r11.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r12.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r13.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r14.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r15.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r16.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r2.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r3.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r4.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r5.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r6.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r7.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r8.conf | 263 ++++++++++++++++++ configs/cisco_ios/t2-r9.conf | 263 ++++++++++++++++++ configs/junos/s1-r1.conf | 186 +++++++++++++ configs/junos/s1-r2.conf | 186 +++++++++++++ configs/junos/s1-r3.conf | 186 +++++++++++++ configs/junos/s1-r4.conf | 186 +++++++++++++ configs/junos/s1-r5.conf | 186 +++++++++++++ configs/junos/s1-r6.conf | 186 +++++++++++++ configs/junos/s1-r7.conf | 186 +++++++++++++ configs/junos/s1-r8.conf | 186 +++++++++++++ configs/junos/t1-r1.conf | 186 +++++++++++++ configs/junos/t1-r10.conf | 186 +++++++++++++ configs/junos/t1-r11.conf | 186 +++++++++++++ configs/junos/t1-r12.conf | 186 +++++++++++++ configs/junos/t1-r13.conf | 186 +++++++++++++ configs/junos/t1-r14.conf | 186 +++++++++++++ configs/junos/t1-r15.conf | 186 +++++++++++++ configs/junos/t1-r16.conf | 186 +++++++++++++ configs/junos/t1-r2.conf | 186 +++++++++++++ configs/junos/t1-r3.conf | 186 +++++++++++++ configs/junos/t1-r4.conf | 186 +++++++++++++ configs/junos/t1-r5.conf | 186 +++++++++++++ configs/junos/t1-r6.conf | 186 +++++++++++++ configs/junos/t1-r7.conf | 186 +++++++++++++ configs/junos/t1-r8.conf | 186 +++++++++++++ configs/junos/t1-r9.conf | 186 +++++++++++++ configs/junos/t2-r1.conf | 258 +++++++++++++++++ configs/junos/t2-r10.conf | 258 +++++++++++++++++ configs/junos/t2-r11.conf | 258 +++++++++++++++++ configs/junos/t2-r12.conf | 258 +++++++++++++++++ configs/junos/t2-r13.conf | 258 +++++++++++++++++ configs/junos/t2-r14.conf | 258 +++++++++++++++++ configs/junos/t2-r15.conf | 258 +++++++++++++++++ configs/junos/t2-r16.conf | 258 +++++++++++++++++ configs/junos/t2-r2.conf | 258 +++++++++++++++++ configs/junos/t2-r3.conf | 258 +++++++++++++++++ configs/junos/t2-r4.conf | 258 +++++++++++++++++ configs/junos/t2-r5.conf | 258 +++++++++++++++++ configs/junos/t2-r6.conf | 258 +++++++++++++++++ configs/junos/t2-r7.conf | 258 +++++++++++++++++ configs/junos/t2-r8.conf | 258 +++++++++++++++++ configs/junos/t2-r9.conf | 258 +++++++++++++++++ templates/cisco_ios.j2 | 107 ++++++++ templates/junos.j2 | 55 ++++ 86 files changed, 18244 insertions(+) create mode 100644 6widespine_10widetier2_10widetier1_clos.png create mode 100644 8widespine_16widetier2_16widetier1_clos.png create mode 100755 closx create mode 100644 configs/cisco_ios/s1-r1.conf create mode 100644 configs/cisco_ios/s1-r2.conf create mode 100644 configs/cisco_ios/s1-r3.conf create mode 100644 configs/cisco_ios/s1-r4.conf create mode 100644 configs/cisco_ios/s1-r5.conf create mode 100644 configs/cisco_ios/s1-r6.conf create mode 100644 configs/cisco_ios/s1-r7.conf create mode 100644 configs/cisco_ios/s1-r8.conf create mode 100644 configs/cisco_ios/t1-r1.conf create mode 100644 configs/cisco_ios/t1-r10.conf create mode 100644 configs/cisco_ios/t1-r11.conf create mode 100644 configs/cisco_ios/t1-r12.conf create mode 100644 configs/cisco_ios/t1-r13.conf create mode 100644 configs/cisco_ios/t1-r14.conf create mode 100644 configs/cisco_ios/t1-r15.conf create mode 100644 configs/cisco_ios/t1-r16.conf create mode 100644 configs/cisco_ios/t1-r2.conf create mode 100644 configs/cisco_ios/t1-r3.conf create mode 100644 configs/cisco_ios/t1-r4.conf create mode 100644 configs/cisco_ios/t1-r5.conf create mode 100644 configs/cisco_ios/t1-r6.conf create mode 100644 configs/cisco_ios/t1-r7.conf create mode 100644 configs/cisco_ios/t1-r8.conf create mode 100644 configs/cisco_ios/t1-r9.conf create mode 100644 configs/cisco_ios/t2-r1.conf create mode 100644 configs/cisco_ios/t2-r10.conf create mode 100644 configs/cisco_ios/t2-r11.conf create mode 100644 configs/cisco_ios/t2-r12.conf create mode 100644 configs/cisco_ios/t2-r13.conf create mode 100644 configs/cisco_ios/t2-r14.conf create mode 100644 configs/cisco_ios/t2-r15.conf create mode 100644 configs/cisco_ios/t2-r16.conf create mode 100644 configs/cisco_ios/t2-r2.conf create mode 100644 configs/cisco_ios/t2-r3.conf create mode 100644 configs/cisco_ios/t2-r4.conf create mode 100644 configs/cisco_ios/t2-r5.conf create mode 100644 configs/cisco_ios/t2-r6.conf create mode 100644 configs/cisco_ios/t2-r7.conf create mode 100644 configs/cisco_ios/t2-r8.conf create mode 100644 configs/cisco_ios/t2-r9.conf create mode 100644 configs/junos/s1-r1.conf create mode 100644 configs/junos/s1-r2.conf create mode 100644 configs/junos/s1-r3.conf create mode 100644 configs/junos/s1-r4.conf create mode 100644 configs/junos/s1-r5.conf create mode 100644 configs/junos/s1-r6.conf create mode 100644 configs/junos/s1-r7.conf create mode 100644 configs/junos/s1-r8.conf create mode 100644 configs/junos/t1-r1.conf create mode 100644 configs/junos/t1-r10.conf create mode 100644 configs/junos/t1-r11.conf create mode 100644 configs/junos/t1-r12.conf create mode 100644 configs/junos/t1-r13.conf create mode 100644 configs/junos/t1-r14.conf create mode 100644 configs/junos/t1-r15.conf create mode 100644 configs/junos/t1-r16.conf create mode 100644 configs/junos/t1-r2.conf create mode 100644 configs/junos/t1-r3.conf create mode 100644 configs/junos/t1-r4.conf create mode 100644 configs/junos/t1-r5.conf create mode 100644 configs/junos/t1-r6.conf create mode 100644 configs/junos/t1-r7.conf create mode 100644 configs/junos/t1-r8.conf create mode 100644 configs/junos/t1-r9.conf create mode 100644 configs/junos/t2-r1.conf create mode 100644 configs/junos/t2-r10.conf create mode 100644 configs/junos/t2-r11.conf create mode 100644 configs/junos/t2-r12.conf create mode 100644 configs/junos/t2-r13.conf create mode 100644 configs/junos/t2-r14.conf create mode 100644 configs/junos/t2-r15.conf create mode 100644 configs/junos/t2-r16.conf create mode 100644 configs/junos/t2-r2.conf create mode 100644 configs/junos/t2-r3.conf create mode 100644 configs/junos/t2-r4.conf create mode 100644 configs/junos/t2-r5.conf create mode 100644 configs/junos/t2-r6.conf create mode 100644 configs/junos/t2-r7.conf create mode 100644 configs/junos/t2-r8.conf create mode 100644 configs/junos/t2-r9.conf create mode 100644 templates/cisco_ios.j2 create mode 100644 templates/junos.j2 diff --git a/6widespine_10widetier2_10widetier1_clos.png b/6widespine_10widetier2_10widetier1_clos.png new file mode 100644 index 0000000000000000000000000000000000000000..90e6416d51e66186490e04e020646bf7b358cd84 GIT binary patch literal 124316 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ⅈ@_x=>oY*e!$D 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 literal 0 HcmV?d00001 diff --git a/8widespine_16widetier2_16widetier1_clos.png b/8widespine_16widetier2_16widetier1_clos.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b055198a995df8421cb750ef5f47fff8401d50 GIT binary patch literal 205588 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

tSX+_S{!KuemvG5` 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index fd9e750..3154930 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,27 @@ # ClosX +## Command Line Operation +``` + 3 Tier Clos Network Generator + Example usage: + $ cd ClosX + $ chmod +x closx + $ ./closx -spine 8 -tier1 16 -tier2 16 -ipr 10.0.0.0/22 -mgmtr 172.16.0.0/24 -vendor junos + $ ./closx -spine 8 -tier1 16 -tier2 16 -ipr 10.0.0.0/22 -mgmtr 172.16.0.0/24 -vendor cisco_ios + + -spine: size of spine + -t2: size of tier 2 + -t1: size of tier 1 + -ipr: IP range to extract /31 p2p IPs from + -mgmtr: IP range to extract /32 management IPs from + -vendor: vendor template to render configuration against + + Currently supported vendor platforms: + - Junos + - Cisco IOS +``` +## 3 Tier Clos Example - 6 wide spine | 10 wide tier 2 | 10 wide tier 1 +![3 Tier Clos - 6 wide spine | 10 wide tier 2 | 10 wide tier 1](https://gl.macf.dev/macf/ClosX/-/raw/main/6widespine_10widetier2_10widetier1_clos.png) + +## 3 Tier Clos Example - 8 wide spine | 16 wide tier 2 | 16 wide tier 1 +![3 Tier Clos - 8 wide spine | 16 wide tier 2 | 16 wide tier 1](https://gl.macf.dev/macf/ClosX/-/raw/main/8widespine_16widetier2_16widetier1_clos.png) diff --git a/closx b/closx new file mode 100755 index 0000000..ea16d07 --- /dev/null +++ b/closx @@ -0,0 +1,289 @@ +#!/usr/bin/env python3 + +import argparse +import networkx as nx +import ipaddress +import yaml +import sys + +from networkx.drawing.nx_agraph import to_agraph +from jinja2 import Environment, FileSystemLoader + +parser = argparse.ArgumentParser(description='ClosX - Clos Network Generator') +parser.add_argument('-ipr', action="store", dest="ip_range") +parser.add_argument('-mgmtr', action="store", dest="mgmt_range") +parser.add_argument('-spine', action="store", dest="spine_size") +parser.add_argument('-tier2', action="store", dest="tier2_size") +parser.add_argument('-tier1', action="store", dest="tier1_size") +parser.add_argument('-vendor', action="store", dest="vendor") +args = parser.parse_args() + +class Clos(): + def __init__(self, spine_size, tier2_size, tier1_size, ip_range, mgmt_range, vendor): + ''' + Summary: + Takes a router list and builds a vars_dict to pass to the associated Jinja template. + + Assigns: + self.G: Networkx graph object + self.nodes: Dict of lists, keyed by node type, dict example: + { + 'spine_list': ['s1-r1', 's1-r2', 's1-r3', 's1-r4', 's1-r5', 's1-r6', 's1-r7', 's1-r8'], + 'tier2_list': ['t2-r1', 't2-r2', 't2-r3', 't2-r4', 't2-r5', 't2-r6', 't2-r7', 't2-r8', 't2-r9', 't2-r10', 't2-r11', 't2-r12', 't2-r13', 't2-r14', 't2-r15', 't2-r16'], + 'tier1_list': ['t1-r1', 't1-r2', 't1-r3', 't1-r4', 't1-r5', 't1-r6', 't1-r7', 't1-r8', 't1-r9', 't1-r10', 't1-r11', 't1-r12', 't1-r13', 't1-r14', 't1-r15', 't1-r16'] + } + self.edges: List of edge tuples, list example: + [ + ('s1-r1', 't2-r1'), + ('s1-r1', 't2-r2'), + ('s1-r1', 't2-r3'), + ('s1-r1', 't2-r4'), + ('s1-r1', 't2-r5'), + ('s1-r1', 't2-r6'), + ...etc + ] + self.spine_size: Size of spine as str, always converted to int + self.tier2_size: Size of tier2 as str, always converted to int + self.tier1_size: Size of tier1 as str, always converted to int + self.ip_range: IP range to split into /31 subnets as str, always converted to ipnetwork object + self.mgmt_range: IP range to split into /32 management IPs as str, always converted to ipnetwork object + self.total_nodes: Sum of spine_size, tier2_size and tier1_size as int + self.vendor: Vendor template to use for rendering as str + self.image_name: Name of the networkx graph object visualisation file as str + ''' + self.G = nx.Graph() + self.nodes = {} + self.edges = [] + self.spine_size = spine_size + self.tier2_size = tier2_size + self.tier1_size = tier1_size + self.ip_range = ip_range + self.mgmt_range = mgmt_range + self.total_nodes = int(spine_size) + int(tier2_size) + int(tier1_size) + self.vendor = vendor + self.image_name = 'clos.png' + + def build(self): + ''' + Summary: + Builds the Clos object. + Populates self.nodes and self.edges based on user provided args. + Populates self.G.nodes and self.G.edges with self.nodes and self.edges. + Nodes also include /32 IPs for management. Edges also include /31 IPs and port indexes. + Topology is drawn and visualised with pygraphviz. + Configuration is rendered with YAML and Jinja. + + Takes: + self: Clos object + + Produces: + Networkx graph object visualisation file. + Full Clos network configuration. + ''' + self.nodes['spine_list'] = ['s1-r' + str(node + 1) for node in range(int(self.spine_size))] + self.nodes['tier2_list'] = ['t2-r' + str(node + 1) for node in range(int(self.tier2_size))] + self.nodes['tier1_list'] = ['t1-r' + str(node + 1) for node in range(int(self.tier1_size))] + + mgmt_ips = self.get_mgmt_ips() + + node_index = 0 + for node_lists, nodes in self.nodes.items(): + for node in nodes: + self.G.add_node(node) + self.G.nodes[node]['mgmt_ip'] = str(mgmt_ips[node_index].hosts()[0]) + node_index +=1 + + for spine_router in self.nodes['spine_list']: + for tier2_router in self.nodes['tier2_list']: + self.edges.append((spine_router, tier2_router)) + + for tier2_router in self.nodes['tier2_list']: + for tier1_router in self.nodes['tier1_list']: + self.edges.append((tier2_router, tier1_router)) + + p2p_ips = self.get_p2p_ips() + port_indexes = self.get_port_indexes() + + edge_index = 0 + for edge in self.edges: + self.G.add_edge(edge[0], edge[1]) + nx.set_edge_attributes( + self.G, + { + (edge[0], edge[1]): + {'a_end_ip': str(list(p2p_ips[edge_index].hosts())[0]), + 'a_end': edge[0], + 'a_end_index': port_indexes[edge_index]['a_end_index'], + 'b_end_ip': str(list(p2p_ips[edge_index].hosts())[1]), + 'b_end': edge[1], + 'b_end_index': port_indexes[edge_index]['b_end_index']} + } + ) + edge_index += 1 + + print('Drawing topology...') + vis = to_agraph(self.G) + vis.layout('dot') + vis.draw(self.image_name) + print(f'Topology drawn, saved as: {self.image_name}') + print(f'Rendered {self.total_nodes} Nodes and {len(self.edges)} Edges') + + self.render_config('spine_list') + self.render_config('tier2_list') + self.render_config('tier1_list') + + def get_p2p_ips(self): + ''' + Summary: + Takes an IP range and splits it into /31 subnets. + Exits if the number of edges exceeds the number of /31 subnets, prompts user to provide a bigger IP range. + + Takes: + self: Clos object + + Returns: + p2p_ips: List of /31 subnets + ''' + ips = ipaddress.ip_network(self.ip_range) + p2p_ips = list(ips.subnets(new_prefix=31)) + + if len(self.edges) > len(p2p_ips): + sys.exit(f'Insufficient IP space for allocating required amount of /31s. Edges: {len(self.edges)}, /31s: {len(p2p_ips)}, provide a bigger IP range') + + return p2p_ips + + def get_mgmt_ips(self): + ''' + Summary: + Takes an IP range and splits it into /32 management IPs. + Exits if the number of nodes exceeds the number of /32 management IPs, prompts user to provide a bigger IP range. + + Takes: + self: Clos object + + Returns: + mgmt_ips: List of /32 management IPs + ''' + ips = ipaddress.ip_network(self.mgmt_range) + mgmt_ips = list(ips.subnets(new_prefix=32)) + + if self.total_nodes > len(mgmt_ips): + sys.exit(f'Insufficient IP space for allocating required amount of /32s. Nodes: {len(self.total_nodes)}, /32s: {len(mgmt_ips)}, provide a bigger mgmt IP range') + + return mgmt_ips + + def render_config(self, router_list): + ''' + Summary: + Takes a list of router names and builds a vars_dict dict for each router in it to pass to the associated Jinja template for rendering. + Iterates edges in the networkx graph object to extract edge attributes and add them into vars_dict. + Template to render against is matched to self.vendor, provided as an arg at runtime. + Configs are written to the configs/ folder named as hostname.conf. + + vars_dict contains: + - hostname + - mgmt_ip + - interfaces: Dict of dicts, keyed by index, containing: + - a_end_ip + - a_end (hostname) + - a_end_index + - b_end_ip + - b_end (hostname) + - b_end_index + + vars_dict dict example: + { + 'hostname': 's1-r1', + 'mgmt_ip': '172.16.0.0', + 'interfaces': { + 0: {'a_end_ip': '10.0.0.0', 'a_end': 's1-r1', 'a_end_index': 24, 'b_end_ip': '10.0.0.1', 'b_end': 't2-r1', 'b_end_index': 0}, + 1: {'a_end_ip': '10.0.0.2', 'a_end': 's1-r1', 'a_end_index': 25, 'b_end_ip': '10.0.0.3', 'b_end': 't2-r2', 'b_end_index': 0}, + 2: {'a_end_ip': '10.0.0.4', 'a_end': 's1-r1', 'a_end_index': 26, 'b_end_ip': '10.0.0.5', 'b_end': 't2-r3', 'b_end_index': 0}, + 3: {'a_end_ip': '10.0.0.6', 'a_end': 's1-r1', 'a_end_index': 27, 'b_end_ip': '10.0.0.7', 'b_end': 't2-r4', 'b_end_index': 0}, + ...etc + } + } + + Takes: + self: Clos object + router_list: Name of router list to render configuration for + ''' + for router in self.nodes[router_list]: + vars_dict = {} + vars_dict.update({'hostname': router, 'interfaces': {}}) + + for node in self.G.nodes(data=True): + if router == node[0]: + vars_dict.update({'mgmt_ip': node[1]['mgmt_ip']}) + + edge_index = 0 + for edge in self.G.edges(router, data=True): + vars_dict['interfaces'].update({edge_index: edge[2]}) + edge_index += 1 + + template_path = Environment(loader=FileSystemLoader('templates/'), trim_blocks=True, lstrip_blocks=True) + template = template_path.get_template(self.vendor + '.j2') + rendered_config = template.render(vars_dict) + + config_path = 'configs/' + self.vendor + '/' + router + '.conf' + + with open(config_path, 'w') as configuration: + configuration.write(rendered_config) + + print(f'Rendered {config_path}') + + def get_port_indexes(self): + ''' + Summary: + Calculates port indexes for both sides of edges in the networkx graph object. The lowest available index is always used. + Once used, port indexes are removed from the free_ports uplinks or downlinks list. + Design principles of a Clos network define that port radix should be equal north and south. + Max amount of uplink or downlink ports is 24. + Exits if the number of port indexes required exceed the max, prompts user to reduce spine, tier2 or tier1 size. + + free_ports dict example: + { + 's1-r1': { + 'uplinks': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], + 'downlinks': [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47] + } + } + + Takes: + self: Clos object + + Returns: + port_indexes: Dict of dicts, keyed by edge index, containing assigned a and b end indexes. + + port_indexes dict example: + { + 0: {'a_end_index': 24, 'b_end_index': 0}, + 1: {'a_end_index': 25, 'b_end_index': 0}, + 2: {'a_end_index': 26, 'b_end_index': 0}, + 3: {'a_end_index': 27, 'b_end_index': 0}, + ...etc + } + ''' + if int(self.spine_size) > 24 or int(self.tier2_size) > 24 or int(self.tier1_size) > 24: + sys.exit('Amount of required port indexes exceeds free port indexes, decrease the size of spine/tier2/tier1 if they exceed 24') + + allocated_port_indexes = {} + free_port_indexes = {} + + for node in self.G.nodes: + free_port_indexes.update({node: {'uplinks': [i for i in range(0, 24)], 'downlinks': [i for i in range(24, 48)]}}) + + edge_index = 0 + for edge in self.edges: + lowest_available_downlink = min(free_port_indexes[edge[0]]['downlinks']) + lowest_available_uplink = min(free_port_indexes[edge[1]]['uplinks']) + allocated_port_indexes.update({edge_index: {'a_end_index': lowest_available_downlink, 'b_end_index': lowest_available_uplink}}) + free_port_indexes[edge[0]]['downlinks'].remove(lowest_available_downlink) + free_port_indexes[edge[1]]['uplinks'].remove(lowest_available_uplink) + edge_index += 1 + + return allocated_port_indexes + +if __name__ == "__main__": + Clos = Clos(args.spine_size, args.tier2_size, args.tier1_size, args.ip_range, args.mgmt_range, args.vendor) + Clos.build() diff --git a/configs/cisco_ios/s1-r1.conf b/configs/cisco_ios/s1-r1.conf new file mode 100644 index 0000000..78589da --- /dev/null +++ b/configs/cisco_ios/s1-r1.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r1 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.0 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r1 GigabitEthernet24 <--> GigabitEthernet0 t2-r1" + ip address 10.0.0.0 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r1 GigabitEthernet25 <--> GigabitEthernet0 t2-r2" + ip address 10.0.0.2 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r1 GigabitEthernet26 <--> GigabitEthernet0 t2-r3" + ip address 10.0.0.4 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r1 GigabitEthernet27 <--> GigabitEthernet0 t2-r4" + ip address 10.0.0.6 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r1 GigabitEthernet28 <--> GigabitEthernet0 t2-r5" + ip address 10.0.0.8 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r1 GigabitEthernet29 <--> GigabitEthernet0 t2-r6" + ip address 10.0.0.10 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r1 GigabitEthernet30 <--> GigabitEthernet0 t2-r7" + ip address 10.0.0.12 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r1 GigabitEthernet31 <--> GigabitEthernet0 t2-r8" + ip address 10.0.0.14 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r1 GigabitEthernet32 <--> GigabitEthernet0 t2-r9" + ip address 10.0.0.16 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r1 GigabitEthernet33 <--> GigabitEthernet0 t2-r10" + ip address 10.0.0.18 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r1 GigabitEthernet34 <--> GigabitEthernet0 t2-r11" + ip address 10.0.0.20 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r1 GigabitEthernet35 <--> GigabitEthernet0 t2-r12" + ip address 10.0.0.22 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r1 GigabitEthernet36 <--> GigabitEthernet0 t2-r13" + ip address 10.0.0.24 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r1 GigabitEthernet37 <--> GigabitEthernet0 t2-r14" + ip address 10.0.0.26 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r1 GigabitEthernet38 <--> GigabitEthernet0 t2-r15" + ip address 10.0.0.28 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r1 GigabitEthernet39 <--> GigabitEthernet0 t2-r16" + ip address 10.0.0.30 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.0 + passive-interface Loopback0 + network 10.0.0.0 0.0.0.1 area 0 + network 10.0.0.2 0.0.0.1 area 0 + network 10.0.0.4 0.0.0.1 area 0 + network 10.0.0.6 0.0.0.1 area 0 + network 10.0.0.8 0.0.0.1 area 0 + network 10.0.0.10 0.0.0.1 area 0 + network 10.0.0.12 0.0.0.1 area 0 + network 10.0.0.14 0.0.0.1 area 0 + network 10.0.0.16 0.0.0.1 area 0 + network 10.0.0.18 0.0.0.1 area 0 + network 10.0.0.20 0.0.0.1 area 0 + network 10.0.0.22 0.0.0.1 area 0 + network 10.0.0.24 0.0.0.1 area 0 + network 10.0.0.26 0.0.0.1 area 0 + network 10.0.0.28 0.0.0.1 area 0 + network 10.0.0.30 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r2.conf b/configs/cisco_ios/s1-r2.conf new file mode 100644 index 0000000..a7c7b6b --- /dev/null +++ b/configs/cisco_ios/s1-r2.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r2 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.1 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r2 GigabitEthernet24 <--> GigabitEthernet1 t2-r1" + ip address 10.0.0.32 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r2 GigabitEthernet25 <--> GigabitEthernet1 t2-r2" + ip address 10.0.0.34 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r2 GigabitEthernet26 <--> GigabitEthernet1 t2-r3" + ip address 10.0.0.36 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r2 GigabitEthernet27 <--> GigabitEthernet1 t2-r4" + ip address 10.0.0.38 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r2 GigabitEthernet28 <--> GigabitEthernet1 t2-r5" + ip address 10.0.0.40 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r2 GigabitEthernet29 <--> GigabitEthernet1 t2-r6" + ip address 10.0.0.42 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r2 GigabitEthernet30 <--> GigabitEthernet1 t2-r7" + ip address 10.0.0.44 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r2 GigabitEthernet31 <--> GigabitEthernet1 t2-r8" + ip address 10.0.0.46 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r2 GigabitEthernet32 <--> GigabitEthernet1 t2-r9" + ip address 10.0.0.48 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r2 GigabitEthernet33 <--> GigabitEthernet1 t2-r10" + ip address 10.0.0.50 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r2 GigabitEthernet34 <--> GigabitEthernet1 t2-r11" + ip address 10.0.0.52 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r2 GigabitEthernet35 <--> GigabitEthernet1 t2-r12" + ip address 10.0.0.54 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r2 GigabitEthernet36 <--> GigabitEthernet1 t2-r13" + ip address 10.0.0.56 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r2 GigabitEthernet37 <--> GigabitEthernet1 t2-r14" + ip address 10.0.0.58 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r2 GigabitEthernet38 <--> GigabitEthernet1 t2-r15" + ip address 10.0.0.60 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r2 GigabitEthernet39 <--> GigabitEthernet1 t2-r16" + ip address 10.0.0.62 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.1 + passive-interface Loopback0 + network 10.0.0.32 0.0.0.1 area 0 + network 10.0.0.34 0.0.0.1 area 0 + network 10.0.0.36 0.0.0.1 area 0 + network 10.0.0.38 0.0.0.1 area 0 + network 10.0.0.40 0.0.0.1 area 0 + network 10.0.0.42 0.0.0.1 area 0 + network 10.0.0.44 0.0.0.1 area 0 + network 10.0.0.46 0.0.0.1 area 0 + network 10.0.0.48 0.0.0.1 area 0 + network 10.0.0.50 0.0.0.1 area 0 + network 10.0.0.52 0.0.0.1 area 0 + network 10.0.0.54 0.0.0.1 area 0 + network 10.0.0.56 0.0.0.1 area 0 + network 10.0.0.58 0.0.0.1 area 0 + network 10.0.0.60 0.0.0.1 area 0 + network 10.0.0.62 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r3.conf b/configs/cisco_ios/s1-r3.conf new file mode 100644 index 0000000..797f071 --- /dev/null +++ b/configs/cisco_ios/s1-r3.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r3 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.2 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r3 GigabitEthernet24 <--> GigabitEthernet2 t2-r1" + ip address 10.0.0.64 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r3 GigabitEthernet25 <--> GigabitEthernet2 t2-r2" + ip address 10.0.0.66 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r3 GigabitEthernet26 <--> GigabitEthernet2 t2-r3" + ip address 10.0.0.68 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r3 GigabitEthernet27 <--> GigabitEthernet2 t2-r4" + ip address 10.0.0.70 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r3 GigabitEthernet28 <--> GigabitEthernet2 t2-r5" + ip address 10.0.0.72 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r3 GigabitEthernet29 <--> GigabitEthernet2 t2-r6" + ip address 10.0.0.74 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r3 GigabitEthernet30 <--> GigabitEthernet2 t2-r7" + ip address 10.0.0.76 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r3 GigabitEthernet31 <--> GigabitEthernet2 t2-r8" + ip address 10.0.0.78 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r3 GigabitEthernet32 <--> GigabitEthernet2 t2-r9" + ip address 10.0.0.80 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r3 GigabitEthernet33 <--> GigabitEthernet2 t2-r10" + ip address 10.0.0.82 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r3 GigabitEthernet34 <--> GigabitEthernet2 t2-r11" + ip address 10.0.0.84 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r3 GigabitEthernet35 <--> GigabitEthernet2 t2-r12" + ip address 10.0.0.86 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r3 GigabitEthernet36 <--> GigabitEthernet2 t2-r13" + ip address 10.0.0.88 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r3 GigabitEthernet37 <--> GigabitEthernet2 t2-r14" + ip address 10.0.0.90 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r3 GigabitEthernet38 <--> GigabitEthernet2 t2-r15" + ip address 10.0.0.92 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r3 GigabitEthernet39 <--> GigabitEthernet2 t2-r16" + ip address 10.0.0.94 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.2 + passive-interface Loopback0 + network 10.0.0.64 0.0.0.1 area 0 + network 10.0.0.66 0.0.0.1 area 0 + network 10.0.0.68 0.0.0.1 area 0 + network 10.0.0.70 0.0.0.1 area 0 + network 10.0.0.72 0.0.0.1 area 0 + network 10.0.0.74 0.0.0.1 area 0 + network 10.0.0.76 0.0.0.1 area 0 + network 10.0.0.78 0.0.0.1 area 0 + network 10.0.0.80 0.0.0.1 area 0 + network 10.0.0.82 0.0.0.1 area 0 + network 10.0.0.84 0.0.0.1 area 0 + network 10.0.0.86 0.0.0.1 area 0 + network 10.0.0.88 0.0.0.1 area 0 + network 10.0.0.90 0.0.0.1 area 0 + network 10.0.0.92 0.0.0.1 area 0 + network 10.0.0.94 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r4.conf b/configs/cisco_ios/s1-r4.conf new file mode 100644 index 0000000..f3e7300 --- /dev/null +++ b/configs/cisco_ios/s1-r4.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r4 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.3 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r4 GigabitEthernet24 <--> GigabitEthernet3 t2-r1" + ip address 10.0.0.96 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r4 GigabitEthernet25 <--> GigabitEthernet3 t2-r2" + ip address 10.0.0.98 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r4 GigabitEthernet26 <--> GigabitEthernet3 t2-r3" + ip address 10.0.0.100 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r4 GigabitEthernet27 <--> GigabitEthernet3 t2-r4" + ip address 10.0.0.102 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r4 GigabitEthernet28 <--> GigabitEthernet3 t2-r5" + ip address 10.0.0.104 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r4 GigabitEthernet29 <--> GigabitEthernet3 t2-r6" + ip address 10.0.0.106 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r4 GigabitEthernet30 <--> GigabitEthernet3 t2-r7" + ip address 10.0.0.108 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r4 GigabitEthernet31 <--> GigabitEthernet3 t2-r8" + ip address 10.0.0.110 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r4 GigabitEthernet32 <--> GigabitEthernet3 t2-r9" + ip address 10.0.0.112 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r4 GigabitEthernet33 <--> GigabitEthernet3 t2-r10" + ip address 10.0.0.114 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r4 GigabitEthernet34 <--> GigabitEthernet3 t2-r11" + ip address 10.0.0.116 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r4 GigabitEthernet35 <--> GigabitEthernet3 t2-r12" + ip address 10.0.0.118 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r4 GigabitEthernet36 <--> GigabitEthernet3 t2-r13" + ip address 10.0.0.120 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r4 GigabitEthernet37 <--> GigabitEthernet3 t2-r14" + ip address 10.0.0.122 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r4 GigabitEthernet38 <--> GigabitEthernet3 t2-r15" + ip address 10.0.0.124 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r4 GigabitEthernet39 <--> GigabitEthernet3 t2-r16" + ip address 10.0.0.126 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.3 + passive-interface Loopback0 + network 10.0.0.96 0.0.0.1 area 0 + network 10.0.0.98 0.0.0.1 area 0 + network 10.0.0.100 0.0.0.1 area 0 + network 10.0.0.102 0.0.0.1 area 0 + network 10.0.0.104 0.0.0.1 area 0 + network 10.0.0.106 0.0.0.1 area 0 + network 10.0.0.108 0.0.0.1 area 0 + network 10.0.0.110 0.0.0.1 area 0 + network 10.0.0.112 0.0.0.1 area 0 + network 10.0.0.114 0.0.0.1 area 0 + network 10.0.0.116 0.0.0.1 area 0 + network 10.0.0.118 0.0.0.1 area 0 + network 10.0.0.120 0.0.0.1 area 0 + network 10.0.0.122 0.0.0.1 area 0 + network 10.0.0.124 0.0.0.1 area 0 + network 10.0.0.126 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r5.conf b/configs/cisco_ios/s1-r5.conf new file mode 100644 index 0000000..afbe37e --- /dev/null +++ b/configs/cisco_ios/s1-r5.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r5 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.4 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r5 GigabitEthernet24 <--> GigabitEthernet4 t2-r1" + ip address 10.0.0.128 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r5 GigabitEthernet25 <--> GigabitEthernet4 t2-r2" + ip address 10.0.0.130 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r5 GigabitEthernet26 <--> GigabitEthernet4 t2-r3" + ip address 10.0.0.132 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r5 GigabitEthernet27 <--> GigabitEthernet4 t2-r4" + ip address 10.0.0.134 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r5 GigabitEthernet28 <--> GigabitEthernet4 t2-r5" + ip address 10.0.0.136 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r5 GigabitEthernet29 <--> GigabitEthernet4 t2-r6" + ip address 10.0.0.138 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r5 GigabitEthernet30 <--> GigabitEthernet4 t2-r7" + ip address 10.0.0.140 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r5 GigabitEthernet31 <--> GigabitEthernet4 t2-r8" + ip address 10.0.0.142 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r5 GigabitEthernet32 <--> GigabitEthernet4 t2-r9" + ip address 10.0.0.144 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r5 GigabitEthernet33 <--> GigabitEthernet4 t2-r10" + ip address 10.0.0.146 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r5 GigabitEthernet34 <--> GigabitEthernet4 t2-r11" + ip address 10.0.0.148 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r5 GigabitEthernet35 <--> GigabitEthernet4 t2-r12" + ip address 10.0.0.150 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r5 GigabitEthernet36 <--> GigabitEthernet4 t2-r13" + ip address 10.0.0.152 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r5 GigabitEthernet37 <--> GigabitEthernet4 t2-r14" + ip address 10.0.0.154 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r5 GigabitEthernet38 <--> GigabitEthernet4 t2-r15" + ip address 10.0.0.156 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r5 GigabitEthernet39 <--> GigabitEthernet4 t2-r16" + ip address 10.0.0.158 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.4 + passive-interface Loopback0 + network 10.0.0.128 0.0.0.1 area 0 + network 10.0.0.130 0.0.0.1 area 0 + network 10.0.0.132 0.0.0.1 area 0 + network 10.0.0.134 0.0.0.1 area 0 + network 10.0.0.136 0.0.0.1 area 0 + network 10.0.0.138 0.0.0.1 area 0 + network 10.0.0.140 0.0.0.1 area 0 + network 10.0.0.142 0.0.0.1 area 0 + network 10.0.0.144 0.0.0.1 area 0 + network 10.0.0.146 0.0.0.1 area 0 + network 10.0.0.148 0.0.0.1 area 0 + network 10.0.0.150 0.0.0.1 area 0 + network 10.0.0.152 0.0.0.1 area 0 + network 10.0.0.154 0.0.0.1 area 0 + network 10.0.0.156 0.0.0.1 area 0 + network 10.0.0.158 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r6.conf b/configs/cisco_ios/s1-r6.conf new file mode 100644 index 0000000..16238f0 --- /dev/null +++ b/configs/cisco_ios/s1-r6.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r6 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.5 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r6 GigabitEthernet24 <--> GigabitEthernet5 t2-r1" + ip address 10.0.0.160 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r6 GigabitEthernet25 <--> GigabitEthernet5 t2-r2" + ip address 10.0.0.162 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r6 GigabitEthernet26 <--> GigabitEthernet5 t2-r3" + ip address 10.0.0.164 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r6 GigabitEthernet27 <--> GigabitEthernet5 t2-r4" + ip address 10.0.0.166 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r6 GigabitEthernet28 <--> GigabitEthernet5 t2-r5" + ip address 10.0.0.168 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r6 GigabitEthernet29 <--> GigabitEthernet5 t2-r6" + ip address 10.0.0.170 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r6 GigabitEthernet30 <--> GigabitEthernet5 t2-r7" + ip address 10.0.0.172 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r6 GigabitEthernet31 <--> GigabitEthernet5 t2-r8" + ip address 10.0.0.174 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r6 GigabitEthernet32 <--> GigabitEthernet5 t2-r9" + ip address 10.0.0.176 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r6 GigabitEthernet33 <--> GigabitEthernet5 t2-r10" + ip address 10.0.0.178 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r6 GigabitEthernet34 <--> GigabitEthernet5 t2-r11" + ip address 10.0.0.180 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r6 GigabitEthernet35 <--> GigabitEthernet5 t2-r12" + ip address 10.0.0.182 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r6 GigabitEthernet36 <--> GigabitEthernet5 t2-r13" + ip address 10.0.0.184 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r6 GigabitEthernet37 <--> GigabitEthernet5 t2-r14" + ip address 10.0.0.186 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r6 GigabitEthernet38 <--> GigabitEthernet5 t2-r15" + ip address 10.0.0.188 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r6 GigabitEthernet39 <--> GigabitEthernet5 t2-r16" + ip address 10.0.0.190 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.5 + passive-interface Loopback0 + network 10.0.0.160 0.0.0.1 area 0 + network 10.0.0.162 0.0.0.1 area 0 + network 10.0.0.164 0.0.0.1 area 0 + network 10.0.0.166 0.0.0.1 area 0 + network 10.0.0.168 0.0.0.1 area 0 + network 10.0.0.170 0.0.0.1 area 0 + network 10.0.0.172 0.0.0.1 area 0 + network 10.0.0.174 0.0.0.1 area 0 + network 10.0.0.176 0.0.0.1 area 0 + network 10.0.0.178 0.0.0.1 area 0 + network 10.0.0.180 0.0.0.1 area 0 + network 10.0.0.182 0.0.0.1 area 0 + network 10.0.0.184 0.0.0.1 area 0 + network 10.0.0.186 0.0.0.1 area 0 + network 10.0.0.188 0.0.0.1 area 0 + network 10.0.0.190 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r7.conf b/configs/cisco_ios/s1-r7.conf new file mode 100644 index 0000000..785ea44 --- /dev/null +++ b/configs/cisco_ios/s1-r7.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r7 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.6 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r7 GigabitEthernet24 <--> GigabitEthernet6 t2-r1" + ip address 10.0.0.192 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r7 GigabitEthernet25 <--> GigabitEthernet6 t2-r2" + ip address 10.0.0.194 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r7 GigabitEthernet26 <--> GigabitEthernet6 t2-r3" + ip address 10.0.0.196 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r7 GigabitEthernet27 <--> GigabitEthernet6 t2-r4" + ip address 10.0.0.198 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r7 GigabitEthernet28 <--> GigabitEthernet6 t2-r5" + ip address 10.0.0.200 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r7 GigabitEthernet29 <--> GigabitEthernet6 t2-r6" + ip address 10.0.0.202 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r7 GigabitEthernet30 <--> GigabitEthernet6 t2-r7" + ip address 10.0.0.204 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r7 GigabitEthernet31 <--> GigabitEthernet6 t2-r8" + ip address 10.0.0.206 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r7 GigabitEthernet32 <--> GigabitEthernet6 t2-r9" + ip address 10.0.0.208 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r7 GigabitEthernet33 <--> GigabitEthernet6 t2-r10" + ip address 10.0.0.210 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r7 GigabitEthernet34 <--> GigabitEthernet6 t2-r11" + ip address 10.0.0.212 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r7 GigabitEthernet35 <--> GigabitEthernet6 t2-r12" + ip address 10.0.0.214 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r7 GigabitEthernet36 <--> GigabitEthernet6 t2-r13" + ip address 10.0.0.216 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r7 GigabitEthernet37 <--> GigabitEthernet6 t2-r14" + ip address 10.0.0.218 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r7 GigabitEthernet38 <--> GigabitEthernet6 t2-r15" + ip address 10.0.0.220 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r7 GigabitEthernet39 <--> GigabitEthernet6 t2-r16" + ip address 10.0.0.222 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.6 + passive-interface Loopback0 + network 10.0.0.192 0.0.0.1 area 0 + network 10.0.0.194 0.0.0.1 area 0 + network 10.0.0.196 0.0.0.1 area 0 + network 10.0.0.198 0.0.0.1 area 0 + network 10.0.0.200 0.0.0.1 area 0 + network 10.0.0.202 0.0.0.1 area 0 + network 10.0.0.204 0.0.0.1 area 0 + network 10.0.0.206 0.0.0.1 area 0 + network 10.0.0.208 0.0.0.1 area 0 + network 10.0.0.210 0.0.0.1 area 0 + network 10.0.0.212 0.0.0.1 area 0 + network 10.0.0.214 0.0.0.1 area 0 + network 10.0.0.216 0.0.0.1 area 0 + network 10.0.0.218 0.0.0.1 area 0 + network 10.0.0.220 0.0.0.1 area 0 + network 10.0.0.222 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/s1-r8.conf b/configs/cisco_ios/s1-r8.conf new file mode 100644 index 0000000..cc04a73 --- /dev/null +++ b/configs/cisco_ios/s1-r8.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname s1-r8 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.7 255.255.255.255 +! +interface GigabitEthernet24 description "s1-r8 GigabitEthernet24 <--> GigabitEthernet7 t2-r1" + ip address 10.0.0.224 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "s1-r8 GigabitEthernet25 <--> GigabitEthernet7 t2-r2" + ip address 10.0.0.226 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "s1-r8 GigabitEthernet26 <--> GigabitEthernet7 t2-r3" + ip address 10.0.0.228 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "s1-r8 GigabitEthernet27 <--> GigabitEthernet7 t2-r4" + ip address 10.0.0.230 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "s1-r8 GigabitEthernet28 <--> GigabitEthernet7 t2-r5" + ip address 10.0.0.232 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "s1-r8 GigabitEthernet29 <--> GigabitEthernet7 t2-r6" + ip address 10.0.0.234 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "s1-r8 GigabitEthernet30 <--> GigabitEthernet7 t2-r7" + ip address 10.0.0.236 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "s1-r8 GigabitEthernet31 <--> GigabitEthernet7 t2-r8" + ip address 10.0.0.238 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "s1-r8 GigabitEthernet32 <--> GigabitEthernet7 t2-r9" + ip address 10.0.0.240 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "s1-r8 GigabitEthernet33 <--> GigabitEthernet7 t2-r10" + ip address 10.0.0.242 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "s1-r8 GigabitEthernet34 <--> GigabitEthernet7 t2-r11" + ip address 10.0.0.244 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "s1-r8 GigabitEthernet35 <--> GigabitEthernet7 t2-r12" + ip address 10.0.0.246 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "s1-r8 GigabitEthernet36 <--> GigabitEthernet7 t2-r13" + ip address 10.0.0.248 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "s1-r8 GigabitEthernet37 <--> GigabitEthernet7 t2-r14" + ip address 10.0.0.250 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "s1-r8 GigabitEthernet38 <--> GigabitEthernet7 t2-r15" + ip address 10.0.0.252 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "s1-r8 GigabitEthernet39 <--> GigabitEthernet7 t2-r16" + ip address 10.0.0.254 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.7 + passive-interface Loopback0 + network 10.0.0.224 0.0.0.1 area 0 + network 10.0.0.226 0.0.0.1 area 0 + network 10.0.0.228 0.0.0.1 area 0 + network 10.0.0.230 0.0.0.1 area 0 + network 10.0.0.232 0.0.0.1 area 0 + network 10.0.0.234 0.0.0.1 area 0 + network 10.0.0.236 0.0.0.1 area 0 + network 10.0.0.238 0.0.0.1 area 0 + network 10.0.0.240 0.0.0.1 area 0 + network 10.0.0.242 0.0.0.1 area 0 + network 10.0.0.244 0.0.0.1 area 0 + network 10.0.0.246 0.0.0.1 area 0 + network 10.0.0.248 0.0.0.1 area 0 + network 10.0.0.250 0.0.0.1 area 0 + network 10.0.0.252 0.0.0.1 area 0 + network 10.0.0.254 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r1.conf b/configs/cisco_ios/t1-r1.conf new file mode 100644 index 0000000..1830972 --- /dev/null +++ b/configs/cisco_ios/t1-r1.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r1 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.24 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r1 GigabitEthernet0 <--> GigabitEthernet24 t2-r1" + ip address 10.0.1.1 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r1 GigabitEthernet1 <--> GigabitEthernet24 t2-r2" + ip address 10.0.1.33 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r1 GigabitEthernet2 <--> GigabitEthernet24 t2-r3" + ip address 10.0.1.65 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r1 GigabitEthernet3 <--> GigabitEthernet24 t2-r4" + ip address 10.0.1.97 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r1 GigabitEthernet4 <--> GigabitEthernet24 t2-r5" + ip address 10.0.1.129 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r1 GigabitEthernet5 <--> GigabitEthernet24 t2-r6" + ip address 10.0.1.161 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r1 GigabitEthernet6 <--> GigabitEthernet24 t2-r7" + ip address 10.0.1.193 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r1 GigabitEthernet7 <--> GigabitEthernet24 t2-r8" + ip address 10.0.1.225 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r1 GigabitEthernet8 <--> GigabitEthernet24 t2-r9" + ip address 10.0.2.1 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r1 GigabitEthernet9 <--> GigabitEthernet24 t2-r10" + ip address 10.0.2.33 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r1 GigabitEthernet10 <--> GigabitEthernet24 t2-r11" + ip address 10.0.2.65 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r1 GigabitEthernet11 <--> GigabitEthernet24 t2-r12" + ip address 10.0.2.97 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r1 GigabitEthernet12 <--> GigabitEthernet24 t2-r13" + ip address 10.0.2.129 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r1 GigabitEthernet13 <--> GigabitEthernet24 t2-r14" + ip address 10.0.2.161 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r1 GigabitEthernet14 <--> GigabitEthernet24 t2-r15" + ip address 10.0.2.193 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r1 GigabitEthernet15 <--> GigabitEthernet24 t2-r16" + ip address 10.0.2.225 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.24 + passive-interface Loopback0 + network 10.0.1.0 0.0.0.1 area 0 + network 10.0.1.32 0.0.0.1 area 0 + network 10.0.1.64 0.0.0.1 area 0 + network 10.0.1.96 0.0.0.1 area 0 + network 10.0.1.128 0.0.0.1 area 0 + network 10.0.1.160 0.0.0.1 area 0 + network 10.0.1.192 0.0.0.1 area 0 + network 10.0.1.224 0.0.0.1 area 0 + network 10.0.2.0 0.0.0.1 area 0 + network 10.0.2.32 0.0.0.1 area 0 + network 10.0.2.64 0.0.0.1 area 0 + network 10.0.2.96 0.0.0.1 area 0 + network 10.0.2.128 0.0.0.1 area 0 + network 10.0.2.160 0.0.0.1 area 0 + network 10.0.2.192 0.0.0.1 area 0 + network 10.0.2.224 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r10.conf b/configs/cisco_ios/t1-r10.conf new file mode 100644 index 0000000..aa6125f --- /dev/null +++ b/configs/cisco_ios/t1-r10.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r10 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.33 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r10 GigabitEthernet0 <--> GigabitEthernet33 t2-r1" + ip address 10.0.1.19 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r10 GigabitEthernet1 <--> GigabitEthernet33 t2-r2" + ip address 10.0.1.51 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r10 GigabitEthernet2 <--> GigabitEthernet33 t2-r3" + ip address 10.0.1.83 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r10 GigabitEthernet3 <--> GigabitEthernet33 t2-r4" + ip address 10.0.1.115 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r10 GigabitEthernet4 <--> GigabitEthernet33 t2-r5" + ip address 10.0.1.147 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r10 GigabitEthernet5 <--> GigabitEthernet33 t2-r6" + ip address 10.0.1.179 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r10 GigabitEthernet6 <--> GigabitEthernet33 t2-r7" + ip address 10.0.1.211 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r10 GigabitEthernet7 <--> GigabitEthernet33 t2-r8" + ip address 10.0.1.243 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r10 GigabitEthernet8 <--> GigabitEthernet33 t2-r9" + ip address 10.0.2.19 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r10 GigabitEthernet9 <--> GigabitEthernet33 t2-r10" + ip address 10.0.2.51 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r10 GigabitEthernet10 <--> GigabitEthernet33 t2-r11" + ip address 10.0.2.83 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r10 GigabitEthernet11 <--> GigabitEthernet33 t2-r12" + ip address 10.0.2.115 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r10 GigabitEthernet12 <--> GigabitEthernet33 t2-r13" + ip address 10.0.2.147 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r10 GigabitEthernet13 <--> GigabitEthernet33 t2-r14" + ip address 10.0.2.179 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r10 GigabitEthernet14 <--> GigabitEthernet33 t2-r15" + ip address 10.0.2.211 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r10 GigabitEthernet15 <--> GigabitEthernet33 t2-r16" + ip address 10.0.2.243 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.33 + passive-interface Loopback0 + network 10.0.1.18 0.0.0.1 area 0 + network 10.0.1.50 0.0.0.1 area 0 + network 10.0.1.82 0.0.0.1 area 0 + network 10.0.1.114 0.0.0.1 area 0 + network 10.0.1.146 0.0.0.1 area 0 + network 10.0.1.178 0.0.0.1 area 0 + network 10.0.1.210 0.0.0.1 area 0 + network 10.0.1.242 0.0.0.1 area 0 + network 10.0.2.18 0.0.0.1 area 0 + network 10.0.2.50 0.0.0.1 area 0 + network 10.0.2.82 0.0.0.1 area 0 + network 10.0.2.114 0.0.0.1 area 0 + network 10.0.2.146 0.0.0.1 area 0 + network 10.0.2.178 0.0.0.1 area 0 + network 10.0.2.210 0.0.0.1 area 0 + network 10.0.2.242 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r11.conf b/configs/cisco_ios/t1-r11.conf new file mode 100644 index 0000000..79e6233 --- /dev/null +++ b/configs/cisco_ios/t1-r11.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r11 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.34 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r11 GigabitEthernet0 <--> GigabitEthernet34 t2-r1" + ip address 10.0.1.21 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r11 GigabitEthernet1 <--> GigabitEthernet34 t2-r2" + ip address 10.0.1.53 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r11 GigabitEthernet2 <--> GigabitEthernet34 t2-r3" + ip address 10.0.1.85 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r11 GigabitEthernet3 <--> GigabitEthernet34 t2-r4" + ip address 10.0.1.117 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r11 GigabitEthernet4 <--> GigabitEthernet34 t2-r5" + ip address 10.0.1.149 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r11 GigabitEthernet5 <--> GigabitEthernet34 t2-r6" + ip address 10.0.1.181 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r11 GigabitEthernet6 <--> GigabitEthernet34 t2-r7" + ip address 10.0.1.213 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r11 GigabitEthernet7 <--> GigabitEthernet34 t2-r8" + ip address 10.0.1.245 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r11 GigabitEthernet8 <--> GigabitEthernet34 t2-r9" + ip address 10.0.2.21 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r11 GigabitEthernet9 <--> GigabitEthernet34 t2-r10" + ip address 10.0.2.53 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r11 GigabitEthernet10 <--> GigabitEthernet34 t2-r11" + ip address 10.0.2.85 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r11 GigabitEthernet11 <--> GigabitEthernet34 t2-r12" + ip address 10.0.2.117 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r11 GigabitEthernet12 <--> GigabitEthernet34 t2-r13" + ip address 10.0.2.149 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r11 GigabitEthernet13 <--> GigabitEthernet34 t2-r14" + ip address 10.0.2.181 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r11 GigabitEthernet14 <--> GigabitEthernet34 t2-r15" + ip address 10.0.2.213 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r11 GigabitEthernet15 <--> GigabitEthernet34 t2-r16" + ip address 10.0.2.245 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.34 + passive-interface Loopback0 + network 10.0.1.20 0.0.0.1 area 0 + network 10.0.1.52 0.0.0.1 area 0 + network 10.0.1.84 0.0.0.1 area 0 + network 10.0.1.116 0.0.0.1 area 0 + network 10.0.1.148 0.0.0.1 area 0 + network 10.0.1.180 0.0.0.1 area 0 + network 10.0.1.212 0.0.0.1 area 0 + network 10.0.1.244 0.0.0.1 area 0 + network 10.0.2.20 0.0.0.1 area 0 + network 10.0.2.52 0.0.0.1 area 0 + network 10.0.2.84 0.0.0.1 area 0 + network 10.0.2.116 0.0.0.1 area 0 + network 10.0.2.148 0.0.0.1 area 0 + network 10.0.2.180 0.0.0.1 area 0 + network 10.0.2.212 0.0.0.1 area 0 + network 10.0.2.244 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r12.conf b/configs/cisco_ios/t1-r12.conf new file mode 100644 index 0000000..9a5376b --- /dev/null +++ b/configs/cisco_ios/t1-r12.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r12 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.35 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r12 GigabitEthernet0 <--> GigabitEthernet35 t2-r1" + ip address 10.0.1.23 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r12 GigabitEthernet1 <--> GigabitEthernet35 t2-r2" + ip address 10.0.1.55 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r12 GigabitEthernet2 <--> GigabitEthernet35 t2-r3" + ip address 10.0.1.87 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r12 GigabitEthernet3 <--> GigabitEthernet35 t2-r4" + ip address 10.0.1.119 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r12 GigabitEthernet4 <--> GigabitEthernet35 t2-r5" + ip address 10.0.1.151 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r12 GigabitEthernet5 <--> GigabitEthernet35 t2-r6" + ip address 10.0.1.183 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r12 GigabitEthernet6 <--> GigabitEthernet35 t2-r7" + ip address 10.0.1.215 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r12 GigabitEthernet7 <--> GigabitEthernet35 t2-r8" + ip address 10.0.1.247 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r12 GigabitEthernet8 <--> GigabitEthernet35 t2-r9" + ip address 10.0.2.23 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r12 GigabitEthernet9 <--> GigabitEthernet35 t2-r10" + ip address 10.0.2.55 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r12 GigabitEthernet10 <--> GigabitEthernet35 t2-r11" + ip address 10.0.2.87 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r12 GigabitEthernet11 <--> GigabitEthernet35 t2-r12" + ip address 10.0.2.119 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r12 GigabitEthernet12 <--> GigabitEthernet35 t2-r13" + ip address 10.0.2.151 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r12 GigabitEthernet13 <--> GigabitEthernet35 t2-r14" + ip address 10.0.2.183 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r12 GigabitEthernet14 <--> GigabitEthernet35 t2-r15" + ip address 10.0.2.215 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r12 GigabitEthernet15 <--> GigabitEthernet35 t2-r16" + ip address 10.0.2.247 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.35 + passive-interface Loopback0 + network 10.0.1.22 0.0.0.1 area 0 + network 10.0.1.54 0.0.0.1 area 0 + network 10.0.1.86 0.0.0.1 area 0 + network 10.0.1.118 0.0.0.1 area 0 + network 10.0.1.150 0.0.0.1 area 0 + network 10.0.1.182 0.0.0.1 area 0 + network 10.0.1.214 0.0.0.1 area 0 + network 10.0.1.246 0.0.0.1 area 0 + network 10.0.2.22 0.0.0.1 area 0 + network 10.0.2.54 0.0.0.1 area 0 + network 10.0.2.86 0.0.0.1 area 0 + network 10.0.2.118 0.0.0.1 area 0 + network 10.0.2.150 0.0.0.1 area 0 + network 10.0.2.182 0.0.0.1 area 0 + network 10.0.2.214 0.0.0.1 area 0 + network 10.0.2.246 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r13.conf b/configs/cisco_ios/t1-r13.conf new file mode 100644 index 0000000..9a5caaa --- /dev/null +++ b/configs/cisco_ios/t1-r13.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r13 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.36 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r13 GigabitEthernet0 <--> GigabitEthernet36 t2-r1" + ip address 10.0.1.25 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r13 GigabitEthernet1 <--> GigabitEthernet36 t2-r2" + ip address 10.0.1.57 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r13 GigabitEthernet2 <--> GigabitEthernet36 t2-r3" + ip address 10.0.1.89 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r13 GigabitEthernet3 <--> GigabitEthernet36 t2-r4" + ip address 10.0.1.121 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r13 GigabitEthernet4 <--> GigabitEthernet36 t2-r5" + ip address 10.0.1.153 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r13 GigabitEthernet5 <--> GigabitEthernet36 t2-r6" + ip address 10.0.1.185 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r13 GigabitEthernet6 <--> GigabitEthernet36 t2-r7" + ip address 10.0.1.217 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r13 GigabitEthernet7 <--> GigabitEthernet36 t2-r8" + ip address 10.0.1.249 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r13 GigabitEthernet8 <--> GigabitEthernet36 t2-r9" + ip address 10.0.2.25 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r13 GigabitEthernet9 <--> GigabitEthernet36 t2-r10" + ip address 10.0.2.57 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r13 GigabitEthernet10 <--> GigabitEthernet36 t2-r11" + ip address 10.0.2.89 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r13 GigabitEthernet11 <--> GigabitEthernet36 t2-r12" + ip address 10.0.2.121 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r13 GigabitEthernet12 <--> GigabitEthernet36 t2-r13" + ip address 10.0.2.153 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r13 GigabitEthernet13 <--> GigabitEthernet36 t2-r14" + ip address 10.0.2.185 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r13 GigabitEthernet14 <--> GigabitEthernet36 t2-r15" + ip address 10.0.2.217 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r13 GigabitEthernet15 <--> GigabitEthernet36 t2-r16" + ip address 10.0.2.249 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.36 + passive-interface Loopback0 + network 10.0.1.24 0.0.0.1 area 0 + network 10.0.1.56 0.0.0.1 area 0 + network 10.0.1.88 0.0.0.1 area 0 + network 10.0.1.120 0.0.0.1 area 0 + network 10.0.1.152 0.0.0.1 area 0 + network 10.0.1.184 0.0.0.1 area 0 + network 10.0.1.216 0.0.0.1 area 0 + network 10.0.1.248 0.0.0.1 area 0 + network 10.0.2.24 0.0.0.1 area 0 + network 10.0.2.56 0.0.0.1 area 0 + network 10.0.2.88 0.0.0.1 area 0 + network 10.0.2.120 0.0.0.1 area 0 + network 10.0.2.152 0.0.0.1 area 0 + network 10.0.2.184 0.0.0.1 area 0 + network 10.0.2.216 0.0.0.1 area 0 + network 10.0.2.248 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r14.conf b/configs/cisco_ios/t1-r14.conf new file mode 100644 index 0000000..0489df4 --- /dev/null +++ b/configs/cisco_ios/t1-r14.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r14 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.37 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r14 GigabitEthernet0 <--> GigabitEthernet37 t2-r1" + ip address 10.0.1.27 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r14 GigabitEthernet1 <--> GigabitEthernet37 t2-r2" + ip address 10.0.1.59 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r14 GigabitEthernet2 <--> GigabitEthernet37 t2-r3" + ip address 10.0.1.91 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r14 GigabitEthernet3 <--> GigabitEthernet37 t2-r4" + ip address 10.0.1.123 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r14 GigabitEthernet4 <--> GigabitEthernet37 t2-r5" + ip address 10.0.1.155 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r14 GigabitEthernet5 <--> GigabitEthernet37 t2-r6" + ip address 10.0.1.187 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r14 GigabitEthernet6 <--> GigabitEthernet37 t2-r7" + ip address 10.0.1.219 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r14 GigabitEthernet7 <--> GigabitEthernet37 t2-r8" + ip address 10.0.1.251 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r14 GigabitEthernet8 <--> GigabitEthernet37 t2-r9" + ip address 10.0.2.27 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r14 GigabitEthernet9 <--> GigabitEthernet37 t2-r10" + ip address 10.0.2.59 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r14 GigabitEthernet10 <--> GigabitEthernet37 t2-r11" + ip address 10.0.2.91 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r14 GigabitEthernet11 <--> GigabitEthernet37 t2-r12" + ip address 10.0.2.123 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r14 GigabitEthernet12 <--> GigabitEthernet37 t2-r13" + ip address 10.0.2.155 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r14 GigabitEthernet13 <--> GigabitEthernet37 t2-r14" + ip address 10.0.2.187 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r14 GigabitEthernet14 <--> GigabitEthernet37 t2-r15" + ip address 10.0.2.219 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r14 GigabitEthernet15 <--> GigabitEthernet37 t2-r16" + ip address 10.0.2.251 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.37 + passive-interface Loopback0 + network 10.0.1.26 0.0.0.1 area 0 + network 10.0.1.58 0.0.0.1 area 0 + network 10.0.1.90 0.0.0.1 area 0 + network 10.0.1.122 0.0.0.1 area 0 + network 10.0.1.154 0.0.0.1 area 0 + network 10.0.1.186 0.0.0.1 area 0 + network 10.0.1.218 0.0.0.1 area 0 + network 10.0.1.250 0.0.0.1 area 0 + network 10.0.2.26 0.0.0.1 area 0 + network 10.0.2.58 0.0.0.1 area 0 + network 10.0.2.90 0.0.0.1 area 0 + network 10.0.2.122 0.0.0.1 area 0 + network 10.0.2.154 0.0.0.1 area 0 + network 10.0.2.186 0.0.0.1 area 0 + network 10.0.2.218 0.0.0.1 area 0 + network 10.0.2.250 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r15.conf b/configs/cisco_ios/t1-r15.conf new file mode 100644 index 0000000..f8e276e --- /dev/null +++ b/configs/cisco_ios/t1-r15.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r15 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.38 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r15 GigabitEthernet0 <--> GigabitEthernet38 t2-r1" + ip address 10.0.1.29 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r15 GigabitEthernet1 <--> GigabitEthernet38 t2-r2" + ip address 10.0.1.61 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r15 GigabitEthernet2 <--> GigabitEthernet38 t2-r3" + ip address 10.0.1.93 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r15 GigabitEthernet3 <--> GigabitEthernet38 t2-r4" + ip address 10.0.1.125 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r15 GigabitEthernet4 <--> GigabitEthernet38 t2-r5" + ip address 10.0.1.157 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r15 GigabitEthernet5 <--> GigabitEthernet38 t2-r6" + ip address 10.0.1.189 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r15 GigabitEthernet6 <--> GigabitEthernet38 t2-r7" + ip address 10.0.1.221 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r15 GigabitEthernet7 <--> GigabitEthernet38 t2-r8" + ip address 10.0.1.253 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r15 GigabitEthernet8 <--> GigabitEthernet38 t2-r9" + ip address 10.0.2.29 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r15 GigabitEthernet9 <--> GigabitEthernet38 t2-r10" + ip address 10.0.2.61 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r15 GigabitEthernet10 <--> GigabitEthernet38 t2-r11" + ip address 10.0.2.93 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r15 GigabitEthernet11 <--> GigabitEthernet38 t2-r12" + ip address 10.0.2.125 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r15 GigabitEthernet12 <--> GigabitEthernet38 t2-r13" + ip address 10.0.2.157 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r15 GigabitEthernet13 <--> GigabitEthernet38 t2-r14" + ip address 10.0.2.189 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r15 GigabitEthernet14 <--> GigabitEthernet38 t2-r15" + ip address 10.0.2.221 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r15 GigabitEthernet15 <--> GigabitEthernet38 t2-r16" + ip address 10.0.2.253 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.38 + passive-interface Loopback0 + network 10.0.1.28 0.0.0.1 area 0 + network 10.0.1.60 0.0.0.1 area 0 + network 10.0.1.92 0.0.0.1 area 0 + network 10.0.1.124 0.0.0.1 area 0 + network 10.0.1.156 0.0.0.1 area 0 + network 10.0.1.188 0.0.0.1 area 0 + network 10.0.1.220 0.0.0.1 area 0 + network 10.0.1.252 0.0.0.1 area 0 + network 10.0.2.28 0.0.0.1 area 0 + network 10.0.2.60 0.0.0.1 area 0 + network 10.0.2.92 0.0.0.1 area 0 + network 10.0.2.124 0.0.0.1 area 0 + network 10.0.2.156 0.0.0.1 area 0 + network 10.0.2.188 0.0.0.1 area 0 + network 10.0.2.220 0.0.0.1 area 0 + network 10.0.2.252 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r16.conf b/configs/cisco_ios/t1-r16.conf new file mode 100644 index 0000000..b964441 --- /dev/null +++ b/configs/cisco_ios/t1-r16.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r16 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.39 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r16 GigabitEthernet0 <--> GigabitEthernet39 t2-r1" + ip address 10.0.1.31 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r16 GigabitEthernet1 <--> GigabitEthernet39 t2-r2" + ip address 10.0.1.63 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r16 GigabitEthernet2 <--> GigabitEthernet39 t2-r3" + ip address 10.0.1.95 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r16 GigabitEthernet3 <--> GigabitEthernet39 t2-r4" + ip address 10.0.1.127 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r16 GigabitEthernet4 <--> GigabitEthernet39 t2-r5" + ip address 10.0.1.159 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r16 GigabitEthernet5 <--> GigabitEthernet39 t2-r6" + ip address 10.0.1.191 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r16 GigabitEthernet6 <--> GigabitEthernet39 t2-r7" + ip address 10.0.1.223 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r16 GigabitEthernet7 <--> GigabitEthernet39 t2-r8" + ip address 10.0.1.255 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r16 GigabitEthernet8 <--> GigabitEthernet39 t2-r9" + ip address 10.0.2.31 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r16 GigabitEthernet9 <--> GigabitEthernet39 t2-r10" + ip address 10.0.2.63 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r16 GigabitEthernet10 <--> GigabitEthernet39 t2-r11" + ip address 10.0.2.95 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r16 GigabitEthernet11 <--> GigabitEthernet39 t2-r12" + ip address 10.0.2.127 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r16 GigabitEthernet12 <--> GigabitEthernet39 t2-r13" + ip address 10.0.2.159 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r16 GigabitEthernet13 <--> GigabitEthernet39 t2-r14" + ip address 10.0.2.191 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r16 GigabitEthernet14 <--> GigabitEthernet39 t2-r15" + ip address 10.0.2.223 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r16 GigabitEthernet15 <--> GigabitEthernet39 t2-r16" + ip address 10.0.2.255 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.39 + passive-interface Loopback0 + network 10.0.1.30 0.0.0.1 area 0 + network 10.0.1.62 0.0.0.1 area 0 + network 10.0.1.94 0.0.0.1 area 0 + network 10.0.1.126 0.0.0.1 area 0 + network 10.0.1.158 0.0.0.1 area 0 + network 10.0.1.190 0.0.0.1 area 0 + network 10.0.1.222 0.0.0.1 area 0 + network 10.0.1.254 0.0.0.1 area 0 + network 10.0.2.30 0.0.0.1 area 0 + network 10.0.2.62 0.0.0.1 area 0 + network 10.0.2.94 0.0.0.1 area 0 + network 10.0.2.126 0.0.0.1 area 0 + network 10.0.2.158 0.0.0.1 area 0 + network 10.0.2.190 0.0.0.1 area 0 + network 10.0.2.222 0.0.0.1 area 0 + network 10.0.2.254 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r2.conf b/configs/cisco_ios/t1-r2.conf new file mode 100644 index 0000000..affacb2 --- /dev/null +++ b/configs/cisco_ios/t1-r2.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r2 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.25 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r2 GigabitEthernet0 <--> GigabitEthernet25 t2-r1" + ip address 10.0.1.3 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r2 GigabitEthernet1 <--> GigabitEthernet25 t2-r2" + ip address 10.0.1.35 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r2 GigabitEthernet2 <--> GigabitEthernet25 t2-r3" + ip address 10.0.1.67 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r2 GigabitEthernet3 <--> GigabitEthernet25 t2-r4" + ip address 10.0.1.99 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r2 GigabitEthernet4 <--> GigabitEthernet25 t2-r5" + ip address 10.0.1.131 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r2 GigabitEthernet5 <--> GigabitEthernet25 t2-r6" + ip address 10.0.1.163 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r2 GigabitEthernet6 <--> GigabitEthernet25 t2-r7" + ip address 10.0.1.195 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r2 GigabitEthernet7 <--> GigabitEthernet25 t2-r8" + ip address 10.0.1.227 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r2 GigabitEthernet8 <--> GigabitEthernet25 t2-r9" + ip address 10.0.2.3 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r2 GigabitEthernet9 <--> GigabitEthernet25 t2-r10" + ip address 10.0.2.35 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r2 GigabitEthernet10 <--> GigabitEthernet25 t2-r11" + ip address 10.0.2.67 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r2 GigabitEthernet11 <--> GigabitEthernet25 t2-r12" + ip address 10.0.2.99 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r2 GigabitEthernet12 <--> GigabitEthernet25 t2-r13" + ip address 10.0.2.131 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r2 GigabitEthernet13 <--> GigabitEthernet25 t2-r14" + ip address 10.0.2.163 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r2 GigabitEthernet14 <--> GigabitEthernet25 t2-r15" + ip address 10.0.2.195 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r2 GigabitEthernet15 <--> GigabitEthernet25 t2-r16" + ip address 10.0.2.227 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.25 + passive-interface Loopback0 + network 10.0.1.2 0.0.0.1 area 0 + network 10.0.1.34 0.0.0.1 area 0 + network 10.0.1.66 0.0.0.1 area 0 + network 10.0.1.98 0.0.0.1 area 0 + network 10.0.1.130 0.0.0.1 area 0 + network 10.0.1.162 0.0.0.1 area 0 + network 10.0.1.194 0.0.0.1 area 0 + network 10.0.1.226 0.0.0.1 area 0 + network 10.0.2.2 0.0.0.1 area 0 + network 10.0.2.34 0.0.0.1 area 0 + network 10.0.2.66 0.0.0.1 area 0 + network 10.0.2.98 0.0.0.1 area 0 + network 10.0.2.130 0.0.0.1 area 0 + network 10.0.2.162 0.0.0.1 area 0 + network 10.0.2.194 0.0.0.1 area 0 + network 10.0.2.226 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r3.conf b/configs/cisco_ios/t1-r3.conf new file mode 100644 index 0000000..b61fc27 --- /dev/null +++ b/configs/cisco_ios/t1-r3.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r3 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.26 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r3 GigabitEthernet0 <--> GigabitEthernet26 t2-r1" + ip address 10.0.1.5 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r3 GigabitEthernet1 <--> GigabitEthernet26 t2-r2" + ip address 10.0.1.37 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r3 GigabitEthernet2 <--> GigabitEthernet26 t2-r3" + ip address 10.0.1.69 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r3 GigabitEthernet3 <--> GigabitEthernet26 t2-r4" + ip address 10.0.1.101 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r3 GigabitEthernet4 <--> GigabitEthernet26 t2-r5" + ip address 10.0.1.133 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r3 GigabitEthernet5 <--> GigabitEthernet26 t2-r6" + ip address 10.0.1.165 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r3 GigabitEthernet6 <--> GigabitEthernet26 t2-r7" + ip address 10.0.1.197 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r3 GigabitEthernet7 <--> GigabitEthernet26 t2-r8" + ip address 10.0.1.229 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r3 GigabitEthernet8 <--> GigabitEthernet26 t2-r9" + ip address 10.0.2.5 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r3 GigabitEthernet9 <--> GigabitEthernet26 t2-r10" + ip address 10.0.2.37 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r3 GigabitEthernet10 <--> GigabitEthernet26 t2-r11" + ip address 10.0.2.69 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r3 GigabitEthernet11 <--> GigabitEthernet26 t2-r12" + ip address 10.0.2.101 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r3 GigabitEthernet12 <--> GigabitEthernet26 t2-r13" + ip address 10.0.2.133 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r3 GigabitEthernet13 <--> GigabitEthernet26 t2-r14" + ip address 10.0.2.165 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r3 GigabitEthernet14 <--> GigabitEthernet26 t2-r15" + ip address 10.0.2.197 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r3 GigabitEthernet15 <--> GigabitEthernet26 t2-r16" + ip address 10.0.2.229 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.26 + passive-interface Loopback0 + network 10.0.1.4 0.0.0.1 area 0 + network 10.0.1.36 0.0.0.1 area 0 + network 10.0.1.68 0.0.0.1 area 0 + network 10.0.1.100 0.0.0.1 area 0 + network 10.0.1.132 0.0.0.1 area 0 + network 10.0.1.164 0.0.0.1 area 0 + network 10.0.1.196 0.0.0.1 area 0 + network 10.0.1.228 0.0.0.1 area 0 + network 10.0.2.4 0.0.0.1 area 0 + network 10.0.2.36 0.0.0.1 area 0 + network 10.0.2.68 0.0.0.1 area 0 + network 10.0.2.100 0.0.0.1 area 0 + network 10.0.2.132 0.0.0.1 area 0 + network 10.0.2.164 0.0.0.1 area 0 + network 10.0.2.196 0.0.0.1 area 0 + network 10.0.2.228 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r4.conf b/configs/cisco_ios/t1-r4.conf new file mode 100644 index 0000000..66c2e83 --- /dev/null +++ b/configs/cisco_ios/t1-r4.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r4 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.27 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r4 GigabitEthernet0 <--> GigabitEthernet27 t2-r1" + ip address 10.0.1.7 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r4 GigabitEthernet1 <--> GigabitEthernet27 t2-r2" + ip address 10.0.1.39 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r4 GigabitEthernet2 <--> GigabitEthernet27 t2-r3" + ip address 10.0.1.71 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r4 GigabitEthernet3 <--> GigabitEthernet27 t2-r4" + ip address 10.0.1.103 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r4 GigabitEthernet4 <--> GigabitEthernet27 t2-r5" + ip address 10.0.1.135 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r4 GigabitEthernet5 <--> GigabitEthernet27 t2-r6" + ip address 10.0.1.167 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r4 GigabitEthernet6 <--> GigabitEthernet27 t2-r7" + ip address 10.0.1.199 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r4 GigabitEthernet7 <--> GigabitEthernet27 t2-r8" + ip address 10.0.1.231 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r4 GigabitEthernet8 <--> GigabitEthernet27 t2-r9" + ip address 10.0.2.7 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r4 GigabitEthernet9 <--> GigabitEthernet27 t2-r10" + ip address 10.0.2.39 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r4 GigabitEthernet10 <--> GigabitEthernet27 t2-r11" + ip address 10.0.2.71 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r4 GigabitEthernet11 <--> GigabitEthernet27 t2-r12" + ip address 10.0.2.103 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r4 GigabitEthernet12 <--> GigabitEthernet27 t2-r13" + ip address 10.0.2.135 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r4 GigabitEthernet13 <--> GigabitEthernet27 t2-r14" + ip address 10.0.2.167 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r4 GigabitEthernet14 <--> GigabitEthernet27 t2-r15" + ip address 10.0.2.199 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r4 GigabitEthernet15 <--> GigabitEthernet27 t2-r16" + ip address 10.0.2.231 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.27 + passive-interface Loopback0 + network 10.0.1.6 0.0.0.1 area 0 + network 10.0.1.38 0.0.0.1 area 0 + network 10.0.1.70 0.0.0.1 area 0 + network 10.0.1.102 0.0.0.1 area 0 + network 10.0.1.134 0.0.0.1 area 0 + network 10.0.1.166 0.0.0.1 area 0 + network 10.0.1.198 0.0.0.1 area 0 + network 10.0.1.230 0.0.0.1 area 0 + network 10.0.2.6 0.0.0.1 area 0 + network 10.0.2.38 0.0.0.1 area 0 + network 10.0.2.70 0.0.0.1 area 0 + network 10.0.2.102 0.0.0.1 area 0 + network 10.0.2.134 0.0.0.1 area 0 + network 10.0.2.166 0.0.0.1 area 0 + network 10.0.2.198 0.0.0.1 area 0 + network 10.0.2.230 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r5.conf b/configs/cisco_ios/t1-r5.conf new file mode 100644 index 0000000..a247db5 --- /dev/null +++ b/configs/cisco_ios/t1-r5.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r5 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.28 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r5 GigabitEthernet0 <--> GigabitEthernet28 t2-r1" + ip address 10.0.1.9 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r5 GigabitEthernet1 <--> GigabitEthernet28 t2-r2" + ip address 10.0.1.41 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r5 GigabitEthernet2 <--> GigabitEthernet28 t2-r3" + ip address 10.0.1.73 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r5 GigabitEthernet3 <--> GigabitEthernet28 t2-r4" + ip address 10.0.1.105 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r5 GigabitEthernet4 <--> GigabitEthernet28 t2-r5" + ip address 10.0.1.137 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r5 GigabitEthernet5 <--> GigabitEthernet28 t2-r6" + ip address 10.0.1.169 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r5 GigabitEthernet6 <--> GigabitEthernet28 t2-r7" + ip address 10.0.1.201 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r5 GigabitEthernet7 <--> GigabitEthernet28 t2-r8" + ip address 10.0.1.233 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r5 GigabitEthernet8 <--> GigabitEthernet28 t2-r9" + ip address 10.0.2.9 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r5 GigabitEthernet9 <--> GigabitEthernet28 t2-r10" + ip address 10.0.2.41 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r5 GigabitEthernet10 <--> GigabitEthernet28 t2-r11" + ip address 10.0.2.73 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r5 GigabitEthernet11 <--> GigabitEthernet28 t2-r12" + ip address 10.0.2.105 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r5 GigabitEthernet12 <--> GigabitEthernet28 t2-r13" + ip address 10.0.2.137 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r5 GigabitEthernet13 <--> GigabitEthernet28 t2-r14" + ip address 10.0.2.169 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r5 GigabitEthernet14 <--> GigabitEthernet28 t2-r15" + ip address 10.0.2.201 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r5 GigabitEthernet15 <--> GigabitEthernet28 t2-r16" + ip address 10.0.2.233 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.28 + passive-interface Loopback0 + network 10.0.1.8 0.0.0.1 area 0 + network 10.0.1.40 0.0.0.1 area 0 + network 10.0.1.72 0.0.0.1 area 0 + network 10.0.1.104 0.0.0.1 area 0 + network 10.0.1.136 0.0.0.1 area 0 + network 10.0.1.168 0.0.0.1 area 0 + network 10.0.1.200 0.0.0.1 area 0 + network 10.0.1.232 0.0.0.1 area 0 + network 10.0.2.8 0.0.0.1 area 0 + network 10.0.2.40 0.0.0.1 area 0 + network 10.0.2.72 0.0.0.1 area 0 + network 10.0.2.104 0.0.0.1 area 0 + network 10.0.2.136 0.0.0.1 area 0 + network 10.0.2.168 0.0.0.1 area 0 + network 10.0.2.200 0.0.0.1 area 0 + network 10.0.2.232 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r6.conf b/configs/cisco_ios/t1-r6.conf new file mode 100644 index 0000000..cfd6d6f --- /dev/null +++ b/configs/cisco_ios/t1-r6.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r6 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.29 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r6 GigabitEthernet0 <--> GigabitEthernet29 t2-r1" + ip address 10.0.1.11 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r6 GigabitEthernet1 <--> GigabitEthernet29 t2-r2" + ip address 10.0.1.43 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r6 GigabitEthernet2 <--> GigabitEthernet29 t2-r3" + ip address 10.0.1.75 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r6 GigabitEthernet3 <--> GigabitEthernet29 t2-r4" + ip address 10.0.1.107 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r6 GigabitEthernet4 <--> GigabitEthernet29 t2-r5" + ip address 10.0.1.139 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r6 GigabitEthernet5 <--> GigabitEthernet29 t2-r6" + ip address 10.0.1.171 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r6 GigabitEthernet6 <--> GigabitEthernet29 t2-r7" + ip address 10.0.1.203 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r6 GigabitEthernet7 <--> GigabitEthernet29 t2-r8" + ip address 10.0.1.235 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r6 GigabitEthernet8 <--> GigabitEthernet29 t2-r9" + ip address 10.0.2.11 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r6 GigabitEthernet9 <--> GigabitEthernet29 t2-r10" + ip address 10.0.2.43 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r6 GigabitEthernet10 <--> GigabitEthernet29 t2-r11" + ip address 10.0.2.75 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r6 GigabitEthernet11 <--> GigabitEthernet29 t2-r12" + ip address 10.0.2.107 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r6 GigabitEthernet12 <--> GigabitEthernet29 t2-r13" + ip address 10.0.2.139 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r6 GigabitEthernet13 <--> GigabitEthernet29 t2-r14" + ip address 10.0.2.171 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r6 GigabitEthernet14 <--> GigabitEthernet29 t2-r15" + ip address 10.0.2.203 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r6 GigabitEthernet15 <--> GigabitEthernet29 t2-r16" + ip address 10.0.2.235 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.29 + passive-interface Loopback0 + network 10.0.1.10 0.0.0.1 area 0 + network 10.0.1.42 0.0.0.1 area 0 + network 10.0.1.74 0.0.0.1 area 0 + network 10.0.1.106 0.0.0.1 area 0 + network 10.0.1.138 0.0.0.1 area 0 + network 10.0.1.170 0.0.0.1 area 0 + network 10.0.1.202 0.0.0.1 area 0 + network 10.0.1.234 0.0.0.1 area 0 + network 10.0.2.10 0.0.0.1 area 0 + network 10.0.2.42 0.0.0.1 area 0 + network 10.0.2.74 0.0.0.1 area 0 + network 10.0.2.106 0.0.0.1 area 0 + network 10.0.2.138 0.0.0.1 area 0 + network 10.0.2.170 0.0.0.1 area 0 + network 10.0.2.202 0.0.0.1 area 0 + network 10.0.2.234 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r7.conf b/configs/cisco_ios/t1-r7.conf new file mode 100644 index 0000000..44f71c9 --- /dev/null +++ b/configs/cisco_ios/t1-r7.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r7 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.30 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r7 GigabitEthernet0 <--> GigabitEthernet30 t2-r1" + ip address 10.0.1.13 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r7 GigabitEthernet1 <--> GigabitEthernet30 t2-r2" + ip address 10.0.1.45 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r7 GigabitEthernet2 <--> GigabitEthernet30 t2-r3" + ip address 10.0.1.77 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r7 GigabitEthernet3 <--> GigabitEthernet30 t2-r4" + ip address 10.0.1.109 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r7 GigabitEthernet4 <--> GigabitEthernet30 t2-r5" + ip address 10.0.1.141 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r7 GigabitEthernet5 <--> GigabitEthernet30 t2-r6" + ip address 10.0.1.173 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r7 GigabitEthernet6 <--> GigabitEthernet30 t2-r7" + ip address 10.0.1.205 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r7 GigabitEthernet7 <--> GigabitEthernet30 t2-r8" + ip address 10.0.1.237 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r7 GigabitEthernet8 <--> GigabitEthernet30 t2-r9" + ip address 10.0.2.13 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r7 GigabitEthernet9 <--> GigabitEthernet30 t2-r10" + ip address 10.0.2.45 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r7 GigabitEthernet10 <--> GigabitEthernet30 t2-r11" + ip address 10.0.2.77 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r7 GigabitEthernet11 <--> GigabitEthernet30 t2-r12" + ip address 10.0.2.109 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r7 GigabitEthernet12 <--> GigabitEthernet30 t2-r13" + ip address 10.0.2.141 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r7 GigabitEthernet13 <--> GigabitEthernet30 t2-r14" + ip address 10.0.2.173 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r7 GigabitEthernet14 <--> GigabitEthernet30 t2-r15" + ip address 10.0.2.205 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r7 GigabitEthernet15 <--> GigabitEthernet30 t2-r16" + ip address 10.0.2.237 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.30 + passive-interface Loopback0 + network 10.0.1.12 0.0.0.1 area 0 + network 10.0.1.44 0.0.0.1 area 0 + network 10.0.1.76 0.0.0.1 area 0 + network 10.0.1.108 0.0.0.1 area 0 + network 10.0.1.140 0.0.0.1 area 0 + network 10.0.1.172 0.0.0.1 area 0 + network 10.0.1.204 0.0.0.1 area 0 + network 10.0.1.236 0.0.0.1 area 0 + network 10.0.2.12 0.0.0.1 area 0 + network 10.0.2.44 0.0.0.1 area 0 + network 10.0.2.76 0.0.0.1 area 0 + network 10.0.2.108 0.0.0.1 area 0 + network 10.0.2.140 0.0.0.1 area 0 + network 10.0.2.172 0.0.0.1 area 0 + network 10.0.2.204 0.0.0.1 area 0 + network 10.0.2.236 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r8.conf b/configs/cisco_ios/t1-r8.conf new file mode 100644 index 0000000..0c7cbc6 --- /dev/null +++ b/configs/cisco_ios/t1-r8.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r8 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.31 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r8 GigabitEthernet0 <--> GigabitEthernet31 t2-r1" + ip address 10.0.1.15 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r8 GigabitEthernet1 <--> GigabitEthernet31 t2-r2" + ip address 10.0.1.47 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r8 GigabitEthernet2 <--> GigabitEthernet31 t2-r3" + ip address 10.0.1.79 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r8 GigabitEthernet3 <--> GigabitEthernet31 t2-r4" + ip address 10.0.1.111 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r8 GigabitEthernet4 <--> GigabitEthernet31 t2-r5" + ip address 10.0.1.143 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r8 GigabitEthernet5 <--> GigabitEthernet31 t2-r6" + ip address 10.0.1.175 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r8 GigabitEthernet6 <--> GigabitEthernet31 t2-r7" + ip address 10.0.1.207 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r8 GigabitEthernet7 <--> GigabitEthernet31 t2-r8" + ip address 10.0.1.239 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r8 GigabitEthernet8 <--> GigabitEthernet31 t2-r9" + ip address 10.0.2.15 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r8 GigabitEthernet9 <--> GigabitEthernet31 t2-r10" + ip address 10.0.2.47 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r8 GigabitEthernet10 <--> GigabitEthernet31 t2-r11" + ip address 10.0.2.79 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r8 GigabitEthernet11 <--> GigabitEthernet31 t2-r12" + ip address 10.0.2.111 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r8 GigabitEthernet12 <--> GigabitEthernet31 t2-r13" + ip address 10.0.2.143 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r8 GigabitEthernet13 <--> GigabitEthernet31 t2-r14" + ip address 10.0.2.175 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r8 GigabitEthernet14 <--> GigabitEthernet31 t2-r15" + ip address 10.0.2.207 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r8 GigabitEthernet15 <--> GigabitEthernet31 t2-r16" + ip address 10.0.2.239 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.31 + passive-interface Loopback0 + network 10.0.1.14 0.0.0.1 area 0 + network 10.0.1.46 0.0.0.1 area 0 + network 10.0.1.78 0.0.0.1 area 0 + network 10.0.1.110 0.0.0.1 area 0 + network 10.0.1.142 0.0.0.1 area 0 + network 10.0.1.174 0.0.0.1 area 0 + network 10.0.1.206 0.0.0.1 area 0 + network 10.0.1.238 0.0.0.1 area 0 + network 10.0.2.14 0.0.0.1 area 0 + network 10.0.2.46 0.0.0.1 area 0 + network 10.0.2.78 0.0.0.1 area 0 + network 10.0.2.110 0.0.0.1 area 0 + network 10.0.2.142 0.0.0.1 area 0 + network 10.0.2.174 0.0.0.1 area 0 + network 10.0.2.206 0.0.0.1 area 0 + network 10.0.2.238 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t1-r9.conf b/configs/cisco_ios/t1-r9.conf new file mode 100644 index 0000000..2fb4b9d --- /dev/null +++ b/configs/cisco_ios/t1-r9.conf @@ -0,0 +1,207 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t1-r9 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.32 255.255.255.255 +! +interface GigabitEthernet0 description "t1-r9 GigabitEthernet0 <--> GigabitEthernet32 t2-r1" + ip address 10.0.1.17 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t1-r9 GigabitEthernet1 <--> GigabitEthernet32 t2-r2" + ip address 10.0.1.49 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t1-r9 GigabitEthernet2 <--> GigabitEthernet32 t2-r3" + ip address 10.0.1.81 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t1-r9 GigabitEthernet3 <--> GigabitEthernet32 t2-r4" + ip address 10.0.1.113 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t1-r9 GigabitEthernet4 <--> GigabitEthernet32 t2-r5" + ip address 10.0.1.145 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t1-r9 GigabitEthernet5 <--> GigabitEthernet32 t2-r6" + ip address 10.0.1.177 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t1-r9 GigabitEthernet6 <--> GigabitEthernet32 t2-r7" + ip address 10.0.1.209 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t1-r9 GigabitEthernet7 <--> GigabitEthernet32 t2-r8" + ip address 10.0.1.241 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet8 description "t1-r9 GigabitEthernet8 <--> GigabitEthernet32 t2-r9" + ip address 10.0.2.17 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet9 description "t1-r9 GigabitEthernet9 <--> GigabitEthernet32 t2-r10" + ip address 10.0.2.49 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet10 description "t1-r9 GigabitEthernet10 <--> GigabitEthernet32 t2-r11" + ip address 10.0.2.81 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet11 description "t1-r9 GigabitEthernet11 <--> GigabitEthernet32 t2-r12" + ip address 10.0.2.113 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet12 description "t1-r9 GigabitEthernet12 <--> GigabitEthernet32 t2-r13" + ip address 10.0.2.145 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet13 description "t1-r9 GigabitEthernet13 <--> GigabitEthernet32 t2-r14" + ip address 10.0.2.177 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet14 description "t1-r9 GigabitEthernet14 <--> GigabitEthernet32 t2-r15" + ip address 10.0.2.209 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet15 description "t1-r9 GigabitEthernet15 <--> GigabitEthernet32 t2-r16" + ip address 10.0.2.241 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.32 + passive-interface Loopback0 + network 10.0.1.16 0.0.0.1 area 0 + network 10.0.1.48 0.0.0.1 area 0 + network 10.0.1.80 0.0.0.1 area 0 + network 10.0.1.112 0.0.0.1 area 0 + network 10.0.1.144 0.0.0.1 area 0 + network 10.0.1.176 0.0.0.1 area 0 + network 10.0.1.208 0.0.0.1 area 0 + network 10.0.1.240 0.0.0.1 area 0 + network 10.0.2.16 0.0.0.1 area 0 + network 10.0.2.48 0.0.0.1 area 0 + network 10.0.2.80 0.0.0.1 area 0 + network 10.0.2.112 0.0.0.1 area 0 + network 10.0.2.144 0.0.0.1 area 0 + network 10.0.2.176 0.0.0.1 area 0 + network 10.0.2.208 0.0.0.1 area 0 + network 10.0.2.240 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r1.conf b/configs/cisco_ios/t2-r1.conf new file mode 100644 index 0000000..20f1d94 --- /dev/null +++ b/configs/cisco_ios/t2-r1.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r1 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.8 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r1 GigabitEthernet0 <--> GigabitEthernet24 s1-r1" + ip address 10.0.0.1 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r1 GigabitEthernet1 <--> GigabitEthernet24 s1-r2" + ip address 10.0.0.33 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r1 GigabitEthernet2 <--> GigabitEthernet24 s1-r3" + ip address 10.0.0.65 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r1 GigabitEthernet3 <--> GigabitEthernet24 s1-r4" + ip address 10.0.0.97 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r1 GigabitEthernet4 <--> GigabitEthernet24 s1-r5" + ip address 10.0.0.129 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r1 GigabitEthernet5 <--> GigabitEthernet24 s1-r6" + ip address 10.0.0.161 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r1 GigabitEthernet6 <--> GigabitEthernet24 s1-r7" + ip address 10.0.0.193 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r1 GigabitEthernet7 <--> GigabitEthernet24 s1-r8" + ip address 10.0.0.225 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r1 GigabitEthernet24 <--> GigabitEthernet0 t1-r1" + ip address 10.0.1.0 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r1 GigabitEthernet25 <--> GigabitEthernet0 t1-r2" + ip address 10.0.1.2 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r1 GigabitEthernet26 <--> GigabitEthernet0 t1-r3" + ip address 10.0.1.4 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r1 GigabitEthernet27 <--> GigabitEthernet0 t1-r4" + ip address 10.0.1.6 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r1 GigabitEthernet28 <--> GigabitEthernet0 t1-r5" + ip address 10.0.1.8 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r1 GigabitEthernet29 <--> GigabitEthernet0 t1-r6" + ip address 10.0.1.10 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r1 GigabitEthernet30 <--> GigabitEthernet0 t1-r7" + ip address 10.0.1.12 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r1 GigabitEthernet31 <--> GigabitEthernet0 t1-r8" + ip address 10.0.1.14 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r1 GigabitEthernet32 <--> GigabitEthernet0 t1-r9" + ip address 10.0.1.16 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r1 GigabitEthernet33 <--> GigabitEthernet0 t1-r10" + ip address 10.0.1.18 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r1 GigabitEthernet34 <--> GigabitEthernet0 t1-r11" + ip address 10.0.1.20 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r1 GigabitEthernet35 <--> GigabitEthernet0 t1-r12" + ip address 10.0.1.22 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r1 GigabitEthernet36 <--> GigabitEthernet0 t1-r13" + ip address 10.0.1.24 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r1 GigabitEthernet37 <--> GigabitEthernet0 t1-r14" + ip address 10.0.1.26 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r1 GigabitEthernet38 <--> GigabitEthernet0 t1-r15" + ip address 10.0.1.28 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r1 GigabitEthernet39 <--> GigabitEthernet0 t1-r16" + ip address 10.0.1.30 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.8 + passive-interface Loopback0 + network 10.0.0.0 0.0.0.1 area 0 + network 10.0.0.32 0.0.0.1 area 0 + network 10.0.0.64 0.0.0.1 area 0 + network 10.0.0.96 0.0.0.1 area 0 + network 10.0.0.128 0.0.0.1 area 0 + network 10.0.0.160 0.0.0.1 area 0 + network 10.0.0.192 0.0.0.1 area 0 + network 10.0.0.224 0.0.0.1 area 0 + network 10.0.1.0 0.0.0.1 area 0 + network 10.0.1.2 0.0.0.1 area 0 + network 10.0.1.4 0.0.0.1 area 0 + network 10.0.1.6 0.0.0.1 area 0 + network 10.0.1.8 0.0.0.1 area 0 + network 10.0.1.10 0.0.0.1 area 0 + network 10.0.1.12 0.0.0.1 area 0 + network 10.0.1.14 0.0.0.1 area 0 + network 10.0.1.16 0.0.0.1 area 0 + network 10.0.1.18 0.0.0.1 area 0 + network 10.0.1.20 0.0.0.1 area 0 + network 10.0.1.22 0.0.0.1 area 0 + network 10.0.1.24 0.0.0.1 area 0 + network 10.0.1.26 0.0.0.1 area 0 + network 10.0.1.28 0.0.0.1 area 0 + network 10.0.1.30 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r10.conf b/configs/cisco_ios/t2-r10.conf new file mode 100644 index 0000000..44ba599 --- /dev/null +++ b/configs/cisco_ios/t2-r10.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r10 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.17 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r10 GigabitEthernet0 <--> GigabitEthernet33 s1-r1" + ip address 10.0.0.19 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r10 GigabitEthernet1 <--> GigabitEthernet33 s1-r2" + ip address 10.0.0.51 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r10 GigabitEthernet2 <--> GigabitEthernet33 s1-r3" + ip address 10.0.0.83 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r10 GigabitEthernet3 <--> GigabitEthernet33 s1-r4" + ip address 10.0.0.115 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r10 GigabitEthernet4 <--> GigabitEthernet33 s1-r5" + ip address 10.0.0.147 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r10 GigabitEthernet5 <--> GigabitEthernet33 s1-r6" + ip address 10.0.0.179 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r10 GigabitEthernet6 <--> GigabitEthernet33 s1-r7" + ip address 10.0.0.211 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r10 GigabitEthernet7 <--> GigabitEthernet33 s1-r8" + ip address 10.0.0.243 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r10 GigabitEthernet24 <--> GigabitEthernet9 t1-r1" + ip address 10.0.2.32 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r10 GigabitEthernet25 <--> GigabitEthernet9 t1-r2" + ip address 10.0.2.34 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r10 GigabitEthernet26 <--> GigabitEthernet9 t1-r3" + ip address 10.0.2.36 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r10 GigabitEthernet27 <--> GigabitEthernet9 t1-r4" + ip address 10.0.2.38 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r10 GigabitEthernet28 <--> GigabitEthernet9 t1-r5" + ip address 10.0.2.40 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r10 GigabitEthernet29 <--> GigabitEthernet9 t1-r6" + ip address 10.0.2.42 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r10 GigabitEthernet30 <--> GigabitEthernet9 t1-r7" + ip address 10.0.2.44 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r10 GigabitEthernet31 <--> GigabitEthernet9 t1-r8" + ip address 10.0.2.46 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r10 GigabitEthernet32 <--> GigabitEthernet9 t1-r9" + ip address 10.0.2.48 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r10 GigabitEthernet33 <--> GigabitEthernet9 t1-r10" + ip address 10.0.2.50 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r10 GigabitEthernet34 <--> GigabitEthernet9 t1-r11" + ip address 10.0.2.52 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r10 GigabitEthernet35 <--> GigabitEthernet9 t1-r12" + ip address 10.0.2.54 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r10 GigabitEthernet36 <--> GigabitEthernet9 t1-r13" + ip address 10.0.2.56 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r10 GigabitEthernet37 <--> GigabitEthernet9 t1-r14" + ip address 10.0.2.58 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r10 GigabitEthernet38 <--> GigabitEthernet9 t1-r15" + ip address 10.0.2.60 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r10 GigabitEthernet39 <--> GigabitEthernet9 t1-r16" + ip address 10.0.2.62 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.17 + passive-interface Loopback0 + network 10.0.0.18 0.0.0.1 area 0 + network 10.0.0.50 0.0.0.1 area 0 + network 10.0.0.82 0.0.0.1 area 0 + network 10.0.0.114 0.0.0.1 area 0 + network 10.0.0.146 0.0.0.1 area 0 + network 10.0.0.178 0.0.0.1 area 0 + network 10.0.0.210 0.0.0.1 area 0 + network 10.0.0.242 0.0.0.1 area 0 + network 10.0.2.32 0.0.0.1 area 0 + network 10.0.2.34 0.0.0.1 area 0 + network 10.0.2.36 0.0.0.1 area 0 + network 10.0.2.38 0.0.0.1 area 0 + network 10.0.2.40 0.0.0.1 area 0 + network 10.0.2.42 0.0.0.1 area 0 + network 10.0.2.44 0.0.0.1 area 0 + network 10.0.2.46 0.0.0.1 area 0 + network 10.0.2.48 0.0.0.1 area 0 + network 10.0.2.50 0.0.0.1 area 0 + network 10.0.2.52 0.0.0.1 area 0 + network 10.0.2.54 0.0.0.1 area 0 + network 10.0.2.56 0.0.0.1 area 0 + network 10.0.2.58 0.0.0.1 area 0 + network 10.0.2.60 0.0.0.1 area 0 + network 10.0.2.62 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r11.conf b/configs/cisco_ios/t2-r11.conf new file mode 100644 index 0000000..0244b29 --- /dev/null +++ b/configs/cisco_ios/t2-r11.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r11 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.18 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r11 GigabitEthernet0 <--> GigabitEthernet34 s1-r1" + ip address 10.0.0.21 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r11 GigabitEthernet1 <--> GigabitEthernet34 s1-r2" + ip address 10.0.0.53 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r11 GigabitEthernet2 <--> GigabitEthernet34 s1-r3" + ip address 10.0.0.85 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r11 GigabitEthernet3 <--> GigabitEthernet34 s1-r4" + ip address 10.0.0.117 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r11 GigabitEthernet4 <--> GigabitEthernet34 s1-r5" + ip address 10.0.0.149 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r11 GigabitEthernet5 <--> GigabitEthernet34 s1-r6" + ip address 10.0.0.181 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r11 GigabitEthernet6 <--> GigabitEthernet34 s1-r7" + ip address 10.0.0.213 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r11 GigabitEthernet7 <--> GigabitEthernet34 s1-r8" + ip address 10.0.0.245 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r11 GigabitEthernet24 <--> GigabitEthernet10 t1-r1" + ip address 10.0.2.64 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r11 GigabitEthernet25 <--> GigabitEthernet10 t1-r2" + ip address 10.0.2.66 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r11 GigabitEthernet26 <--> GigabitEthernet10 t1-r3" + ip address 10.0.2.68 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r11 GigabitEthernet27 <--> GigabitEthernet10 t1-r4" + ip address 10.0.2.70 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r11 GigabitEthernet28 <--> GigabitEthernet10 t1-r5" + ip address 10.0.2.72 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r11 GigabitEthernet29 <--> GigabitEthernet10 t1-r6" + ip address 10.0.2.74 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r11 GigabitEthernet30 <--> GigabitEthernet10 t1-r7" + ip address 10.0.2.76 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r11 GigabitEthernet31 <--> GigabitEthernet10 t1-r8" + ip address 10.0.2.78 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r11 GigabitEthernet32 <--> GigabitEthernet10 t1-r9" + ip address 10.0.2.80 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r11 GigabitEthernet33 <--> GigabitEthernet10 t1-r10" + ip address 10.0.2.82 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r11 GigabitEthernet34 <--> GigabitEthernet10 t1-r11" + ip address 10.0.2.84 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r11 GigabitEthernet35 <--> GigabitEthernet10 t1-r12" + ip address 10.0.2.86 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r11 GigabitEthernet36 <--> GigabitEthernet10 t1-r13" + ip address 10.0.2.88 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r11 GigabitEthernet37 <--> GigabitEthernet10 t1-r14" + ip address 10.0.2.90 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r11 GigabitEthernet38 <--> GigabitEthernet10 t1-r15" + ip address 10.0.2.92 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r11 GigabitEthernet39 <--> GigabitEthernet10 t1-r16" + ip address 10.0.2.94 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.18 + passive-interface Loopback0 + network 10.0.0.20 0.0.0.1 area 0 + network 10.0.0.52 0.0.0.1 area 0 + network 10.0.0.84 0.0.0.1 area 0 + network 10.0.0.116 0.0.0.1 area 0 + network 10.0.0.148 0.0.0.1 area 0 + network 10.0.0.180 0.0.0.1 area 0 + network 10.0.0.212 0.0.0.1 area 0 + network 10.0.0.244 0.0.0.1 area 0 + network 10.0.2.64 0.0.0.1 area 0 + network 10.0.2.66 0.0.0.1 area 0 + network 10.0.2.68 0.0.0.1 area 0 + network 10.0.2.70 0.0.0.1 area 0 + network 10.0.2.72 0.0.0.1 area 0 + network 10.0.2.74 0.0.0.1 area 0 + network 10.0.2.76 0.0.0.1 area 0 + network 10.0.2.78 0.0.0.1 area 0 + network 10.0.2.80 0.0.0.1 area 0 + network 10.0.2.82 0.0.0.1 area 0 + network 10.0.2.84 0.0.0.1 area 0 + network 10.0.2.86 0.0.0.1 area 0 + network 10.0.2.88 0.0.0.1 area 0 + network 10.0.2.90 0.0.0.1 area 0 + network 10.0.2.92 0.0.0.1 area 0 + network 10.0.2.94 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r12.conf b/configs/cisco_ios/t2-r12.conf new file mode 100644 index 0000000..1b0fa74 --- /dev/null +++ b/configs/cisco_ios/t2-r12.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r12 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.19 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r12 GigabitEthernet0 <--> GigabitEthernet35 s1-r1" + ip address 10.0.0.23 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r12 GigabitEthernet1 <--> GigabitEthernet35 s1-r2" + ip address 10.0.0.55 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r12 GigabitEthernet2 <--> GigabitEthernet35 s1-r3" + ip address 10.0.0.87 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r12 GigabitEthernet3 <--> GigabitEthernet35 s1-r4" + ip address 10.0.0.119 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r12 GigabitEthernet4 <--> GigabitEthernet35 s1-r5" + ip address 10.0.0.151 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r12 GigabitEthernet5 <--> GigabitEthernet35 s1-r6" + ip address 10.0.0.183 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r12 GigabitEthernet6 <--> GigabitEthernet35 s1-r7" + ip address 10.0.0.215 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r12 GigabitEthernet7 <--> GigabitEthernet35 s1-r8" + ip address 10.0.0.247 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r12 GigabitEthernet24 <--> GigabitEthernet11 t1-r1" + ip address 10.0.2.96 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r12 GigabitEthernet25 <--> GigabitEthernet11 t1-r2" + ip address 10.0.2.98 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r12 GigabitEthernet26 <--> GigabitEthernet11 t1-r3" + ip address 10.0.2.100 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r12 GigabitEthernet27 <--> GigabitEthernet11 t1-r4" + ip address 10.0.2.102 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r12 GigabitEthernet28 <--> GigabitEthernet11 t1-r5" + ip address 10.0.2.104 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r12 GigabitEthernet29 <--> GigabitEthernet11 t1-r6" + ip address 10.0.2.106 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r12 GigabitEthernet30 <--> GigabitEthernet11 t1-r7" + ip address 10.0.2.108 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r12 GigabitEthernet31 <--> GigabitEthernet11 t1-r8" + ip address 10.0.2.110 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r12 GigabitEthernet32 <--> GigabitEthernet11 t1-r9" + ip address 10.0.2.112 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r12 GigabitEthernet33 <--> GigabitEthernet11 t1-r10" + ip address 10.0.2.114 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r12 GigabitEthernet34 <--> GigabitEthernet11 t1-r11" + ip address 10.0.2.116 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r12 GigabitEthernet35 <--> GigabitEthernet11 t1-r12" + ip address 10.0.2.118 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r12 GigabitEthernet36 <--> GigabitEthernet11 t1-r13" + ip address 10.0.2.120 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r12 GigabitEthernet37 <--> GigabitEthernet11 t1-r14" + ip address 10.0.2.122 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r12 GigabitEthernet38 <--> GigabitEthernet11 t1-r15" + ip address 10.0.2.124 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r12 GigabitEthernet39 <--> GigabitEthernet11 t1-r16" + ip address 10.0.2.126 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.19 + passive-interface Loopback0 + network 10.0.0.22 0.0.0.1 area 0 + network 10.0.0.54 0.0.0.1 area 0 + network 10.0.0.86 0.0.0.1 area 0 + network 10.0.0.118 0.0.0.1 area 0 + network 10.0.0.150 0.0.0.1 area 0 + network 10.0.0.182 0.0.0.1 area 0 + network 10.0.0.214 0.0.0.1 area 0 + network 10.0.0.246 0.0.0.1 area 0 + network 10.0.2.96 0.0.0.1 area 0 + network 10.0.2.98 0.0.0.1 area 0 + network 10.0.2.100 0.0.0.1 area 0 + network 10.0.2.102 0.0.0.1 area 0 + network 10.0.2.104 0.0.0.1 area 0 + network 10.0.2.106 0.0.0.1 area 0 + network 10.0.2.108 0.0.0.1 area 0 + network 10.0.2.110 0.0.0.1 area 0 + network 10.0.2.112 0.0.0.1 area 0 + network 10.0.2.114 0.0.0.1 area 0 + network 10.0.2.116 0.0.0.1 area 0 + network 10.0.2.118 0.0.0.1 area 0 + network 10.0.2.120 0.0.0.1 area 0 + network 10.0.2.122 0.0.0.1 area 0 + network 10.0.2.124 0.0.0.1 area 0 + network 10.0.2.126 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r13.conf b/configs/cisco_ios/t2-r13.conf new file mode 100644 index 0000000..5fadb63 --- /dev/null +++ b/configs/cisco_ios/t2-r13.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r13 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.20 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r13 GigabitEthernet0 <--> GigabitEthernet36 s1-r1" + ip address 10.0.0.25 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r13 GigabitEthernet1 <--> GigabitEthernet36 s1-r2" + ip address 10.0.0.57 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r13 GigabitEthernet2 <--> GigabitEthernet36 s1-r3" + ip address 10.0.0.89 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r13 GigabitEthernet3 <--> GigabitEthernet36 s1-r4" + ip address 10.0.0.121 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r13 GigabitEthernet4 <--> GigabitEthernet36 s1-r5" + ip address 10.0.0.153 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r13 GigabitEthernet5 <--> GigabitEthernet36 s1-r6" + ip address 10.0.0.185 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r13 GigabitEthernet6 <--> GigabitEthernet36 s1-r7" + ip address 10.0.0.217 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r13 GigabitEthernet7 <--> GigabitEthernet36 s1-r8" + ip address 10.0.0.249 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r13 GigabitEthernet24 <--> GigabitEthernet12 t1-r1" + ip address 10.0.2.128 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r13 GigabitEthernet25 <--> GigabitEthernet12 t1-r2" + ip address 10.0.2.130 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r13 GigabitEthernet26 <--> GigabitEthernet12 t1-r3" + ip address 10.0.2.132 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r13 GigabitEthernet27 <--> GigabitEthernet12 t1-r4" + ip address 10.0.2.134 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r13 GigabitEthernet28 <--> GigabitEthernet12 t1-r5" + ip address 10.0.2.136 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r13 GigabitEthernet29 <--> GigabitEthernet12 t1-r6" + ip address 10.0.2.138 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r13 GigabitEthernet30 <--> GigabitEthernet12 t1-r7" + ip address 10.0.2.140 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r13 GigabitEthernet31 <--> GigabitEthernet12 t1-r8" + ip address 10.0.2.142 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r13 GigabitEthernet32 <--> GigabitEthernet12 t1-r9" + ip address 10.0.2.144 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r13 GigabitEthernet33 <--> GigabitEthernet12 t1-r10" + ip address 10.0.2.146 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r13 GigabitEthernet34 <--> GigabitEthernet12 t1-r11" + ip address 10.0.2.148 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r13 GigabitEthernet35 <--> GigabitEthernet12 t1-r12" + ip address 10.0.2.150 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r13 GigabitEthernet36 <--> GigabitEthernet12 t1-r13" + ip address 10.0.2.152 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r13 GigabitEthernet37 <--> GigabitEthernet12 t1-r14" + ip address 10.0.2.154 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r13 GigabitEthernet38 <--> GigabitEthernet12 t1-r15" + ip address 10.0.2.156 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r13 GigabitEthernet39 <--> GigabitEthernet12 t1-r16" + ip address 10.0.2.158 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.20 + passive-interface Loopback0 + network 10.0.0.24 0.0.0.1 area 0 + network 10.0.0.56 0.0.0.1 area 0 + network 10.0.0.88 0.0.0.1 area 0 + network 10.0.0.120 0.0.0.1 area 0 + network 10.0.0.152 0.0.0.1 area 0 + network 10.0.0.184 0.0.0.1 area 0 + network 10.0.0.216 0.0.0.1 area 0 + network 10.0.0.248 0.0.0.1 area 0 + network 10.0.2.128 0.0.0.1 area 0 + network 10.0.2.130 0.0.0.1 area 0 + network 10.0.2.132 0.0.0.1 area 0 + network 10.0.2.134 0.0.0.1 area 0 + network 10.0.2.136 0.0.0.1 area 0 + network 10.0.2.138 0.0.0.1 area 0 + network 10.0.2.140 0.0.0.1 area 0 + network 10.0.2.142 0.0.0.1 area 0 + network 10.0.2.144 0.0.0.1 area 0 + network 10.0.2.146 0.0.0.1 area 0 + network 10.0.2.148 0.0.0.1 area 0 + network 10.0.2.150 0.0.0.1 area 0 + network 10.0.2.152 0.0.0.1 area 0 + network 10.0.2.154 0.0.0.1 area 0 + network 10.0.2.156 0.0.0.1 area 0 + network 10.0.2.158 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r14.conf b/configs/cisco_ios/t2-r14.conf new file mode 100644 index 0000000..70e38f5 --- /dev/null +++ b/configs/cisco_ios/t2-r14.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r14 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.21 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r14 GigabitEthernet0 <--> GigabitEthernet37 s1-r1" + ip address 10.0.0.27 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r14 GigabitEthernet1 <--> GigabitEthernet37 s1-r2" + ip address 10.0.0.59 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r14 GigabitEthernet2 <--> GigabitEthernet37 s1-r3" + ip address 10.0.0.91 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r14 GigabitEthernet3 <--> GigabitEthernet37 s1-r4" + ip address 10.0.0.123 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r14 GigabitEthernet4 <--> GigabitEthernet37 s1-r5" + ip address 10.0.0.155 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r14 GigabitEthernet5 <--> GigabitEthernet37 s1-r6" + ip address 10.0.0.187 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r14 GigabitEthernet6 <--> GigabitEthernet37 s1-r7" + ip address 10.0.0.219 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r14 GigabitEthernet7 <--> GigabitEthernet37 s1-r8" + ip address 10.0.0.251 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r14 GigabitEthernet24 <--> GigabitEthernet13 t1-r1" + ip address 10.0.2.160 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r14 GigabitEthernet25 <--> GigabitEthernet13 t1-r2" + ip address 10.0.2.162 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r14 GigabitEthernet26 <--> GigabitEthernet13 t1-r3" + ip address 10.0.2.164 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r14 GigabitEthernet27 <--> GigabitEthernet13 t1-r4" + ip address 10.0.2.166 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r14 GigabitEthernet28 <--> GigabitEthernet13 t1-r5" + ip address 10.0.2.168 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r14 GigabitEthernet29 <--> GigabitEthernet13 t1-r6" + ip address 10.0.2.170 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r14 GigabitEthernet30 <--> GigabitEthernet13 t1-r7" + ip address 10.0.2.172 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r14 GigabitEthernet31 <--> GigabitEthernet13 t1-r8" + ip address 10.0.2.174 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r14 GigabitEthernet32 <--> GigabitEthernet13 t1-r9" + ip address 10.0.2.176 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r14 GigabitEthernet33 <--> GigabitEthernet13 t1-r10" + ip address 10.0.2.178 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r14 GigabitEthernet34 <--> GigabitEthernet13 t1-r11" + ip address 10.0.2.180 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r14 GigabitEthernet35 <--> GigabitEthernet13 t1-r12" + ip address 10.0.2.182 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r14 GigabitEthernet36 <--> GigabitEthernet13 t1-r13" + ip address 10.0.2.184 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r14 GigabitEthernet37 <--> GigabitEthernet13 t1-r14" + ip address 10.0.2.186 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r14 GigabitEthernet38 <--> GigabitEthernet13 t1-r15" + ip address 10.0.2.188 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r14 GigabitEthernet39 <--> GigabitEthernet13 t1-r16" + ip address 10.0.2.190 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.21 + passive-interface Loopback0 + network 10.0.0.26 0.0.0.1 area 0 + network 10.0.0.58 0.0.0.1 area 0 + network 10.0.0.90 0.0.0.1 area 0 + network 10.0.0.122 0.0.0.1 area 0 + network 10.0.0.154 0.0.0.1 area 0 + network 10.0.0.186 0.0.0.1 area 0 + network 10.0.0.218 0.0.0.1 area 0 + network 10.0.0.250 0.0.0.1 area 0 + network 10.0.2.160 0.0.0.1 area 0 + network 10.0.2.162 0.0.0.1 area 0 + network 10.0.2.164 0.0.0.1 area 0 + network 10.0.2.166 0.0.0.1 area 0 + network 10.0.2.168 0.0.0.1 area 0 + network 10.0.2.170 0.0.0.1 area 0 + network 10.0.2.172 0.0.0.1 area 0 + network 10.0.2.174 0.0.0.1 area 0 + network 10.0.2.176 0.0.0.1 area 0 + network 10.0.2.178 0.0.0.1 area 0 + network 10.0.2.180 0.0.0.1 area 0 + network 10.0.2.182 0.0.0.1 area 0 + network 10.0.2.184 0.0.0.1 area 0 + network 10.0.2.186 0.0.0.1 area 0 + network 10.0.2.188 0.0.0.1 area 0 + network 10.0.2.190 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r15.conf b/configs/cisco_ios/t2-r15.conf new file mode 100644 index 0000000..1e39611 --- /dev/null +++ b/configs/cisco_ios/t2-r15.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r15 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.22 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r15 GigabitEthernet0 <--> GigabitEthernet38 s1-r1" + ip address 10.0.0.29 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r15 GigabitEthernet1 <--> GigabitEthernet38 s1-r2" + ip address 10.0.0.61 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r15 GigabitEthernet2 <--> GigabitEthernet38 s1-r3" + ip address 10.0.0.93 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r15 GigabitEthernet3 <--> GigabitEthernet38 s1-r4" + ip address 10.0.0.125 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r15 GigabitEthernet4 <--> GigabitEthernet38 s1-r5" + ip address 10.0.0.157 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r15 GigabitEthernet5 <--> GigabitEthernet38 s1-r6" + ip address 10.0.0.189 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r15 GigabitEthernet6 <--> GigabitEthernet38 s1-r7" + ip address 10.0.0.221 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r15 GigabitEthernet7 <--> GigabitEthernet38 s1-r8" + ip address 10.0.0.253 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r15 GigabitEthernet24 <--> GigabitEthernet14 t1-r1" + ip address 10.0.2.192 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r15 GigabitEthernet25 <--> GigabitEthernet14 t1-r2" + ip address 10.0.2.194 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r15 GigabitEthernet26 <--> GigabitEthernet14 t1-r3" + ip address 10.0.2.196 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r15 GigabitEthernet27 <--> GigabitEthernet14 t1-r4" + ip address 10.0.2.198 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r15 GigabitEthernet28 <--> GigabitEthernet14 t1-r5" + ip address 10.0.2.200 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r15 GigabitEthernet29 <--> GigabitEthernet14 t1-r6" + ip address 10.0.2.202 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r15 GigabitEthernet30 <--> GigabitEthernet14 t1-r7" + ip address 10.0.2.204 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r15 GigabitEthernet31 <--> GigabitEthernet14 t1-r8" + ip address 10.0.2.206 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r15 GigabitEthernet32 <--> GigabitEthernet14 t1-r9" + ip address 10.0.2.208 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r15 GigabitEthernet33 <--> GigabitEthernet14 t1-r10" + ip address 10.0.2.210 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r15 GigabitEthernet34 <--> GigabitEthernet14 t1-r11" + ip address 10.0.2.212 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r15 GigabitEthernet35 <--> GigabitEthernet14 t1-r12" + ip address 10.0.2.214 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r15 GigabitEthernet36 <--> GigabitEthernet14 t1-r13" + ip address 10.0.2.216 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r15 GigabitEthernet37 <--> GigabitEthernet14 t1-r14" + ip address 10.0.2.218 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r15 GigabitEthernet38 <--> GigabitEthernet14 t1-r15" + ip address 10.0.2.220 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r15 GigabitEthernet39 <--> GigabitEthernet14 t1-r16" + ip address 10.0.2.222 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.22 + passive-interface Loopback0 + network 10.0.0.28 0.0.0.1 area 0 + network 10.0.0.60 0.0.0.1 area 0 + network 10.0.0.92 0.0.0.1 area 0 + network 10.0.0.124 0.0.0.1 area 0 + network 10.0.0.156 0.0.0.1 area 0 + network 10.0.0.188 0.0.0.1 area 0 + network 10.0.0.220 0.0.0.1 area 0 + network 10.0.0.252 0.0.0.1 area 0 + network 10.0.2.192 0.0.0.1 area 0 + network 10.0.2.194 0.0.0.1 area 0 + network 10.0.2.196 0.0.0.1 area 0 + network 10.0.2.198 0.0.0.1 area 0 + network 10.0.2.200 0.0.0.1 area 0 + network 10.0.2.202 0.0.0.1 area 0 + network 10.0.2.204 0.0.0.1 area 0 + network 10.0.2.206 0.0.0.1 area 0 + network 10.0.2.208 0.0.0.1 area 0 + network 10.0.2.210 0.0.0.1 area 0 + network 10.0.2.212 0.0.0.1 area 0 + network 10.0.2.214 0.0.0.1 area 0 + network 10.0.2.216 0.0.0.1 area 0 + network 10.0.2.218 0.0.0.1 area 0 + network 10.0.2.220 0.0.0.1 area 0 + network 10.0.2.222 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r16.conf b/configs/cisco_ios/t2-r16.conf new file mode 100644 index 0000000..162e858 --- /dev/null +++ b/configs/cisco_ios/t2-r16.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r16 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.23 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r16 GigabitEthernet0 <--> GigabitEthernet39 s1-r1" + ip address 10.0.0.31 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r16 GigabitEthernet1 <--> GigabitEthernet39 s1-r2" + ip address 10.0.0.63 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r16 GigabitEthernet2 <--> GigabitEthernet39 s1-r3" + ip address 10.0.0.95 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r16 GigabitEthernet3 <--> GigabitEthernet39 s1-r4" + ip address 10.0.0.127 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r16 GigabitEthernet4 <--> GigabitEthernet39 s1-r5" + ip address 10.0.0.159 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r16 GigabitEthernet5 <--> GigabitEthernet39 s1-r6" + ip address 10.0.0.191 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r16 GigabitEthernet6 <--> GigabitEthernet39 s1-r7" + ip address 10.0.0.223 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r16 GigabitEthernet7 <--> GigabitEthernet39 s1-r8" + ip address 10.0.0.255 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r16 GigabitEthernet24 <--> GigabitEthernet15 t1-r1" + ip address 10.0.2.224 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r16 GigabitEthernet25 <--> GigabitEthernet15 t1-r2" + ip address 10.0.2.226 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r16 GigabitEthernet26 <--> GigabitEthernet15 t1-r3" + ip address 10.0.2.228 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r16 GigabitEthernet27 <--> GigabitEthernet15 t1-r4" + ip address 10.0.2.230 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r16 GigabitEthernet28 <--> GigabitEthernet15 t1-r5" + ip address 10.0.2.232 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r16 GigabitEthernet29 <--> GigabitEthernet15 t1-r6" + ip address 10.0.2.234 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r16 GigabitEthernet30 <--> GigabitEthernet15 t1-r7" + ip address 10.0.2.236 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r16 GigabitEthernet31 <--> GigabitEthernet15 t1-r8" + ip address 10.0.2.238 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r16 GigabitEthernet32 <--> GigabitEthernet15 t1-r9" + ip address 10.0.2.240 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r16 GigabitEthernet33 <--> GigabitEthernet15 t1-r10" + ip address 10.0.2.242 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r16 GigabitEthernet34 <--> GigabitEthernet15 t1-r11" + ip address 10.0.2.244 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r16 GigabitEthernet35 <--> GigabitEthernet15 t1-r12" + ip address 10.0.2.246 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r16 GigabitEthernet36 <--> GigabitEthernet15 t1-r13" + ip address 10.0.2.248 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r16 GigabitEthernet37 <--> GigabitEthernet15 t1-r14" + ip address 10.0.2.250 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r16 GigabitEthernet38 <--> GigabitEthernet15 t1-r15" + ip address 10.0.2.252 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r16 GigabitEthernet39 <--> GigabitEthernet15 t1-r16" + ip address 10.0.2.254 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.23 + passive-interface Loopback0 + network 10.0.0.30 0.0.0.1 area 0 + network 10.0.0.62 0.0.0.1 area 0 + network 10.0.0.94 0.0.0.1 area 0 + network 10.0.0.126 0.0.0.1 area 0 + network 10.0.0.158 0.0.0.1 area 0 + network 10.0.0.190 0.0.0.1 area 0 + network 10.0.0.222 0.0.0.1 area 0 + network 10.0.0.254 0.0.0.1 area 0 + network 10.0.2.224 0.0.0.1 area 0 + network 10.0.2.226 0.0.0.1 area 0 + network 10.0.2.228 0.0.0.1 area 0 + network 10.0.2.230 0.0.0.1 area 0 + network 10.0.2.232 0.0.0.1 area 0 + network 10.0.2.234 0.0.0.1 area 0 + network 10.0.2.236 0.0.0.1 area 0 + network 10.0.2.238 0.0.0.1 area 0 + network 10.0.2.240 0.0.0.1 area 0 + network 10.0.2.242 0.0.0.1 area 0 + network 10.0.2.244 0.0.0.1 area 0 + network 10.0.2.246 0.0.0.1 area 0 + network 10.0.2.248 0.0.0.1 area 0 + network 10.0.2.250 0.0.0.1 area 0 + network 10.0.2.252 0.0.0.1 area 0 + network 10.0.2.254 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r2.conf b/configs/cisco_ios/t2-r2.conf new file mode 100644 index 0000000..3dfa79b --- /dev/null +++ b/configs/cisco_ios/t2-r2.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r2 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.9 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r2 GigabitEthernet0 <--> GigabitEthernet25 s1-r1" + ip address 10.0.0.3 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r2 GigabitEthernet1 <--> GigabitEthernet25 s1-r2" + ip address 10.0.0.35 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r2 GigabitEthernet2 <--> GigabitEthernet25 s1-r3" + ip address 10.0.0.67 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r2 GigabitEthernet3 <--> GigabitEthernet25 s1-r4" + ip address 10.0.0.99 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r2 GigabitEthernet4 <--> GigabitEthernet25 s1-r5" + ip address 10.0.0.131 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r2 GigabitEthernet5 <--> GigabitEthernet25 s1-r6" + ip address 10.0.0.163 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r2 GigabitEthernet6 <--> GigabitEthernet25 s1-r7" + ip address 10.0.0.195 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r2 GigabitEthernet7 <--> GigabitEthernet25 s1-r8" + ip address 10.0.0.227 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r2 GigabitEthernet24 <--> GigabitEthernet1 t1-r1" + ip address 10.0.1.32 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r2 GigabitEthernet25 <--> GigabitEthernet1 t1-r2" + ip address 10.0.1.34 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r2 GigabitEthernet26 <--> GigabitEthernet1 t1-r3" + ip address 10.0.1.36 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r2 GigabitEthernet27 <--> GigabitEthernet1 t1-r4" + ip address 10.0.1.38 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r2 GigabitEthernet28 <--> GigabitEthernet1 t1-r5" + ip address 10.0.1.40 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r2 GigabitEthernet29 <--> GigabitEthernet1 t1-r6" + ip address 10.0.1.42 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r2 GigabitEthernet30 <--> GigabitEthernet1 t1-r7" + ip address 10.0.1.44 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r2 GigabitEthernet31 <--> GigabitEthernet1 t1-r8" + ip address 10.0.1.46 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r2 GigabitEthernet32 <--> GigabitEthernet1 t1-r9" + ip address 10.0.1.48 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r2 GigabitEthernet33 <--> GigabitEthernet1 t1-r10" + ip address 10.0.1.50 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r2 GigabitEthernet34 <--> GigabitEthernet1 t1-r11" + ip address 10.0.1.52 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r2 GigabitEthernet35 <--> GigabitEthernet1 t1-r12" + ip address 10.0.1.54 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r2 GigabitEthernet36 <--> GigabitEthernet1 t1-r13" + ip address 10.0.1.56 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r2 GigabitEthernet37 <--> GigabitEthernet1 t1-r14" + ip address 10.0.1.58 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r2 GigabitEthernet38 <--> GigabitEthernet1 t1-r15" + ip address 10.0.1.60 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r2 GigabitEthernet39 <--> GigabitEthernet1 t1-r16" + ip address 10.0.1.62 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.9 + passive-interface Loopback0 + network 10.0.0.2 0.0.0.1 area 0 + network 10.0.0.34 0.0.0.1 area 0 + network 10.0.0.66 0.0.0.1 area 0 + network 10.0.0.98 0.0.0.1 area 0 + network 10.0.0.130 0.0.0.1 area 0 + network 10.0.0.162 0.0.0.1 area 0 + network 10.0.0.194 0.0.0.1 area 0 + network 10.0.0.226 0.0.0.1 area 0 + network 10.0.1.32 0.0.0.1 area 0 + network 10.0.1.34 0.0.0.1 area 0 + network 10.0.1.36 0.0.0.1 area 0 + network 10.0.1.38 0.0.0.1 area 0 + network 10.0.1.40 0.0.0.1 area 0 + network 10.0.1.42 0.0.0.1 area 0 + network 10.0.1.44 0.0.0.1 area 0 + network 10.0.1.46 0.0.0.1 area 0 + network 10.0.1.48 0.0.0.1 area 0 + network 10.0.1.50 0.0.0.1 area 0 + network 10.0.1.52 0.0.0.1 area 0 + network 10.0.1.54 0.0.0.1 area 0 + network 10.0.1.56 0.0.0.1 area 0 + network 10.0.1.58 0.0.0.1 area 0 + network 10.0.1.60 0.0.0.1 area 0 + network 10.0.1.62 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r3.conf b/configs/cisco_ios/t2-r3.conf new file mode 100644 index 0000000..90064b1 --- /dev/null +++ b/configs/cisco_ios/t2-r3.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r3 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.10 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r3 GigabitEthernet0 <--> GigabitEthernet26 s1-r1" + ip address 10.0.0.5 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r3 GigabitEthernet1 <--> GigabitEthernet26 s1-r2" + ip address 10.0.0.37 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r3 GigabitEthernet2 <--> GigabitEthernet26 s1-r3" + ip address 10.0.0.69 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r3 GigabitEthernet3 <--> GigabitEthernet26 s1-r4" + ip address 10.0.0.101 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r3 GigabitEthernet4 <--> GigabitEthernet26 s1-r5" + ip address 10.0.0.133 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r3 GigabitEthernet5 <--> GigabitEthernet26 s1-r6" + ip address 10.0.0.165 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r3 GigabitEthernet6 <--> GigabitEthernet26 s1-r7" + ip address 10.0.0.197 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r3 GigabitEthernet7 <--> GigabitEthernet26 s1-r8" + ip address 10.0.0.229 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r3 GigabitEthernet24 <--> GigabitEthernet2 t1-r1" + ip address 10.0.1.64 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r3 GigabitEthernet25 <--> GigabitEthernet2 t1-r2" + ip address 10.0.1.66 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r3 GigabitEthernet26 <--> GigabitEthernet2 t1-r3" + ip address 10.0.1.68 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r3 GigabitEthernet27 <--> GigabitEthernet2 t1-r4" + ip address 10.0.1.70 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r3 GigabitEthernet28 <--> GigabitEthernet2 t1-r5" + ip address 10.0.1.72 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r3 GigabitEthernet29 <--> GigabitEthernet2 t1-r6" + ip address 10.0.1.74 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r3 GigabitEthernet30 <--> GigabitEthernet2 t1-r7" + ip address 10.0.1.76 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r3 GigabitEthernet31 <--> GigabitEthernet2 t1-r8" + ip address 10.0.1.78 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r3 GigabitEthernet32 <--> GigabitEthernet2 t1-r9" + ip address 10.0.1.80 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r3 GigabitEthernet33 <--> GigabitEthernet2 t1-r10" + ip address 10.0.1.82 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r3 GigabitEthernet34 <--> GigabitEthernet2 t1-r11" + ip address 10.0.1.84 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r3 GigabitEthernet35 <--> GigabitEthernet2 t1-r12" + ip address 10.0.1.86 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r3 GigabitEthernet36 <--> GigabitEthernet2 t1-r13" + ip address 10.0.1.88 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r3 GigabitEthernet37 <--> GigabitEthernet2 t1-r14" + ip address 10.0.1.90 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r3 GigabitEthernet38 <--> GigabitEthernet2 t1-r15" + ip address 10.0.1.92 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r3 GigabitEthernet39 <--> GigabitEthernet2 t1-r16" + ip address 10.0.1.94 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.10 + passive-interface Loopback0 + network 10.0.0.4 0.0.0.1 area 0 + network 10.0.0.36 0.0.0.1 area 0 + network 10.0.0.68 0.0.0.1 area 0 + network 10.0.0.100 0.0.0.1 area 0 + network 10.0.0.132 0.0.0.1 area 0 + network 10.0.0.164 0.0.0.1 area 0 + network 10.0.0.196 0.0.0.1 area 0 + network 10.0.0.228 0.0.0.1 area 0 + network 10.0.1.64 0.0.0.1 area 0 + network 10.0.1.66 0.0.0.1 area 0 + network 10.0.1.68 0.0.0.1 area 0 + network 10.0.1.70 0.0.0.1 area 0 + network 10.0.1.72 0.0.0.1 area 0 + network 10.0.1.74 0.0.0.1 area 0 + network 10.0.1.76 0.0.0.1 area 0 + network 10.0.1.78 0.0.0.1 area 0 + network 10.0.1.80 0.0.0.1 area 0 + network 10.0.1.82 0.0.0.1 area 0 + network 10.0.1.84 0.0.0.1 area 0 + network 10.0.1.86 0.0.0.1 area 0 + network 10.0.1.88 0.0.0.1 area 0 + network 10.0.1.90 0.0.0.1 area 0 + network 10.0.1.92 0.0.0.1 area 0 + network 10.0.1.94 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r4.conf b/configs/cisco_ios/t2-r4.conf new file mode 100644 index 0000000..67ea8f4 --- /dev/null +++ b/configs/cisco_ios/t2-r4.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r4 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.11 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r4 GigabitEthernet0 <--> GigabitEthernet27 s1-r1" + ip address 10.0.0.7 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r4 GigabitEthernet1 <--> GigabitEthernet27 s1-r2" + ip address 10.0.0.39 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r4 GigabitEthernet2 <--> GigabitEthernet27 s1-r3" + ip address 10.0.0.71 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r4 GigabitEthernet3 <--> GigabitEthernet27 s1-r4" + ip address 10.0.0.103 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r4 GigabitEthernet4 <--> GigabitEthernet27 s1-r5" + ip address 10.0.0.135 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r4 GigabitEthernet5 <--> GigabitEthernet27 s1-r6" + ip address 10.0.0.167 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r4 GigabitEthernet6 <--> GigabitEthernet27 s1-r7" + ip address 10.0.0.199 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r4 GigabitEthernet7 <--> GigabitEthernet27 s1-r8" + ip address 10.0.0.231 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r4 GigabitEthernet24 <--> GigabitEthernet3 t1-r1" + ip address 10.0.1.96 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r4 GigabitEthernet25 <--> GigabitEthernet3 t1-r2" + ip address 10.0.1.98 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r4 GigabitEthernet26 <--> GigabitEthernet3 t1-r3" + ip address 10.0.1.100 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r4 GigabitEthernet27 <--> GigabitEthernet3 t1-r4" + ip address 10.0.1.102 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r4 GigabitEthernet28 <--> GigabitEthernet3 t1-r5" + ip address 10.0.1.104 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r4 GigabitEthernet29 <--> GigabitEthernet3 t1-r6" + ip address 10.0.1.106 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r4 GigabitEthernet30 <--> GigabitEthernet3 t1-r7" + ip address 10.0.1.108 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r4 GigabitEthernet31 <--> GigabitEthernet3 t1-r8" + ip address 10.0.1.110 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r4 GigabitEthernet32 <--> GigabitEthernet3 t1-r9" + ip address 10.0.1.112 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r4 GigabitEthernet33 <--> GigabitEthernet3 t1-r10" + ip address 10.0.1.114 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r4 GigabitEthernet34 <--> GigabitEthernet3 t1-r11" + ip address 10.0.1.116 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r4 GigabitEthernet35 <--> GigabitEthernet3 t1-r12" + ip address 10.0.1.118 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r4 GigabitEthernet36 <--> GigabitEthernet3 t1-r13" + ip address 10.0.1.120 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r4 GigabitEthernet37 <--> GigabitEthernet3 t1-r14" + ip address 10.0.1.122 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r4 GigabitEthernet38 <--> GigabitEthernet3 t1-r15" + ip address 10.0.1.124 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r4 GigabitEthernet39 <--> GigabitEthernet3 t1-r16" + ip address 10.0.1.126 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.11 + passive-interface Loopback0 + network 10.0.0.6 0.0.0.1 area 0 + network 10.0.0.38 0.0.0.1 area 0 + network 10.0.0.70 0.0.0.1 area 0 + network 10.0.0.102 0.0.0.1 area 0 + network 10.0.0.134 0.0.0.1 area 0 + network 10.0.0.166 0.0.0.1 area 0 + network 10.0.0.198 0.0.0.1 area 0 + network 10.0.0.230 0.0.0.1 area 0 + network 10.0.1.96 0.0.0.1 area 0 + network 10.0.1.98 0.0.0.1 area 0 + network 10.0.1.100 0.0.0.1 area 0 + network 10.0.1.102 0.0.0.1 area 0 + network 10.0.1.104 0.0.0.1 area 0 + network 10.0.1.106 0.0.0.1 area 0 + network 10.0.1.108 0.0.0.1 area 0 + network 10.0.1.110 0.0.0.1 area 0 + network 10.0.1.112 0.0.0.1 area 0 + network 10.0.1.114 0.0.0.1 area 0 + network 10.0.1.116 0.0.0.1 area 0 + network 10.0.1.118 0.0.0.1 area 0 + network 10.0.1.120 0.0.0.1 area 0 + network 10.0.1.122 0.0.0.1 area 0 + network 10.0.1.124 0.0.0.1 area 0 + network 10.0.1.126 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r5.conf b/configs/cisco_ios/t2-r5.conf new file mode 100644 index 0000000..bfc7c6d --- /dev/null +++ b/configs/cisco_ios/t2-r5.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r5 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.12 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r5 GigabitEthernet0 <--> GigabitEthernet28 s1-r1" + ip address 10.0.0.9 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r5 GigabitEthernet1 <--> GigabitEthernet28 s1-r2" + ip address 10.0.0.41 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r5 GigabitEthernet2 <--> GigabitEthernet28 s1-r3" + ip address 10.0.0.73 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r5 GigabitEthernet3 <--> GigabitEthernet28 s1-r4" + ip address 10.0.0.105 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r5 GigabitEthernet4 <--> GigabitEthernet28 s1-r5" + ip address 10.0.0.137 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r5 GigabitEthernet5 <--> GigabitEthernet28 s1-r6" + ip address 10.0.0.169 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r5 GigabitEthernet6 <--> GigabitEthernet28 s1-r7" + ip address 10.0.0.201 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r5 GigabitEthernet7 <--> GigabitEthernet28 s1-r8" + ip address 10.0.0.233 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r5 GigabitEthernet24 <--> GigabitEthernet4 t1-r1" + ip address 10.0.1.128 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r5 GigabitEthernet25 <--> GigabitEthernet4 t1-r2" + ip address 10.0.1.130 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r5 GigabitEthernet26 <--> GigabitEthernet4 t1-r3" + ip address 10.0.1.132 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r5 GigabitEthernet27 <--> GigabitEthernet4 t1-r4" + ip address 10.0.1.134 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r5 GigabitEthernet28 <--> GigabitEthernet4 t1-r5" + ip address 10.0.1.136 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r5 GigabitEthernet29 <--> GigabitEthernet4 t1-r6" + ip address 10.0.1.138 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r5 GigabitEthernet30 <--> GigabitEthernet4 t1-r7" + ip address 10.0.1.140 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r5 GigabitEthernet31 <--> GigabitEthernet4 t1-r8" + ip address 10.0.1.142 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r5 GigabitEthernet32 <--> GigabitEthernet4 t1-r9" + ip address 10.0.1.144 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r5 GigabitEthernet33 <--> GigabitEthernet4 t1-r10" + ip address 10.0.1.146 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r5 GigabitEthernet34 <--> GigabitEthernet4 t1-r11" + ip address 10.0.1.148 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r5 GigabitEthernet35 <--> GigabitEthernet4 t1-r12" + ip address 10.0.1.150 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r5 GigabitEthernet36 <--> GigabitEthernet4 t1-r13" + ip address 10.0.1.152 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r5 GigabitEthernet37 <--> GigabitEthernet4 t1-r14" + ip address 10.0.1.154 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r5 GigabitEthernet38 <--> GigabitEthernet4 t1-r15" + ip address 10.0.1.156 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r5 GigabitEthernet39 <--> GigabitEthernet4 t1-r16" + ip address 10.0.1.158 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.12 + passive-interface Loopback0 + network 10.0.0.8 0.0.0.1 area 0 + network 10.0.0.40 0.0.0.1 area 0 + network 10.0.0.72 0.0.0.1 area 0 + network 10.0.0.104 0.0.0.1 area 0 + network 10.0.0.136 0.0.0.1 area 0 + network 10.0.0.168 0.0.0.1 area 0 + network 10.0.0.200 0.0.0.1 area 0 + network 10.0.0.232 0.0.0.1 area 0 + network 10.0.1.128 0.0.0.1 area 0 + network 10.0.1.130 0.0.0.1 area 0 + network 10.0.1.132 0.0.0.1 area 0 + network 10.0.1.134 0.0.0.1 area 0 + network 10.0.1.136 0.0.0.1 area 0 + network 10.0.1.138 0.0.0.1 area 0 + network 10.0.1.140 0.0.0.1 area 0 + network 10.0.1.142 0.0.0.1 area 0 + network 10.0.1.144 0.0.0.1 area 0 + network 10.0.1.146 0.0.0.1 area 0 + network 10.0.1.148 0.0.0.1 area 0 + network 10.0.1.150 0.0.0.1 area 0 + network 10.0.1.152 0.0.0.1 area 0 + network 10.0.1.154 0.0.0.1 area 0 + network 10.0.1.156 0.0.0.1 area 0 + network 10.0.1.158 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r6.conf b/configs/cisco_ios/t2-r6.conf new file mode 100644 index 0000000..585c3ad --- /dev/null +++ b/configs/cisco_ios/t2-r6.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r6 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.13 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r6 GigabitEthernet0 <--> GigabitEthernet29 s1-r1" + ip address 10.0.0.11 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r6 GigabitEthernet1 <--> GigabitEthernet29 s1-r2" + ip address 10.0.0.43 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r6 GigabitEthernet2 <--> GigabitEthernet29 s1-r3" + ip address 10.0.0.75 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r6 GigabitEthernet3 <--> GigabitEthernet29 s1-r4" + ip address 10.0.0.107 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r6 GigabitEthernet4 <--> GigabitEthernet29 s1-r5" + ip address 10.0.0.139 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r6 GigabitEthernet5 <--> GigabitEthernet29 s1-r6" + ip address 10.0.0.171 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r6 GigabitEthernet6 <--> GigabitEthernet29 s1-r7" + ip address 10.0.0.203 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r6 GigabitEthernet7 <--> GigabitEthernet29 s1-r8" + ip address 10.0.0.235 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r6 GigabitEthernet24 <--> GigabitEthernet5 t1-r1" + ip address 10.0.1.160 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r6 GigabitEthernet25 <--> GigabitEthernet5 t1-r2" + ip address 10.0.1.162 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r6 GigabitEthernet26 <--> GigabitEthernet5 t1-r3" + ip address 10.0.1.164 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r6 GigabitEthernet27 <--> GigabitEthernet5 t1-r4" + ip address 10.0.1.166 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r6 GigabitEthernet28 <--> GigabitEthernet5 t1-r5" + ip address 10.0.1.168 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r6 GigabitEthernet29 <--> GigabitEthernet5 t1-r6" + ip address 10.0.1.170 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r6 GigabitEthernet30 <--> GigabitEthernet5 t1-r7" + ip address 10.0.1.172 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r6 GigabitEthernet31 <--> GigabitEthernet5 t1-r8" + ip address 10.0.1.174 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r6 GigabitEthernet32 <--> GigabitEthernet5 t1-r9" + ip address 10.0.1.176 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r6 GigabitEthernet33 <--> GigabitEthernet5 t1-r10" + ip address 10.0.1.178 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r6 GigabitEthernet34 <--> GigabitEthernet5 t1-r11" + ip address 10.0.1.180 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r6 GigabitEthernet35 <--> GigabitEthernet5 t1-r12" + ip address 10.0.1.182 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r6 GigabitEthernet36 <--> GigabitEthernet5 t1-r13" + ip address 10.0.1.184 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r6 GigabitEthernet37 <--> GigabitEthernet5 t1-r14" + ip address 10.0.1.186 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r6 GigabitEthernet38 <--> GigabitEthernet5 t1-r15" + ip address 10.0.1.188 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r6 GigabitEthernet39 <--> GigabitEthernet5 t1-r16" + ip address 10.0.1.190 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.13 + passive-interface Loopback0 + network 10.0.0.10 0.0.0.1 area 0 + network 10.0.0.42 0.0.0.1 area 0 + network 10.0.0.74 0.0.0.1 area 0 + network 10.0.0.106 0.0.0.1 area 0 + network 10.0.0.138 0.0.0.1 area 0 + network 10.0.0.170 0.0.0.1 area 0 + network 10.0.0.202 0.0.0.1 area 0 + network 10.0.0.234 0.0.0.1 area 0 + network 10.0.1.160 0.0.0.1 area 0 + network 10.0.1.162 0.0.0.1 area 0 + network 10.0.1.164 0.0.0.1 area 0 + network 10.0.1.166 0.0.0.1 area 0 + network 10.0.1.168 0.0.0.1 area 0 + network 10.0.1.170 0.0.0.1 area 0 + network 10.0.1.172 0.0.0.1 area 0 + network 10.0.1.174 0.0.0.1 area 0 + network 10.0.1.176 0.0.0.1 area 0 + network 10.0.1.178 0.0.0.1 area 0 + network 10.0.1.180 0.0.0.1 area 0 + network 10.0.1.182 0.0.0.1 area 0 + network 10.0.1.184 0.0.0.1 area 0 + network 10.0.1.186 0.0.0.1 area 0 + network 10.0.1.188 0.0.0.1 area 0 + network 10.0.1.190 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r7.conf b/configs/cisco_ios/t2-r7.conf new file mode 100644 index 0000000..8ad6c72 --- /dev/null +++ b/configs/cisco_ios/t2-r7.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r7 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.14 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r7 GigabitEthernet0 <--> GigabitEthernet30 s1-r1" + ip address 10.0.0.13 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r7 GigabitEthernet1 <--> GigabitEthernet30 s1-r2" + ip address 10.0.0.45 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r7 GigabitEthernet2 <--> GigabitEthernet30 s1-r3" + ip address 10.0.0.77 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r7 GigabitEthernet3 <--> GigabitEthernet30 s1-r4" + ip address 10.0.0.109 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r7 GigabitEthernet4 <--> GigabitEthernet30 s1-r5" + ip address 10.0.0.141 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r7 GigabitEthernet5 <--> GigabitEthernet30 s1-r6" + ip address 10.0.0.173 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r7 GigabitEthernet6 <--> GigabitEthernet30 s1-r7" + ip address 10.0.0.205 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r7 GigabitEthernet7 <--> GigabitEthernet30 s1-r8" + ip address 10.0.0.237 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r7 GigabitEthernet24 <--> GigabitEthernet6 t1-r1" + ip address 10.0.1.192 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r7 GigabitEthernet25 <--> GigabitEthernet6 t1-r2" + ip address 10.0.1.194 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r7 GigabitEthernet26 <--> GigabitEthernet6 t1-r3" + ip address 10.0.1.196 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r7 GigabitEthernet27 <--> GigabitEthernet6 t1-r4" + ip address 10.0.1.198 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r7 GigabitEthernet28 <--> GigabitEthernet6 t1-r5" + ip address 10.0.1.200 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r7 GigabitEthernet29 <--> GigabitEthernet6 t1-r6" + ip address 10.0.1.202 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r7 GigabitEthernet30 <--> GigabitEthernet6 t1-r7" + ip address 10.0.1.204 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r7 GigabitEthernet31 <--> GigabitEthernet6 t1-r8" + ip address 10.0.1.206 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r7 GigabitEthernet32 <--> GigabitEthernet6 t1-r9" + ip address 10.0.1.208 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r7 GigabitEthernet33 <--> GigabitEthernet6 t1-r10" + ip address 10.0.1.210 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r7 GigabitEthernet34 <--> GigabitEthernet6 t1-r11" + ip address 10.0.1.212 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r7 GigabitEthernet35 <--> GigabitEthernet6 t1-r12" + ip address 10.0.1.214 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r7 GigabitEthernet36 <--> GigabitEthernet6 t1-r13" + ip address 10.0.1.216 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r7 GigabitEthernet37 <--> GigabitEthernet6 t1-r14" + ip address 10.0.1.218 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r7 GigabitEthernet38 <--> GigabitEthernet6 t1-r15" + ip address 10.0.1.220 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r7 GigabitEthernet39 <--> GigabitEthernet6 t1-r16" + ip address 10.0.1.222 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.14 + passive-interface Loopback0 + network 10.0.0.12 0.0.0.1 area 0 + network 10.0.0.44 0.0.0.1 area 0 + network 10.0.0.76 0.0.0.1 area 0 + network 10.0.0.108 0.0.0.1 area 0 + network 10.0.0.140 0.0.0.1 area 0 + network 10.0.0.172 0.0.0.1 area 0 + network 10.0.0.204 0.0.0.1 area 0 + network 10.0.0.236 0.0.0.1 area 0 + network 10.0.1.192 0.0.0.1 area 0 + network 10.0.1.194 0.0.0.1 area 0 + network 10.0.1.196 0.0.0.1 area 0 + network 10.0.1.198 0.0.0.1 area 0 + network 10.0.1.200 0.0.0.1 area 0 + network 10.0.1.202 0.0.0.1 area 0 + network 10.0.1.204 0.0.0.1 area 0 + network 10.0.1.206 0.0.0.1 area 0 + network 10.0.1.208 0.0.0.1 area 0 + network 10.0.1.210 0.0.0.1 area 0 + network 10.0.1.212 0.0.0.1 area 0 + network 10.0.1.214 0.0.0.1 area 0 + network 10.0.1.216 0.0.0.1 area 0 + network 10.0.1.218 0.0.0.1 area 0 + network 10.0.1.220 0.0.0.1 area 0 + network 10.0.1.222 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r8.conf b/configs/cisco_ios/t2-r8.conf new file mode 100644 index 0000000..44bf3e4 --- /dev/null +++ b/configs/cisco_ios/t2-r8.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r8 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.15 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r8 GigabitEthernet0 <--> GigabitEthernet31 s1-r1" + ip address 10.0.0.15 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r8 GigabitEthernet1 <--> GigabitEthernet31 s1-r2" + ip address 10.0.0.47 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r8 GigabitEthernet2 <--> GigabitEthernet31 s1-r3" + ip address 10.0.0.79 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r8 GigabitEthernet3 <--> GigabitEthernet31 s1-r4" + ip address 10.0.0.111 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r8 GigabitEthernet4 <--> GigabitEthernet31 s1-r5" + ip address 10.0.0.143 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r8 GigabitEthernet5 <--> GigabitEthernet31 s1-r6" + ip address 10.0.0.175 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r8 GigabitEthernet6 <--> GigabitEthernet31 s1-r7" + ip address 10.0.0.207 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r8 GigabitEthernet7 <--> GigabitEthernet31 s1-r8" + ip address 10.0.0.239 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r8 GigabitEthernet24 <--> GigabitEthernet7 t1-r1" + ip address 10.0.1.224 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r8 GigabitEthernet25 <--> GigabitEthernet7 t1-r2" + ip address 10.0.1.226 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r8 GigabitEthernet26 <--> GigabitEthernet7 t1-r3" + ip address 10.0.1.228 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r8 GigabitEthernet27 <--> GigabitEthernet7 t1-r4" + ip address 10.0.1.230 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r8 GigabitEthernet28 <--> GigabitEthernet7 t1-r5" + ip address 10.0.1.232 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r8 GigabitEthernet29 <--> GigabitEthernet7 t1-r6" + ip address 10.0.1.234 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r8 GigabitEthernet30 <--> GigabitEthernet7 t1-r7" + ip address 10.0.1.236 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r8 GigabitEthernet31 <--> GigabitEthernet7 t1-r8" + ip address 10.0.1.238 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r8 GigabitEthernet32 <--> GigabitEthernet7 t1-r9" + ip address 10.0.1.240 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r8 GigabitEthernet33 <--> GigabitEthernet7 t1-r10" + ip address 10.0.1.242 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r8 GigabitEthernet34 <--> GigabitEthernet7 t1-r11" + ip address 10.0.1.244 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r8 GigabitEthernet35 <--> GigabitEthernet7 t1-r12" + ip address 10.0.1.246 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r8 GigabitEthernet36 <--> GigabitEthernet7 t1-r13" + ip address 10.0.1.248 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r8 GigabitEthernet37 <--> GigabitEthernet7 t1-r14" + ip address 10.0.1.250 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r8 GigabitEthernet38 <--> GigabitEthernet7 t1-r15" + ip address 10.0.1.252 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r8 GigabitEthernet39 <--> GigabitEthernet7 t1-r16" + ip address 10.0.1.254 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.15 + passive-interface Loopback0 + network 10.0.0.14 0.0.0.1 area 0 + network 10.0.0.46 0.0.0.1 area 0 + network 10.0.0.78 0.0.0.1 area 0 + network 10.0.0.110 0.0.0.1 area 0 + network 10.0.0.142 0.0.0.1 area 0 + network 10.0.0.174 0.0.0.1 area 0 + network 10.0.0.206 0.0.0.1 area 0 + network 10.0.0.238 0.0.0.1 area 0 + network 10.0.1.224 0.0.0.1 area 0 + network 10.0.1.226 0.0.0.1 area 0 + network 10.0.1.228 0.0.0.1 area 0 + network 10.0.1.230 0.0.0.1 area 0 + network 10.0.1.232 0.0.0.1 area 0 + network 10.0.1.234 0.0.0.1 area 0 + network 10.0.1.236 0.0.0.1 area 0 + network 10.0.1.238 0.0.0.1 area 0 + network 10.0.1.240 0.0.0.1 area 0 + network 10.0.1.242 0.0.0.1 area 0 + network 10.0.1.244 0.0.0.1 area 0 + network 10.0.1.246 0.0.0.1 area 0 + network 10.0.1.248 0.0.0.1 area 0 + network 10.0.1.250 0.0.0.1 area 0 + network 10.0.1.252 0.0.0.1 area 0 + network 10.0.1.254 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/cisco_ios/t2-r9.conf b/configs/cisco_ios/t2-r9.conf new file mode 100644 index 0000000..8610f3a --- /dev/null +++ b/configs/cisco_ios/t2-r9.conf @@ -0,0 +1,263 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname t2-r9 +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address 172.16.0.16 255.255.255.255 +! +interface GigabitEthernet0 description "t2-r9 GigabitEthernet0 <--> GigabitEthernet32 s1-r1" + ip address 10.0.0.17 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet1 description "t2-r9 GigabitEthernet1 <--> GigabitEthernet32 s1-r2" + ip address 10.0.0.49 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet2 description "t2-r9 GigabitEthernet2 <--> GigabitEthernet32 s1-r3" + ip address 10.0.0.81 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet3 description "t2-r9 GigabitEthernet3 <--> GigabitEthernet32 s1-r4" + ip address 10.0.0.113 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet4 description "t2-r9 GigabitEthernet4 <--> GigabitEthernet32 s1-r5" + ip address 10.0.0.145 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet5 description "t2-r9 GigabitEthernet5 <--> GigabitEthernet32 s1-r6" + ip address 10.0.0.177 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet6 description "t2-r9 GigabitEthernet6 <--> GigabitEthernet32 s1-r7" + ip address 10.0.0.209 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet7 description "t2-r9 GigabitEthernet7 <--> GigabitEthernet32 s1-r8" + ip address 10.0.0.241 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet24 description "t2-r9 GigabitEthernet24 <--> GigabitEthernet8 t1-r1" + ip address 10.0.2.0 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet25 description "t2-r9 GigabitEthernet25 <--> GigabitEthernet8 t1-r2" + ip address 10.0.2.2 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet26 description "t2-r9 GigabitEthernet26 <--> GigabitEthernet8 t1-r3" + ip address 10.0.2.4 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet27 description "t2-r9 GigabitEthernet27 <--> GigabitEthernet8 t1-r4" + ip address 10.0.2.6 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet28 description "t2-r9 GigabitEthernet28 <--> GigabitEthernet8 t1-r5" + ip address 10.0.2.8 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet29 description "t2-r9 GigabitEthernet29 <--> GigabitEthernet8 t1-r6" + ip address 10.0.2.10 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet30 description "t2-r9 GigabitEthernet30 <--> GigabitEthernet8 t1-r7" + ip address 10.0.2.12 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet31 description "t2-r9 GigabitEthernet31 <--> GigabitEthernet8 t1-r8" + ip address 10.0.2.14 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet32 description "t2-r9 GigabitEthernet32 <--> GigabitEthernet8 t1-r9" + ip address 10.0.2.16 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet33 description "t2-r9 GigabitEthernet33 <--> GigabitEthernet8 t1-r10" + ip address 10.0.2.18 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet34 description "t2-r9 GigabitEthernet34 <--> GigabitEthernet8 t1-r11" + ip address 10.0.2.20 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet35 description "t2-r9 GigabitEthernet35 <--> GigabitEthernet8 t1-r12" + ip address 10.0.2.22 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet36 description "t2-r9 GigabitEthernet36 <--> GigabitEthernet8 t1-r13" + ip address 10.0.2.24 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet37 description "t2-r9 GigabitEthernet37 <--> GigabitEthernet8 t1-r14" + ip address 10.0.2.26 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet38 description "t2-r9 GigabitEthernet38 <--> GigabitEthernet8 t1-r15" + ip address 10.0.2.28 255.255.255.254 + duplex auto + speed auto + no shut +! +interface GigabitEthernet39 description "t2-r9 GigabitEthernet39 <--> GigabitEthernet8 t1-r16" + ip address 10.0.2.30 255.255.255.254 + duplex auto + speed auto + no shut +! +interface Vlan1 + no ip address +! +router ospf 1 + router-id 172.16.0.16 + passive-interface Loopback0 + network 10.0.0.16 0.0.0.1 area 0 + network 10.0.0.48 0.0.0.1 area 0 + network 10.0.0.80 0.0.0.1 area 0 + network 10.0.0.112 0.0.0.1 area 0 + network 10.0.0.144 0.0.0.1 area 0 + network 10.0.0.176 0.0.0.1 area 0 + network 10.0.0.208 0.0.0.1 area 0 + network 10.0.0.240 0.0.0.1 area 0 + network 10.0.2.0 0.0.0.1 area 0 + network 10.0.2.2 0.0.0.1 area 0 + network 10.0.2.4 0.0.0.1 area 0 + network 10.0.2.6 0.0.0.1 area 0 + network 10.0.2.8 0.0.0.1 area 0 + network 10.0.2.10 0.0.0.1 area 0 + network 10.0.2.12 0.0.0.1 area 0 + network 10.0.2.14 0.0.0.1 area 0 + network 10.0.2.16 0.0.0.1 area 0 + network 10.0.2.18 0.0.0.1 area 0 + network 10.0.2.20 0.0.0.1 area 0 + network 10.0.2.22 0.0.0.1 area 0 + network 10.0.2.24 0.0.0.1 area 0 + network 10.0.2.26 0.0.0.1 area 0 + network 10.0.2.28 0.0.0.1 area 0 + network 10.0.2.30 0.0.0.1 area 0 +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/configs/junos/s1-r1.conf b/configs/junos/s1-r1.conf new file mode 100644 index 0000000..12c1cd0 --- /dev/null +++ b/configs/junos/s1-r1.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r1; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.0/32; + } + } + } + ge-0/0/24 { + description "s1-r1 ge-0/0/24 <--> ge-0/0/0 t2-r1"; + unit 0 { + family inet { + address 10.0.0.0/31; + } + } + } + ge-0/0/25 { + description "s1-r1 ge-0/0/25 <--> ge-0/0/0 t2-r2"; + unit 0 { + family inet { + address 10.0.0.2/31; + } + } + } + ge-0/0/26 { + description "s1-r1 ge-0/0/26 <--> ge-0/0/0 t2-r3"; + unit 0 { + family inet { + address 10.0.0.4/31; + } + } + } + ge-0/0/27 { + description "s1-r1 ge-0/0/27 <--> ge-0/0/0 t2-r4"; + unit 0 { + family inet { + address 10.0.0.6/31; + } + } + } + ge-0/0/28 { + description "s1-r1 ge-0/0/28 <--> ge-0/0/0 t2-r5"; + unit 0 { + family inet { + address 10.0.0.8/31; + } + } + } + ge-0/0/29 { + description "s1-r1 ge-0/0/29 <--> ge-0/0/0 t2-r6"; + unit 0 { + family inet { + address 10.0.0.10/31; + } + } + } + ge-0/0/30 { + description "s1-r1 ge-0/0/30 <--> ge-0/0/0 t2-r7"; + unit 0 { + family inet { + address 10.0.0.12/31; + } + } + } + ge-0/0/31 { + description "s1-r1 ge-0/0/31 <--> ge-0/0/0 t2-r8"; + unit 0 { + family inet { + address 10.0.0.14/31; + } + } + } + ge-0/0/32 { + description "s1-r1 ge-0/0/32 <--> ge-0/0/0 t2-r9"; + unit 0 { + family inet { + address 10.0.0.16/31; + } + } + } + ge-0/0/33 { + description "s1-r1 ge-0/0/33 <--> ge-0/0/0 t2-r10"; + unit 0 { + family inet { + address 10.0.0.18/31; + } + } + } + ge-0/0/34 { + description "s1-r1 ge-0/0/34 <--> ge-0/0/0 t2-r11"; + unit 0 { + family inet { + address 10.0.0.20/31; + } + } + } + ge-0/0/35 { + description "s1-r1 ge-0/0/35 <--> ge-0/0/0 t2-r12"; + unit 0 { + family inet { + address 10.0.0.22/31; + } + } + } + ge-0/0/36 { + description "s1-r1 ge-0/0/36 <--> ge-0/0/0 t2-r13"; + unit 0 { + family inet { + address 10.0.0.24/31; + } + } + } + ge-0/0/37 { + description "s1-r1 ge-0/0/37 <--> ge-0/0/0 t2-r14"; + unit 0 { + family inet { + address 10.0.0.26/31; + } + } + } + ge-0/0/38 { + description "s1-r1 ge-0/0/38 <--> ge-0/0/0 t2-r15"; + unit 0 { + family inet { + address 10.0.0.28/31; + } + } + } + ge-0/0/39 { + description "s1-r1 ge-0/0/39 <--> ge-0/0/0 t2-r16"; + unit 0 { + family inet { + address 10.0.0.30/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r2.conf b/configs/junos/s1-r2.conf new file mode 100644 index 0000000..b01a264 --- /dev/null +++ b/configs/junos/s1-r2.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r2; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.1/32; + } + } + } + ge-0/0/24 { + description "s1-r2 ge-0/0/24 <--> ge-0/0/1 t2-r1"; + unit 0 { + family inet { + address 10.0.0.32/31; + } + } + } + ge-0/0/25 { + description "s1-r2 ge-0/0/25 <--> ge-0/0/1 t2-r2"; + unit 0 { + family inet { + address 10.0.0.34/31; + } + } + } + ge-0/0/26 { + description "s1-r2 ge-0/0/26 <--> ge-0/0/1 t2-r3"; + unit 0 { + family inet { + address 10.0.0.36/31; + } + } + } + ge-0/0/27 { + description "s1-r2 ge-0/0/27 <--> ge-0/0/1 t2-r4"; + unit 0 { + family inet { + address 10.0.0.38/31; + } + } + } + ge-0/0/28 { + description "s1-r2 ge-0/0/28 <--> ge-0/0/1 t2-r5"; + unit 0 { + family inet { + address 10.0.0.40/31; + } + } + } + ge-0/0/29 { + description "s1-r2 ge-0/0/29 <--> ge-0/0/1 t2-r6"; + unit 0 { + family inet { + address 10.0.0.42/31; + } + } + } + ge-0/0/30 { + description "s1-r2 ge-0/0/30 <--> ge-0/0/1 t2-r7"; + unit 0 { + family inet { + address 10.0.0.44/31; + } + } + } + ge-0/0/31 { + description "s1-r2 ge-0/0/31 <--> ge-0/0/1 t2-r8"; + unit 0 { + family inet { + address 10.0.0.46/31; + } + } + } + ge-0/0/32 { + description "s1-r2 ge-0/0/32 <--> ge-0/0/1 t2-r9"; + unit 0 { + family inet { + address 10.0.0.48/31; + } + } + } + ge-0/0/33 { + description "s1-r2 ge-0/0/33 <--> ge-0/0/1 t2-r10"; + unit 0 { + family inet { + address 10.0.0.50/31; + } + } + } + ge-0/0/34 { + description "s1-r2 ge-0/0/34 <--> ge-0/0/1 t2-r11"; + unit 0 { + family inet { + address 10.0.0.52/31; + } + } + } + ge-0/0/35 { + description "s1-r2 ge-0/0/35 <--> ge-0/0/1 t2-r12"; + unit 0 { + family inet { + address 10.0.0.54/31; + } + } + } + ge-0/0/36 { + description "s1-r2 ge-0/0/36 <--> ge-0/0/1 t2-r13"; + unit 0 { + family inet { + address 10.0.0.56/31; + } + } + } + ge-0/0/37 { + description "s1-r2 ge-0/0/37 <--> ge-0/0/1 t2-r14"; + unit 0 { + family inet { + address 10.0.0.58/31; + } + } + } + ge-0/0/38 { + description "s1-r2 ge-0/0/38 <--> ge-0/0/1 t2-r15"; + unit 0 { + family inet { + address 10.0.0.60/31; + } + } + } + ge-0/0/39 { + description "s1-r2 ge-0/0/39 <--> ge-0/0/1 t2-r16"; + unit 0 { + family inet { + address 10.0.0.62/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r3.conf b/configs/junos/s1-r3.conf new file mode 100644 index 0000000..09ec99a --- /dev/null +++ b/configs/junos/s1-r3.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r3; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.2/32; + } + } + } + ge-0/0/24 { + description "s1-r3 ge-0/0/24 <--> ge-0/0/2 t2-r1"; + unit 0 { + family inet { + address 10.0.0.64/31; + } + } + } + ge-0/0/25 { + description "s1-r3 ge-0/0/25 <--> ge-0/0/2 t2-r2"; + unit 0 { + family inet { + address 10.0.0.66/31; + } + } + } + ge-0/0/26 { + description "s1-r3 ge-0/0/26 <--> ge-0/0/2 t2-r3"; + unit 0 { + family inet { + address 10.0.0.68/31; + } + } + } + ge-0/0/27 { + description "s1-r3 ge-0/0/27 <--> ge-0/0/2 t2-r4"; + unit 0 { + family inet { + address 10.0.0.70/31; + } + } + } + ge-0/0/28 { + description "s1-r3 ge-0/0/28 <--> ge-0/0/2 t2-r5"; + unit 0 { + family inet { + address 10.0.0.72/31; + } + } + } + ge-0/0/29 { + description "s1-r3 ge-0/0/29 <--> ge-0/0/2 t2-r6"; + unit 0 { + family inet { + address 10.0.0.74/31; + } + } + } + ge-0/0/30 { + description "s1-r3 ge-0/0/30 <--> ge-0/0/2 t2-r7"; + unit 0 { + family inet { + address 10.0.0.76/31; + } + } + } + ge-0/0/31 { + description "s1-r3 ge-0/0/31 <--> ge-0/0/2 t2-r8"; + unit 0 { + family inet { + address 10.0.0.78/31; + } + } + } + ge-0/0/32 { + description "s1-r3 ge-0/0/32 <--> ge-0/0/2 t2-r9"; + unit 0 { + family inet { + address 10.0.0.80/31; + } + } + } + ge-0/0/33 { + description "s1-r3 ge-0/0/33 <--> ge-0/0/2 t2-r10"; + unit 0 { + family inet { + address 10.0.0.82/31; + } + } + } + ge-0/0/34 { + description "s1-r3 ge-0/0/34 <--> ge-0/0/2 t2-r11"; + unit 0 { + family inet { + address 10.0.0.84/31; + } + } + } + ge-0/0/35 { + description "s1-r3 ge-0/0/35 <--> ge-0/0/2 t2-r12"; + unit 0 { + family inet { + address 10.0.0.86/31; + } + } + } + ge-0/0/36 { + description "s1-r3 ge-0/0/36 <--> ge-0/0/2 t2-r13"; + unit 0 { + family inet { + address 10.0.0.88/31; + } + } + } + ge-0/0/37 { + description "s1-r3 ge-0/0/37 <--> ge-0/0/2 t2-r14"; + unit 0 { + family inet { + address 10.0.0.90/31; + } + } + } + ge-0/0/38 { + description "s1-r3 ge-0/0/38 <--> ge-0/0/2 t2-r15"; + unit 0 { + family inet { + address 10.0.0.92/31; + } + } + } + ge-0/0/39 { + description "s1-r3 ge-0/0/39 <--> ge-0/0/2 t2-r16"; + unit 0 { + family inet { + address 10.0.0.94/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r4.conf b/configs/junos/s1-r4.conf new file mode 100644 index 0000000..cfcb165 --- /dev/null +++ b/configs/junos/s1-r4.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r4; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.3/32; + } + } + } + ge-0/0/24 { + description "s1-r4 ge-0/0/24 <--> ge-0/0/3 t2-r1"; + unit 0 { + family inet { + address 10.0.0.96/31; + } + } + } + ge-0/0/25 { + description "s1-r4 ge-0/0/25 <--> ge-0/0/3 t2-r2"; + unit 0 { + family inet { + address 10.0.0.98/31; + } + } + } + ge-0/0/26 { + description "s1-r4 ge-0/0/26 <--> ge-0/0/3 t2-r3"; + unit 0 { + family inet { + address 10.0.0.100/31; + } + } + } + ge-0/0/27 { + description "s1-r4 ge-0/0/27 <--> ge-0/0/3 t2-r4"; + unit 0 { + family inet { + address 10.0.0.102/31; + } + } + } + ge-0/0/28 { + description "s1-r4 ge-0/0/28 <--> ge-0/0/3 t2-r5"; + unit 0 { + family inet { + address 10.0.0.104/31; + } + } + } + ge-0/0/29 { + description "s1-r4 ge-0/0/29 <--> ge-0/0/3 t2-r6"; + unit 0 { + family inet { + address 10.0.0.106/31; + } + } + } + ge-0/0/30 { + description "s1-r4 ge-0/0/30 <--> ge-0/0/3 t2-r7"; + unit 0 { + family inet { + address 10.0.0.108/31; + } + } + } + ge-0/0/31 { + description "s1-r4 ge-0/0/31 <--> ge-0/0/3 t2-r8"; + unit 0 { + family inet { + address 10.0.0.110/31; + } + } + } + ge-0/0/32 { + description "s1-r4 ge-0/0/32 <--> ge-0/0/3 t2-r9"; + unit 0 { + family inet { + address 10.0.0.112/31; + } + } + } + ge-0/0/33 { + description "s1-r4 ge-0/0/33 <--> ge-0/0/3 t2-r10"; + unit 0 { + family inet { + address 10.0.0.114/31; + } + } + } + ge-0/0/34 { + description "s1-r4 ge-0/0/34 <--> ge-0/0/3 t2-r11"; + unit 0 { + family inet { + address 10.0.0.116/31; + } + } + } + ge-0/0/35 { + description "s1-r4 ge-0/0/35 <--> ge-0/0/3 t2-r12"; + unit 0 { + family inet { + address 10.0.0.118/31; + } + } + } + ge-0/0/36 { + description "s1-r4 ge-0/0/36 <--> ge-0/0/3 t2-r13"; + unit 0 { + family inet { + address 10.0.0.120/31; + } + } + } + ge-0/0/37 { + description "s1-r4 ge-0/0/37 <--> ge-0/0/3 t2-r14"; + unit 0 { + family inet { + address 10.0.0.122/31; + } + } + } + ge-0/0/38 { + description "s1-r4 ge-0/0/38 <--> ge-0/0/3 t2-r15"; + unit 0 { + family inet { + address 10.0.0.124/31; + } + } + } + ge-0/0/39 { + description "s1-r4 ge-0/0/39 <--> ge-0/0/3 t2-r16"; + unit 0 { + family inet { + address 10.0.0.126/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r5.conf b/configs/junos/s1-r5.conf new file mode 100644 index 0000000..a0fe900 --- /dev/null +++ b/configs/junos/s1-r5.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r5; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.4/32; + } + } + } + ge-0/0/24 { + description "s1-r5 ge-0/0/24 <--> ge-0/0/4 t2-r1"; + unit 0 { + family inet { + address 10.0.0.128/31; + } + } + } + ge-0/0/25 { + description "s1-r5 ge-0/0/25 <--> ge-0/0/4 t2-r2"; + unit 0 { + family inet { + address 10.0.0.130/31; + } + } + } + ge-0/0/26 { + description "s1-r5 ge-0/0/26 <--> ge-0/0/4 t2-r3"; + unit 0 { + family inet { + address 10.0.0.132/31; + } + } + } + ge-0/0/27 { + description "s1-r5 ge-0/0/27 <--> ge-0/0/4 t2-r4"; + unit 0 { + family inet { + address 10.0.0.134/31; + } + } + } + ge-0/0/28 { + description "s1-r5 ge-0/0/28 <--> ge-0/0/4 t2-r5"; + unit 0 { + family inet { + address 10.0.0.136/31; + } + } + } + ge-0/0/29 { + description "s1-r5 ge-0/0/29 <--> ge-0/0/4 t2-r6"; + unit 0 { + family inet { + address 10.0.0.138/31; + } + } + } + ge-0/0/30 { + description "s1-r5 ge-0/0/30 <--> ge-0/0/4 t2-r7"; + unit 0 { + family inet { + address 10.0.0.140/31; + } + } + } + ge-0/0/31 { + description "s1-r5 ge-0/0/31 <--> ge-0/0/4 t2-r8"; + unit 0 { + family inet { + address 10.0.0.142/31; + } + } + } + ge-0/0/32 { + description "s1-r5 ge-0/0/32 <--> ge-0/0/4 t2-r9"; + unit 0 { + family inet { + address 10.0.0.144/31; + } + } + } + ge-0/0/33 { + description "s1-r5 ge-0/0/33 <--> ge-0/0/4 t2-r10"; + unit 0 { + family inet { + address 10.0.0.146/31; + } + } + } + ge-0/0/34 { + description "s1-r5 ge-0/0/34 <--> ge-0/0/4 t2-r11"; + unit 0 { + family inet { + address 10.0.0.148/31; + } + } + } + ge-0/0/35 { + description "s1-r5 ge-0/0/35 <--> ge-0/0/4 t2-r12"; + unit 0 { + family inet { + address 10.0.0.150/31; + } + } + } + ge-0/0/36 { + description "s1-r5 ge-0/0/36 <--> ge-0/0/4 t2-r13"; + unit 0 { + family inet { + address 10.0.0.152/31; + } + } + } + ge-0/0/37 { + description "s1-r5 ge-0/0/37 <--> ge-0/0/4 t2-r14"; + unit 0 { + family inet { + address 10.0.0.154/31; + } + } + } + ge-0/0/38 { + description "s1-r5 ge-0/0/38 <--> ge-0/0/4 t2-r15"; + unit 0 { + family inet { + address 10.0.0.156/31; + } + } + } + ge-0/0/39 { + description "s1-r5 ge-0/0/39 <--> ge-0/0/4 t2-r16"; + unit 0 { + family inet { + address 10.0.0.158/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r6.conf b/configs/junos/s1-r6.conf new file mode 100644 index 0000000..09f298c --- /dev/null +++ b/configs/junos/s1-r6.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r6; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.5/32; + } + } + } + ge-0/0/24 { + description "s1-r6 ge-0/0/24 <--> ge-0/0/5 t2-r1"; + unit 0 { + family inet { + address 10.0.0.160/31; + } + } + } + ge-0/0/25 { + description "s1-r6 ge-0/0/25 <--> ge-0/0/5 t2-r2"; + unit 0 { + family inet { + address 10.0.0.162/31; + } + } + } + ge-0/0/26 { + description "s1-r6 ge-0/0/26 <--> ge-0/0/5 t2-r3"; + unit 0 { + family inet { + address 10.0.0.164/31; + } + } + } + ge-0/0/27 { + description "s1-r6 ge-0/0/27 <--> ge-0/0/5 t2-r4"; + unit 0 { + family inet { + address 10.0.0.166/31; + } + } + } + ge-0/0/28 { + description "s1-r6 ge-0/0/28 <--> ge-0/0/5 t2-r5"; + unit 0 { + family inet { + address 10.0.0.168/31; + } + } + } + ge-0/0/29 { + description "s1-r6 ge-0/0/29 <--> ge-0/0/5 t2-r6"; + unit 0 { + family inet { + address 10.0.0.170/31; + } + } + } + ge-0/0/30 { + description "s1-r6 ge-0/0/30 <--> ge-0/0/5 t2-r7"; + unit 0 { + family inet { + address 10.0.0.172/31; + } + } + } + ge-0/0/31 { + description "s1-r6 ge-0/0/31 <--> ge-0/0/5 t2-r8"; + unit 0 { + family inet { + address 10.0.0.174/31; + } + } + } + ge-0/0/32 { + description "s1-r6 ge-0/0/32 <--> ge-0/0/5 t2-r9"; + unit 0 { + family inet { + address 10.0.0.176/31; + } + } + } + ge-0/0/33 { + description "s1-r6 ge-0/0/33 <--> ge-0/0/5 t2-r10"; + unit 0 { + family inet { + address 10.0.0.178/31; + } + } + } + ge-0/0/34 { + description "s1-r6 ge-0/0/34 <--> ge-0/0/5 t2-r11"; + unit 0 { + family inet { + address 10.0.0.180/31; + } + } + } + ge-0/0/35 { + description "s1-r6 ge-0/0/35 <--> ge-0/0/5 t2-r12"; + unit 0 { + family inet { + address 10.0.0.182/31; + } + } + } + ge-0/0/36 { + description "s1-r6 ge-0/0/36 <--> ge-0/0/5 t2-r13"; + unit 0 { + family inet { + address 10.0.0.184/31; + } + } + } + ge-0/0/37 { + description "s1-r6 ge-0/0/37 <--> ge-0/0/5 t2-r14"; + unit 0 { + family inet { + address 10.0.0.186/31; + } + } + } + ge-0/0/38 { + description "s1-r6 ge-0/0/38 <--> ge-0/0/5 t2-r15"; + unit 0 { + family inet { + address 10.0.0.188/31; + } + } + } + ge-0/0/39 { + description "s1-r6 ge-0/0/39 <--> ge-0/0/5 t2-r16"; + unit 0 { + family inet { + address 10.0.0.190/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r7.conf b/configs/junos/s1-r7.conf new file mode 100644 index 0000000..b28391f --- /dev/null +++ b/configs/junos/s1-r7.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r7; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.6/32; + } + } + } + ge-0/0/24 { + description "s1-r7 ge-0/0/24 <--> ge-0/0/6 t2-r1"; + unit 0 { + family inet { + address 10.0.0.192/31; + } + } + } + ge-0/0/25 { + description "s1-r7 ge-0/0/25 <--> ge-0/0/6 t2-r2"; + unit 0 { + family inet { + address 10.0.0.194/31; + } + } + } + ge-0/0/26 { + description "s1-r7 ge-0/0/26 <--> ge-0/0/6 t2-r3"; + unit 0 { + family inet { + address 10.0.0.196/31; + } + } + } + ge-0/0/27 { + description "s1-r7 ge-0/0/27 <--> ge-0/0/6 t2-r4"; + unit 0 { + family inet { + address 10.0.0.198/31; + } + } + } + ge-0/0/28 { + description "s1-r7 ge-0/0/28 <--> ge-0/0/6 t2-r5"; + unit 0 { + family inet { + address 10.0.0.200/31; + } + } + } + ge-0/0/29 { + description "s1-r7 ge-0/0/29 <--> ge-0/0/6 t2-r6"; + unit 0 { + family inet { + address 10.0.0.202/31; + } + } + } + ge-0/0/30 { + description "s1-r7 ge-0/0/30 <--> ge-0/0/6 t2-r7"; + unit 0 { + family inet { + address 10.0.0.204/31; + } + } + } + ge-0/0/31 { + description "s1-r7 ge-0/0/31 <--> ge-0/0/6 t2-r8"; + unit 0 { + family inet { + address 10.0.0.206/31; + } + } + } + ge-0/0/32 { + description "s1-r7 ge-0/0/32 <--> ge-0/0/6 t2-r9"; + unit 0 { + family inet { + address 10.0.0.208/31; + } + } + } + ge-0/0/33 { + description "s1-r7 ge-0/0/33 <--> ge-0/0/6 t2-r10"; + unit 0 { + family inet { + address 10.0.0.210/31; + } + } + } + ge-0/0/34 { + description "s1-r7 ge-0/0/34 <--> ge-0/0/6 t2-r11"; + unit 0 { + family inet { + address 10.0.0.212/31; + } + } + } + ge-0/0/35 { + description "s1-r7 ge-0/0/35 <--> ge-0/0/6 t2-r12"; + unit 0 { + family inet { + address 10.0.0.214/31; + } + } + } + ge-0/0/36 { + description "s1-r7 ge-0/0/36 <--> ge-0/0/6 t2-r13"; + unit 0 { + family inet { + address 10.0.0.216/31; + } + } + } + ge-0/0/37 { + description "s1-r7 ge-0/0/37 <--> ge-0/0/6 t2-r14"; + unit 0 { + family inet { + address 10.0.0.218/31; + } + } + } + ge-0/0/38 { + description "s1-r7 ge-0/0/38 <--> ge-0/0/6 t2-r15"; + unit 0 { + family inet { + address 10.0.0.220/31; + } + } + } + ge-0/0/39 { + description "s1-r7 ge-0/0/39 <--> ge-0/0/6 t2-r16"; + unit 0 { + family inet { + address 10.0.0.222/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/s1-r8.conf b/configs/junos/s1-r8.conf new file mode 100644 index 0000000..049ec81 --- /dev/null +++ b/configs/junos/s1-r8.conf @@ -0,0 +1,186 @@ +system { + host-name s1-r8; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.7/32; + } + } + } + ge-0/0/24 { + description "s1-r8 ge-0/0/24 <--> ge-0/0/7 t2-r1"; + unit 0 { + family inet { + address 10.0.0.224/31; + } + } + } + ge-0/0/25 { + description "s1-r8 ge-0/0/25 <--> ge-0/0/7 t2-r2"; + unit 0 { + family inet { + address 10.0.0.226/31; + } + } + } + ge-0/0/26 { + description "s1-r8 ge-0/0/26 <--> ge-0/0/7 t2-r3"; + unit 0 { + family inet { + address 10.0.0.228/31; + } + } + } + ge-0/0/27 { + description "s1-r8 ge-0/0/27 <--> ge-0/0/7 t2-r4"; + unit 0 { + family inet { + address 10.0.0.230/31; + } + } + } + ge-0/0/28 { + description "s1-r8 ge-0/0/28 <--> ge-0/0/7 t2-r5"; + unit 0 { + family inet { + address 10.0.0.232/31; + } + } + } + ge-0/0/29 { + description "s1-r8 ge-0/0/29 <--> ge-0/0/7 t2-r6"; + unit 0 { + family inet { + address 10.0.0.234/31; + } + } + } + ge-0/0/30 { + description "s1-r8 ge-0/0/30 <--> ge-0/0/7 t2-r7"; + unit 0 { + family inet { + address 10.0.0.236/31; + } + } + } + ge-0/0/31 { + description "s1-r8 ge-0/0/31 <--> ge-0/0/7 t2-r8"; + unit 0 { + family inet { + address 10.0.0.238/31; + } + } + } + ge-0/0/32 { + description "s1-r8 ge-0/0/32 <--> ge-0/0/7 t2-r9"; + unit 0 { + family inet { + address 10.0.0.240/31; + } + } + } + ge-0/0/33 { + description "s1-r8 ge-0/0/33 <--> ge-0/0/7 t2-r10"; + unit 0 { + family inet { + address 10.0.0.242/31; + } + } + } + ge-0/0/34 { + description "s1-r8 ge-0/0/34 <--> ge-0/0/7 t2-r11"; + unit 0 { + family inet { + address 10.0.0.244/31; + } + } + } + ge-0/0/35 { + description "s1-r8 ge-0/0/35 <--> ge-0/0/7 t2-r12"; + unit 0 { + family inet { + address 10.0.0.246/31; + } + } + } + ge-0/0/36 { + description "s1-r8 ge-0/0/36 <--> ge-0/0/7 t2-r13"; + unit 0 { + family inet { + address 10.0.0.248/31; + } + } + } + ge-0/0/37 { + description "s1-r8 ge-0/0/37 <--> ge-0/0/7 t2-r14"; + unit 0 { + family inet { + address 10.0.0.250/31; + } + } + } + ge-0/0/38 { + description "s1-r8 ge-0/0/38 <--> ge-0/0/7 t2-r15"; + unit 0 { + family inet { + address 10.0.0.252/31; + } + } + } + ge-0/0/39 { + description "s1-r8 ge-0/0/39 <--> ge-0/0/7 t2-r16"; + unit 0 { + family inet { + address 10.0.0.254/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r1.conf b/configs/junos/t1-r1.conf new file mode 100644 index 0000000..48b3d65 --- /dev/null +++ b/configs/junos/t1-r1.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r1; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.24/32; + } + } + } + ge-0/0/0 { + description "t1-r1 ge-0/0/0 <--> ge-0/0/24 t2-r1"; + unit 0 { + family inet { + address 10.0.1.1/31; + } + } + } + ge-0/0/1 { + description "t1-r1 ge-0/0/1 <--> ge-0/0/24 t2-r2"; + unit 0 { + family inet { + address 10.0.1.33/31; + } + } + } + ge-0/0/2 { + description "t1-r1 ge-0/0/2 <--> ge-0/0/24 t2-r3"; + unit 0 { + family inet { + address 10.0.1.65/31; + } + } + } + ge-0/0/3 { + description "t1-r1 ge-0/0/3 <--> ge-0/0/24 t2-r4"; + unit 0 { + family inet { + address 10.0.1.97/31; + } + } + } + ge-0/0/4 { + description "t1-r1 ge-0/0/4 <--> ge-0/0/24 t2-r5"; + unit 0 { + family inet { + address 10.0.1.129/31; + } + } + } + ge-0/0/5 { + description "t1-r1 ge-0/0/5 <--> ge-0/0/24 t2-r6"; + unit 0 { + family inet { + address 10.0.1.161/31; + } + } + } + ge-0/0/6 { + description "t1-r1 ge-0/0/6 <--> ge-0/0/24 t2-r7"; + unit 0 { + family inet { + address 10.0.1.193/31; + } + } + } + ge-0/0/7 { + description "t1-r1 ge-0/0/7 <--> ge-0/0/24 t2-r8"; + unit 0 { + family inet { + address 10.0.1.225/31; + } + } + } + ge-0/0/8 { + description "t1-r1 ge-0/0/8 <--> ge-0/0/24 t2-r9"; + unit 0 { + family inet { + address 10.0.2.1/31; + } + } + } + ge-0/0/9 { + description "t1-r1 ge-0/0/9 <--> ge-0/0/24 t2-r10"; + unit 0 { + family inet { + address 10.0.2.33/31; + } + } + } + ge-0/0/10 { + description "t1-r1 ge-0/0/10 <--> ge-0/0/24 t2-r11"; + unit 0 { + family inet { + address 10.0.2.65/31; + } + } + } + ge-0/0/11 { + description "t1-r1 ge-0/0/11 <--> ge-0/0/24 t2-r12"; + unit 0 { + family inet { + address 10.0.2.97/31; + } + } + } + ge-0/0/12 { + description "t1-r1 ge-0/0/12 <--> ge-0/0/24 t2-r13"; + unit 0 { + family inet { + address 10.0.2.129/31; + } + } + } + ge-0/0/13 { + description "t1-r1 ge-0/0/13 <--> ge-0/0/24 t2-r14"; + unit 0 { + family inet { + address 10.0.2.161/31; + } + } + } + ge-0/0/14 { + description "t1-r1 ge-0/0/14 <--> ge-0/0/24 t2-r15"; + unit 0 { + family inet { + address 10.0.2.193/31; + } + } + } + ge-0/0/15 { + description "t1-r1 ge-0/0/15 <--> ge-0/0/24 t2-r16"; + unit 0 { + family inet { + address 10.0.2.225/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r10.conf b/configs/junos/t1-r10.conf new file mode 100644 index 0000000..44c6a6f --- /dev/null +++ b/configs/junos/t1-r10.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r10; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.33/32; + } + } + } + ge-0/0/0 { + description "t1-r10 ge-0/0/0 <--> ge-0/0/33 t2-r1"; + unit 0 { + family inet { + address 10.0.1.19/31; + } + } + } + ge-0/0/1 { + description "t1-r10 ge-0/0/1 <--> ge-0/0/33 t2-r2"; + unit 0 { + family inet { + address 10.0.1.51/31; + } + } + } + ge-0/0/2 { + description "t1-r10 ge-0/0/2 <--> ge-0/0/33 t2-r3"; + unit 0 { + family inet { + address 10.0.1.83/31; + } + } + } + ge-0/0/3 { + description "t1-r10 ge-0/0/3 <--> ge-0/0/33 t2-r4"; + unit 0 { + family inet { + address 10.0.1.115/31; + } + } + } + ge-0/0/4 { + description "t1-r10 ge-0/0/4 <--> ge-0/0/33 t2-r5"; + unit 0 { + family inet { + address 10.0.1.147/31; + } + } + } + ge-0/0/5 { + description "t1-r10 ge-0/0/5 <--> ge-0/0/33 t2-r6"; + unit 0 { + family inet { + address 10.0.1.179/31; + } + } + } + ge-0/0/6 { + description "t1-r10 ge-0/0/6 <--> ge-0/0/33 t2-r7"; + unit 0 { + family inet { + address 10.0.1.211/31; + } + } + } + ge-0/0/7 { + description "t1-r10 ge-0/0/7 <--> ge-0/0/33 t2-r8"; + unit 0 { + family inet { + address 10.0.1.243/31; + } + } + } + ge-0/0/8 { + description "t1-r10 ge-0/0/8 <--> ge-0/0/33 t2-r9"; + unit 0 { + family inet { + address 10.0.2.19/31; + } + } + } + ge-0/0/9 { + description "t1-r10 ge-0/0/9 <--> ge-0/0/33 t2-r10"; + unit 0 { + family inet { + address 10.0.2.51/31; + } + } + } + ge-0/0/10 { + description "t1-r10 ge-0/0/10 <--> ge-0/0/33 t2-r11"; + unit 0 { + family inet { + address 10.0.2.83/31; + } + } + } + ge-0/0/11 { + description "t1-r10 ge-0/0/11 <--> ge-0/0/33 t2-r12"; + unit 0 { + family inet { + address 10.0.2.115/31; + } + } + } + ge-0/0/12 { + description "t1-r10 ge-0/0/12 <--> ge-0/0/33 t2-r13"; + unit 0 { + family inet { + address 10.0.2.147/31; + } + } + } + ge-0/0/13 { + description "t1-r10 ge-0/0/13 <--> ge-0/0/33 t2-r14"; + unit 0 { + family inet { + address 10.0.2.179/31; + } + } + } + ge-0/0/14 { + description "t1-r10 ge-0/0/14 <--> ge-0/0/33 t2-r15"; + unit 0 { + family inet { + address 10.0.2.211/31; + } + } + } + ge-0/0/15 { + description "t1-r10 ge-0/0/15 <--> ge-0/0/33 t2-r16"; + unit 0 { + family inet { + address 10.0.2.243/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r11.conf b/configs/junos/t1-r11.conf new file mode 100644 index 0000000..bff9156 --- /dev/null +++ b/configs/junos/t1-r11.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r11; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.34/32; + } + } + } + ge-0/0/0 { + description "t1-r11 ge-0/0/0 <--> ge-0/0/34 t2-r1"; + unit 0 { + family inet { + address 10.0.1.21/31; + } + } + } + ge-0/0/1 { + description "t1-r11 ge-0/0/1 <--> ge-0/0/34 t2-r2"; + unit 0 { + family inet { + address 10.0.1.53/31; + } + } + } + ge-0/0/2 { + description "t1-r11 ge-0/0/2 <--> ge-0/0/34 t2-r3"; + unit 0 { + family inet { + address 10.0.1.85/31; + } + } + } + ge-0/0/3 { + description "t1-r11 ge-0/0/3 <--> ge-0/0/34 t2-r4"; + unit 0 { + family inet { + address 10.0.1.117/31; + } + } + } + ge-0/0/4 { + description "t1-r11 ge-0/0/4 <--> ge-0/0/34 t2-r5"; + unit 0 { + family inet { + address 10.0.1.149/31; + } + } + } + ge-0/0/5 { + description "t1-r11 ge-0/0/5 <--> ge-0/0/34 t2-r6"; + unit 0 { + family inet { + address 10.0.1.181/31; + } + } + } + ge-0/0/6 { + description "t1-r11 ge-0/0/6 <--> ge-0/0/34 t2-r7"; + unit 0 { + family inet { + address 10.0.1.213/31; + } + } + } + ge-0/0/7 { + description "t1-r11 ge-0/0/7 <--> ge-0/0/34 t2-r8"; + unit 0 { + family inet { + address 10.0.1.245/31; + } + } + } + ge-0/0/8 { + description "t1-r11 ge-0/0/8 <--> ge-0/0/34 t2-r9"; + unit 0 { + family inet { + address 10.0.2.21/31; + } + } + } + ge-0/0/9 { + description "t1-r11 ge-0/0/9 <--> ge-0/0/34 t2-r10"; + unit 0 { + family inet { + address 10.0.2.53/31; + } + } + } + ge-0/0/10 { + description "t1-r11 ge-0/0/10 <--> ge-0/0/34 t2-r11"; + unit 0 { + family inet { + address 10.0.2.85/31; + } + } + } + ge-0/0/11 { + description "t1-r11 ge-0/0/11 <--> ge-0/0/34 t2-r12"; + unit 0 { + family inet { + address 10.0.2.117/31; + } + } + } + ge-0/0/12 { + description "t1-r11 ge-0/0/12 <--> ge-0/0/34 t2-r13"; + unit 0 { + family inet { + address 10.0.2.149/31; + } + } + } + ge-0/0/13 { + description "t1-r11 ge-0/0/13 <--> ge-0/0/34 t2-r14"; + unit 0 { + family inet { + address 10.0.2.181/31; + } + } + } + ge-0/0/14 { + description "t1-r11 ge-0/0/14 <--> ge-0/0/34 t2-r15"; + unit 0 { + family inet { + address 10.0.2.213/31; + } + } + } + ge-0/0/15 { + description "t1-r11 ge-0/0/15 <--> ge-0/0/34 t2-r16"; + unit 0 { + family inet { + address 10.0.2.245/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r12.conf b/configs/junos/t1-r12.conf new file mode 100644 index 0000000..2b9f866 --- /dev/null +++ b/configs/junos/t1-r12.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r12; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.35/32; + } + } + } + ge-0/0/0 { + description "t1-r12 ge-0/0/0 <--> ge-0/0/35 t2-r1"; + unit 0 { + family inet { + address 10.0.1.23/31; + } + } + } + ge-0/0/1 { + description "t1-r12 ge-0/0/1 <--> ge-0/0/35 t2-r2"; + unit 0 { + family inet { + address 10.0.1.55/31; + } + } + } + ge-0/0/2 { + description "t1-r12 ge-0/0/2 <--> ge-0/0/35 t2-r3"; + unit 0 { + family inet { + address 10.0.1.87/31; + } + } + } + ge-0/0/3 { + description "t1-r12 ge-0/0/3 <--> ge-0/0/35 t2-r4"; + unit 0 { + family inet { + address 10.0.1.119/31; + } + } + } + ge-0/0/4 { + description "t1-r12 ge-0/0/4 <--> ge-0/0/35 t2-r5"; + unit 0 { + family inet { + address 10.0.1.151/31; + } + } + } + ge-0/0/5 { + description "t1-r12 ge-0/0/5 <--> ge-0/0/35 t2-r6"; + unit 0 { + family inet { + address 10.0.1.183/31; + } + } + } + ge-0/0/6 { + description "t1-r12 ge-0/0/6 <--> ge-0/0/35 t2-r7"; + unit 0 { + family inet { + address 10.0.1.215/31; + } + } + } + ge-0/0/7 { + description "t1-r12 ge-0/0/7 <--> ge-0/0/35 t2-r8"; + unit 0 { + family inet { + address 10.0.1.247/31; + } + } + } + ge-0/0/8 { + description "t1-r12 ge-0/0/8 <--> ge-0/0/35 t2-r9"; + unit 0 { + family inet { + address 10.0.2.23/31; + } + } + } + ge-0/0/9 { + description "t1-r12 ge-0/0/9 <--> ge-0/0/35 t2-r10"; + unit 0 { + family inet { + address 10.0.2.55/31; + } + } + } + ge-0/0/10 { + description "t1-r12 ge-0/0/10 <--> ge-0/0/35 t2-r11"; + unit 0 { + family inet { + address 10.0.2.87/31; + } + } + } + ge-0/0/11 { + description "t1-r12 ge-0/0/11 <--> ge-0/0/35 t2-r12"; + unit 0 { + family inet { + address 10.0.2.119/31; + } + } + } + ge-0/0/12 { + description "t1-r12 ge-0/0/12 <--> ge-0/0/35 t2-r13"; + unit 0 { + family inet { + address 10.0.2.151/31; + } + } + } + ge-0/0/13 { + description "t1-r12 ge-0/0/13 <--> ge-0/0/35 t2-r14"; + unit 0 { + family inet { + address 10.0.2.183/31; + } + } + } + ge-0/0/14 { + description "t1-r12 ge-0/0/14 <--> ge-0/0/35 t2-r15"; + unit 0 { + family inet { + address 10.0.2.215/31; + } + } + } + ge-0/0/15 { + description "t1-r12 ge-0/0/15 <--> ge-0/0/35 t2-r16"; + unit 0 { + family inet { + address 10.0.2.247/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r13.conf b/configs/junos/t1-r13.conf new file mode 100644 index 0000000..b7d12b3 --- /dev/null +++ b/configs/junos/t1-r13.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r13; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.36/32; + } + } + } + ge-0/0/0 { + description "t1-r13 ge-0/0/0 <--> ge-0/0/36 t2-r1"; + unit 0 { + family inet { + address 10.0.1.25/31; + } + } + } + ge-0/0/1 { + description "t1-r13 ge-0/0/1 <--> ge-0/0/36 t2-r2"; + unit 0 { + family inet { + address 10.0.1.57/31; + } + } + } + ge-0/0/2 { + description "t1-r13 ge-0/0/2 <--> ge-0/0/36 t2-r3"; + unit 0 { + family inet { + address 10.0.1.89/31; + } + } + } + ge-0/0/3 { + description "t1-r13 ge-0/0/3 <--> ge-0/0/36 t2-r4"; + unit 0 { + family inet { + address 10.0.1.121/31; + } + } + } + ge-0/0/4 { + description "t1-r13 ge-0/0/4 <--> ge-0/0/36 t2-r5"; + unit 0 { + family inet { + address 10.0.1.153/31; + } + } + } + ge-0/0/5 { + description "t1-r13 ge-0/0/5 <--> ge-0/0/36 t2-r6"; + unit 0 { + family inet { + address 10.0.1.185/31; + } + } + } + ge-0/0/6 { + description "t1-r13 ge-0/0/6 <--> ge-0/0/36 t2-r7"; + unit 0 { + family inet { + address 10.0.1.217/31; + } + } + } + ge-0/0/7 { + description "t1-r13 ge-0/0/7 <--> ge-0/0/36 t2-r8"; + unit 0 { + family inet { + address 10.0.1.249/31; + } + } + } + ge-0/0/8 { + description "t1-r13 ge-0/0/8 <--> ge-0/0/36 t2-r9"; + unit 0 { + family inet { + address 10.0.2.25/31; + } + } + } + ge-0/0/9 { + description "t1-r13 ge-0/0/9 <--> ge-0/0/36 t2-r10"; + unit 0 { + family inet { + address 10.0.2.57/31; + } + } + } + ge-0/0/10 { + description "t1-r13 ge-0/0/10 <--> ge-0/0/36 t2-r11"; + unit 0 { + family inet { + address 10.0.2.89/31; + } + } + } + ge-0/0/11 { + description "t1-r13 ge-0/0/11 <--> ge-0/0/36 t2-r12"; + unit 0 { + family inet { + address 10.0.2.121/31; + } + } + } + ge-0/0/12 { + description "t1-r13 ge-0/0/12 <--> ge-0/0/36 t2-r13"; + unit 0 { + family inet { + address 10.0.2.153/31; + } + } + } + ge-0/0/13 { + description "t1-r13 ge-0/0/13 <--> ge-0/0/36 t2-r14"; + unit 0 { + family inet { + address 10.0.2.185/31; + } + } + } + ge-0/0/14 { + description "t1-r13 ge-0/0/14 <--> ge-0/0/36 t2-r15"; + unit 0 { + family inet { + address 10.0.2.217/31; + } + } + } + ge-0/0/15 { + description "t1-r13 ge-0/0/15 <--> ge-0/0/36 t2-r16"; + unit 0 { + family inet { + address 10.0.2.249/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r14.conf b/configs/junos/t1-r14.conf new file mode 100644 index 0000000..f09e40e --- /dev/null +++ b/configs/junos/t1-r14.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r14; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.37/32; + } + } + } + ge-0/0/0 { + description "t1-r14 ge-0/0/0 <--> ge-0/0/37 t2-r1"; + unit 0 { + family inet { + address 10.0.1.27/31; + } + } + } + ge-0/0/1 { + description "t1-r14 ge-0/0/1 <--> ge-0/0/37 t2-r2"; + unit 0 { + family inet { + address 10.0.1.59/31; + } + } + } + ge-0/0/2 { + description "t1-r14 ge-0/0/2 <--> ge-0/0/37 t2-r3"; + unit 0 { + family inet { + address 10.0.1.91/31; + } + } + } + ge-0/0/3 { + description "t1-r14 ge-0/0/3 <--> ge-0/0/37 t2-r4"; + unit 0 { + family inet { + address 10.0.1.123/31; + } + } + } + ge-0/0/4 { + description "t1-r14 ge-0/0/4 <--> ge-0/0/37 t2-r5"; + unit 0 { + family inet { + address 10.0.1.155/31; + } + } + } + ge-0/0/5 { + description "t1-r14 ge-0/0/5 <--> ge-0/0/37 t2-r6"; + unit 0 { + family inet { + address 10.0.1.187/31; + } + } + } + ge-0/0/6 { + description "t1-r14 ge-0/0/6 <--> ge-0/0/37 t2-r7"; + unit 0 { + family inet { + address 10.0.1.219/31; + } + } + } + ge-0/0/7 { + description "t1-r14 ge-0/0/7 <--> ge-0/0/37 t2-r8"; + unit 0 { + family inet { + address 10.0.1.251/31; + } + } + } + ge-0/0/8 { + description "t1-r14 ge-0/0/8 <--> ge-0/0/37 t2-r9"; + unit 0 { + family inet { + address 10.0.2.27/31; + } + } + } + ge-0/0/9 { + description "t1-r14 ge-0/0/9 <--> ge-0/0/37 t2-r10"; + unit 0 { + family inet { + address 10.0.2.59/31; + } + } + } + ge-0/0/10 { + description "t1-r14 ge-0/0/10 <--> ge-0/0/37 t2-r11"; + unit 0 { + family inet { + address 10.0.2.91/31; + } + } + } + ge-0/0/11 { + description "t1-r14 ge-0/0/11 <--> ge-0/0/37 t2-r12"; + unit 0 { + family inet { + address 10.0.2.123/31; + } + } + } + ge-0/0/12 { + description "t1-r14 ge-0/0/12 <--> ge-0/0/37 t2-r13"; + unit 0 { + family inet { + address 10.0.2.155/31; + } + } + } + ge-0/0/13 { + description "t1-r14 ge-0/0/13 <--> ge-0/0/37 t2-r14"; + unit 0 { + family inet { + address 10.0.2.187/31; + } + } + } + ge-0/0/14 { + description "t1-r14 ge-0/0/14 <--> ge-0/0/37 t2-r15"; + unit 0 { + family inet { + address 10.0.2.219/31; + } + } + } + ge-0/0/15 { + description "t1-r14 ge-0/0/15 <--> ge-0/0/37 t2-r16"; + unit 0 { + family inet { + address 10.0.2.251/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r15.conf b/configs/junos/t1-r15.conf new file mode 100644 index 0000000..5696f7d --- /dev/null +++ b/configs/junos/t1-r15.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r15; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.38/32; + } + } + } + ge-0/0/0 { + description "t1-r15 ge-0/0/0 <--> ge-0/0/38 t2-r1"; + unit 0 { + family inet { + address 10.0.1.29/31; + } + } + } + ge-0/0/1 { + description "t1-r15 ge-0/0/1 <--> ge-0/0/38 t2-r2"; + unit 0 { + family inet { + address 10.0.1.61/31; + } + } + } + ge-0/0/2 { + description "t1-r15 ge-0/0/2 <--> ge-0/0/38 t2-r3"; + unit 0 { + family inet { + address 10.0.1.93/31; + } + } + } + ge-0/0/3 { + description "t1-r15 ge-0/0/3 <--> ge-0/0/38 t2-r4"; + unit 0 { + family inet { + address 10.0.1.125/31; + } + } + } + ge-0/0/4 { + description "t1-r15 ge-0/0/4 <--> ge-0/0/38 t2-r5"; + unit 0 { + family inet { + address 10.0.1.157/31; + } + } + } + ge-0/0/5 { + description "t1-r15 ge-0/0/5 <--> ge-0/0/38 t2-r6"; + unit 0 { + family inet { + address 10.0.1.189/31; + } + } + } + ge-0/0/6 { + description "t1-r15 ge-0/0/6 <--> ge-0/0/38 t2-r7"; + unit 0 { + family inet { + address 10.0.1.221/31; + } + } + } + ge-0/0/7 { + description "t1-r15 ge-0/0/7 <--> ge-0/0/38 t2-r8"; + unit 0 { + family inet { + address 10.0.1.253/31; + } + } + } + ge-0/0/8 { + description "t1-r15 ge-0/0/8 <--> ge-0/0/38 t2-r9"; + unit 0 { + family inet { + address 10.0.2.29/31; + } + } + } + ge-0/0/9 { + description "t1-r15 ge-0/0/9 <--> ge-0/0/38 t2-r10"; + unit 0 { + family inet { + address 10.0.2.61/31; + } + } + } + ge-0/0/10 { + description "t1-r15 ge-0/0/10 <--> ge-0/0/38 t2-r11"; + unit 0 { + family inet { + address 10.0.2.93/31; + } + } + } + ge-0/0/11 { + description "t1-r15 ge-0/0/11 <--> ge-0/0/38 t2-r12"; + unit 0 { + family inet { + address 10.0.2.125/31; + } + } + } + ge-0/0/12 { + description "t1-r15 ge-0/0/12 <--> ge-0/0/38 t2-r13"; + unit 0 { + family inet { + address 10.0.2.157/31; + } + } + } + ge-0/0/13 { + description "t1-r15 ge-0/0/13 <--> ge-0/0/38 t2-r14"; + unit 0 { + family inet { + address 10.0.2.189/31; + } + } + } + ge-0/0/14 { + description "t1-r15 ge-0/0/14 <--> ge-0/0/38 t2-r15"; + unit 0 { + family inet { + address 10.0.2.221/31; + } + } + } + ge-0/0/15 { + description "t1-r15 ge-0/0/15 <--> ge-0/0/38 t2-r16"; + unit 0 { + family inet { + address 10.0.2.253/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r16.conf b/configs/junos/t1-r16.conf new file mode 100644 index 0000000..8627239 --- /dev/null +++ b/configs/junos/t1-r16.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r16; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.39/32; + } + } + } + ge-0/0/0 { + description "t1-r16 ge-0/0/0 <--> ge-0/0/39 t2-r1"; + unit 0 { + family inet { + address 10.0.1.31/31; + } + } + } + ge-0/0/1 { + description "t1-r16 ge-0/0/1 <--> ge-0/0/39 t2-r2"; + unit 0 { + family inet { + address 10.0.1.63/31; + } + } + } + ge-0/0/2 { + description "t1-r16 ge-0/0/2 <--> ge-0/0/39 t2-r3"; + unit 0 { + family inet { + address 10.0.1.95/31; + } + } + } + ge-0/0/3 { + description "t1-r16 ge-0/0/3 <--> ge-0/0/39 t2-r4"; + unit 0 { + family inet { + address 10.0.1.127/31; + } + } + } + ge-0/0/4 { + description "t1-r16 ge-0/0/4 <--> ge-0/0/39 t2-r5"; + unit 0 { + family inet { + address 10.0.1.159/31; + } + } + } + ge-0/0/5 { + description "t1-r16 ge-0/0/5 <--> ge-0/0/39 t2-r6"; + unit 0 { + family inet { + address 10.0.1.191/31; + } + } + } + ge-0/0/6 { + description "t1-r16 ge-0/0/6 <--> ge-0/0/39 t2-r7"; + unit 0 { + family inet { + address 10.0.1.223/31; + } + } + } + ge-0/0/7 { + description "t1-r16 ge-0/0/7 <--> ge-0/0/39 t2-r8"; + unit 0 { + family inet { + address 10.0.1.255/31; + } + } + } + ge-0/0/8 { + description "t1-r16 ge-0/0/8 <--> ge-0/0/39 t2-r9"; + unit 0 { + family inet { + address 10.0.2.31/31; + } + } + } + ge-0/0/9 { + description "t1-r16 ge-0/0/9 <--> ge-0/0/39 t2-r10"; + unit 0 { + family inet { + address 10.0.2.63/31; + } + } + } + ge-0/0/10 { + description "t1-r16 ge-0/0/10 <--> ge-0/0/39 t2-r11"; + unit 0 { + family inet { + address 10.0.2.95/31; + } + } + } + ge-0/0/11 { + description "t1-r16 ge-0/0/11 <--> ge-0/0/39 t2-r12"; + unit 0 { + family inet { + address 10.0.2.127/31; + } + } + } + ge-0/0/12 { + description "t1-r16 ge-0/0/12 <--> ge-0/0/39 t2-r13"; + unit 0 { + family inet { + address 10.0.2.159/31; + } + } + } + ge-0/0/13 { + description "t1-r16 ge-0/0/13 <--> ge-0/0/39 t2-r14"; + unit 0 { + family inet { + address 10.0.2.191/31; + } + } + } + ge-0/0/14 { + description "t1-r16 ge-0/0/14 <--> ge-0/0/39 t2-r15"; + unit 0 { + family inet { + address 10.0.2.223/31; + } + } + } + ge-0/0/15 { + description "t1-r16 ge-0/0/15 <--> ge-0/0/39 t2-r16"; + unit 0 { + family inet { + address 10.0.2.255/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r2.conf b/configs/junos/t1-r2.conf new file mode 100644 index 0000000..974816f --- /dev/null +++ b/configs/junos/t1-r2.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r2; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.25/32; + } + } + } + ge-0/0/0 { + description "t1-r2 ge-0/0/0 <--> ge-0/0/25 t2-r1"; + unit 0 { + family inet { + address 10.0.1.3/31; + } + } + } + ge-0/0/1 { + description "t1-r2 ge-0/0/1 <--> ge-0/0/25 t2-r2"; + unit 0 { + family inet { + address 10.0.1.35/31; + } + } + } + ge-0/0/2 { + description "t1-r2 ge-0/0/2 <--> ge-0/0/25 t2-r3"; + unit 0 { + family inet { + address 10.0.1.67/31; + } + } + } + ge-0/0/3 { + description "t1-r2 ge-0/0/3 <--> ge-0/0/25 t2-r4"; + unit 0 { + family inet { + address 10.0.1.99/31; + } + } + } + ge-0/0/4 { + description "t1-r2 ge-0/0/4 <--> ge-0/0/25 t2-r5"; + unit 0 { + family inet { + address 10.0.1.131/31; + } + } + } + ge-0/0/5 { + description "t1-r2 ge-0/0/5 <--> ge-0/0/25 t2-r6"; + unit 0 { + family inet { + address 10.0.1.163/31; + } + } + } + ge-0/0/6 { + description "t1-r2 ge-0/0/6 <--> ge-0/0/25 t2-r7"; + unit 0 { + family inet { + address 10.0.1.195/31; + } + } + } + ge-0/0/7 { + description "t1-r2 ge-0/0/7 <--> ge-0/0/25 t2-r8"; + unit 0 { + family inet { + address 10.0.1.227/31; + } + } + } + ge-0/0/8 { + description "t1-r2 ge-0/0/8 <--> ge-0/0/25 t2-r9"; + unit 0 { + family inet { + address 10.0.2.3/31; + } + } + } + ge-0/0/9 { + description "t1-r2 ge-0/0/9 <--> ge-0/0/25 t2-r10"; + unit 0 { + family inet { + address 10.0.2.35/31; + } + } + } + ge-0/0/10 { + description "t1-r2 ge-0/0/10 <--> ge-0/0/25 t2-r11"; + unit 0 { + family inet { + address 10.0.2.67/31; + } + } + } + ge-0/0/11 { + description "t1-r2 ge-0/0/11 <--> ge-0/0/25 t2-r12"; + unit 0 { + family inet { + address 10.0.2.99/31; + } + } + } + ge-0/0/12 { + description "t1-r2 ge-0/0/12 <--> ge-0/0/25 t2-r13"; + unit 0 { + family inet { + address 10.0.2.131/31; + } + } + } + ge-0/0/13 { + description "t1-r2 ge-0/0/13 <--> ge-0/0/25 t2-r14"; + unit 0 { + family inet { + address 10.0.2.163/31; + } + } + } + ge-0/0/14 { + description "t1-r2 ge-0/0/14 <--> ge-0/0/25 t2-r15"; + unit 0 { + family inet { + address 10.0.2.195/31; + } + } + } + ge-0/0/15 { + description "t1-r2 ge-0/0/15 <--> ge-0/0/25 t2-r16"; + unit 0 { + family inet { + address 10.0.2.227/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r3.conf b/configs/junos/t1-r3.conf new file mode 100644 index 0000000..47e5ac7 --- /dev/null +++ b/configs/junos/t1-r3.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r3; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.26/32; + } + } + } + ge-0/0/0 { + description "t1-r3 ge-0/0/0 <--> ge-0/0/26 t2-r1"; + unit 0 { + family inet { + address 10.0.1.5/31; + } + } + } + ge-0/0/1 { + description "t1-r3 ge-0/0/1 <--> ge-0/0/26 t2-r2"; + unit 0 { + family inet { + address 10.0.1.37/31; + } + } + } + ge-0/0/2 { + description "t1-r3 ge-0/0/2 <--> ge-0/0/26 t2-r3"; + unit 0 { + family inet { + address 10.0.1.69/31; + } + } + } + ge-0/0/3 { + description "t1-r3 ge-0/0/3 <--> ge-0/0/26 t2-r4"; + unit 0 { + family inet { + address 10.0.1.101/31; + } + } + } + ge-0/0/4 { + description "t1-r3 ge-0/0/4 <--> ge-0/0/26 t2-r5"; + unit 0 { + family inet { + address 10.0.1.133/31; + } + } + } + ge-0/0/5 { + description "t1-r3 ge-0/0/5 <--> ge-0/0/26 t2-r6"; + unit 0 { + family inet { + address 10.0.1.165/31; + } + } + } + ge-0/0/6 { + description "t1-r3 ge-0/0/6 <--> ge-0/0/26 t2-r7"; + unit 0 { + family inet { + address 10.0.1.197/31; + } + } + } + ge-0/0/7 { + description "t1-r3 ge-0/0/7 <--> ge-0/0/26 t2-r8"; + unit 0 { + family inet { + address 10.0.1.229/31; + } + } + } + ge-0/0/8 { + description "t1-r3 ge-0/0/8 <--> ge-0/0/26 t2-r9"; + unit 0 { + family inet { + address 10.0.2.5/31; + } + } + } + ge-0/0/9 { + description "t1-r3 ge-0/0/9 <--> ge-0/0/26 t2-r10"; + unit 0 { + family inet { + address 10.0.2.37/31; + } + } + } + ge-0/0/10 { + description "t1-r3 ge-0/0/10 <--> ge-0/0/26 t2-r11"; + unit 0 { + family inet { + address 10.0.2.69/31; + } + } + } + ge-0/0/11 { + description "t1-r3 ge-0/0/11 <--> ge-0/0/26 t2-r12"; + unit 0 { + family inet { + address 10.0.2.101/31; + } + } + } + ge-0/0/12 { + description "t1-r3 ge-0/0/12 <--> ge-0/0/26 t2-r13"; + unit 0 { + family inet { + address 10.0.2.133/31; + } + } + } + ge-0/0/13 { + description "t1-r3 ge-0/0/13 <--> ge-0/0/26 t2-r14"; + unit 0 { + family inet { + address 10.0.2.165/31; + } + } + } + ge-0/0/14 { + description "t1-r3 ge-0/0/14 <--> ge-0/0/26 t2-r15"; + unit 0 { + family inet { + address 10.0.2.197/31; + } + } + } + ge-0/0/15 { + description "t1-r3 ge-0/0/15 <--> ge-0/0/26 t2-r16"; + unit 0 { + family inet { + address 10.0.2.229/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r4.conf b/configs/junos/t1-r4.conf new file mode 100644 index 0000000..5cca891 --- /dev/null +++ b/configs/junos/t1-r4.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r4; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.27/32; + } + } + } + ge-0/0/0 { + description "t1-r4 ge-0/0/0 <--> ge-0/0/27 t2-r1"; + unit 0 { + family inet { + address 10.0.1.7/31; + } + } + } + ge-0/0/1 { + description "t1-r4 ge-0/0/1 <--> ge-0/0/27 t2-r2"; + unit 0 { + family inet { + address 10.0.1.39/31; + } + } + } + ge-0/0/2 { + description "t1-r4 ge-0/0/2 <--> ge-0/0/27 t2-r3"; + unit 0 { + family inet { + address 10.0.1.71/31; + } + } + } + ge-0/0/3 { + description "t1-r4 ge-0/0/3 <--> ge-0/0/27 t2-r4"; + unit 0 { + family inet { + address 10.0.1.103/31; + } + } + } + ge-0/0/4 { + description "t1-r4 ge-0/0/4 <--> ge-0/0/27 t2-r5"; + unit 0 { + family inet { + address 10.0.1.135/31; + } + } + } + ge-0/0/5 { + description "t1-r4 ge-0/0/5 <--> ge-0/0/27 t2-r6"; + unit 0 { + family inet { + address 10.0.1.167/31; + } + } + } + ge-0/0/6 { + description "t1-r4 ge-0/0/6 <--> ge-0/0/27 t2-r7"; + unit 0 { + family inet { + address 10.0.1.199/31; + } + } + } + ge-0/0/7 { + description "t1-r4 ge-0/0/7 <--> ge-0/0/27 t2-r8"; + unit 0 { + family inet { + address 10.0.1.231/31; + } + } + } + ge-0/0/8 { + description "t1-r4 ge-0/0/8 <--> ge-0/0/27 t2-r9"; + unit 0 { + family inet { + address 10.0.2.7/31; + } + } + } + ge-0/0/9 { + description "t1-r4 ge-0/0/9 <--> ge-0/0/27 t2-r10"; + unit 0 { + family inet { + address 10.0.2.39/31; + } + } + } + ge-0/0/10 { + description "t1-r4 ge-0/0/10 <--> ge-0/0/27 t2-r11"; + unit 0 { + family inet { + address 10.0.2.71/31; + } + } + } + ge-0/0/11 { + description "t1-r4 ge-0/0/11 <--> ge-0/0/27 t2-r12"; + unit 0 { + family inet { + address 10.0.2.103/31; + } + } + } + ge-0/0/12 { + description "t1-r4 ge-0/0/12 <--> ge-0/0/27 t2-r13"; + unit 0 { + family inet { + address 10.0.2.135/31; + } + } + } + ge-0/0/13 { + description "t1-r4 ge-0/0/13 <--> ge-0/0/27 t2-r14"; + unit 0 { + family inet { + address 10.0.2.167/31; + } + } + } + ge-0/0/14 { + description "t1-r4 ge-0/0/14 <--> ge-0/0/27 t2-r15"; + unit 0 { + family inet { + address 10.0.2.199/31; + } + } + } + ge-0/0/15 { + description "t1-r4 ge-0/0/15 <--> ge-0/0/27 t2-r16"; + unit 0 { + family inet { + address 10.0.2.231/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r5.conf b/configs/junos/t1-r5.conf new file mode 100644 index 0000000..f9cd597 --- /dev/null +++ b/configs/junos/t1-r5.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r5; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.28/32; + } + } + } + ge-0/0/0 { + description "t1-r5 ge-0/0/0 <--> ge-0/0/28 t2-r1"; + unit 0 { + family inet { + address 10.0.1.9/31; + } + } + } + ge-0/0/1 { + description "t1-r5 ge-0/0/1 <--> ge-0/0/28 t2-r2"; + unit 0 { + family inet { + address 10.0.1.41/31; + } + } + } + ge-0/0/2 { + description "t1-r5 ge-0/0/2 <--> ge-0/0/28 t2-r3"; + unit 0 { + family inet { + address 10.0.1.73/31; + } + } + } + ge-0/0/3 { + description "t1-r5 ge-0/0/3 <--> ge-0/0/28 t2-r4"; + unit 0 { + family inet { + address 10.0.1.105/31; + } + } + } + ge-0/0/4 { + description "t1-r5 ge-0/0/4 <--> ge-0/0/28 t2-r5"; + unit 0 { + family inet { + address 10.0.1.137/31; + } + } + } + ge-0/0/5 { + description "t1-r5 ge-0/0/5 <--> ge-0/0/28 t2-r6"; + unit 0 { + family inet { + address 10.0.1.169/31; + } + } + } + ge-0/0/6 { + description "t1-r5 ge-0/0/6 <--> ge-0/0/28 t2-r7"; + unit 0 { + family inet { + address 10.0.1.201/31; + } + } + } + ge-0/0/7 { + description "t1-r5 ge-0/0/7 <--> ge-0/0/28 t2-r8"; + unit 0 { + family inet { + address 10.0.1.233/31; + } + } + } + ge-0/0/8 { + description "t1-r5 ge-0/0/8 <--> ge-0/0/28 t2-r9"; + unit 0 { + family inet { + address 10.0.2.9/31; + } + } + } + ge-0/0/9 { + description "t1-r5 ge-0/0/9 <--> ge-0/0/28 t2-r10"; + unit 0 { + family inet { + address 10.0.2.41/31; + } + } + } + ge-0/0/10 { + description "t1-r5 ge-0/0/10 <--> ge-0/0/28 t2-r11"; + unit 0 { + family inet { + address 10.0.2.73/31; + } + } + } + ge-0/0/11 { + description "t1-r5 ge-0/0/11 <--> ge-0/0/28 t2-r12"; + unit 0 { + family inet { + address 10.0.2.105/31; + } + } + } + ge-0/0/12 { + description "t1-r5 ge-0/0/12 <--> ge-0/0/28 t2-r13"; + unit 0 { + family inet { + address 10.0.2.137/31; + } + } + } + ge-0/0/13 { + description "t1-r5 ge-0/0/13 <--> ge-0/0/28 t2-r14"; + unit 0 { + family inet { + address 10.0.2.169/31; + } + } + } + ge-0/0/14 { + description "t1-r5 ge-0/0/14 <--> ge-0/0/28 t2-r15"; + unit 0 { + family inet { + address 10.0.2.201/31; + } + } + } + ge-0/0/15 { + description "t1-r5 ge-0/0/15 <--> ge-0/0/28 t2-r16"; + unit 0 { + family inet { + address 10.0.2.233/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r6.conf b/configs/junos/t1-r6.conf new file mode 100644 index 0000000..8ead5e2 --- /dev/null +++ b/configs/junos/t1-r6.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r6; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.29/32; + } + } + } + ge-0/0/0 { + description "t1-r6 ge-0/0/0 <--> ge-0/0/29 t2-r1"; + unit 0 { + family inet { + address 10.0.1.11/31; + } + } + } + ge-0/0/1 { + description "t1-r6 ge-0/0/1 <--> ge-0/0/29 t2-r2"; + unit 0 { + family inet { + address 10.0.1.43/31; + } + } + } + ge-0/0/2 { + description "t1-r6 ge-0/0/2 <--> ge-0/0/29 t2-r3"; + unit 0 { + family inet { + address 10.0.1.75/31; + } + } + } + ge-0/0/3 { + description "t1-r6 ge-0/0/3 <--> ge-0/0/29 t2-r4"; + unit 0 { + family inet { + address 10.0.1.107/31; + } + } + } + ge-0/0/4 { + description "t1-r6 ge-0/0/4 <--> ge-0/0/29 t2-r5"; + unit 0 { + family inet { + address 10.0.1.139/31; + } + } + } + ge-0/0/5 { + description "t1-r6 ge-0/0/5 <--> ge-0/0/29 t2-r6"; + unit 0 { + family inet { + address 10.0.1.171/31; + } + } + } + ge-0/0/6 { + description "t1-r6 ge-0/0/6 <--> ge-0/0/29 t2-r7"; + unit 0 { + family inet { + address 10.0.1.203/31; + } + } + } + ge-0/0/7 { + description "t1-r6 ge-0/0/7 <--> ge-0/0/29 t2-r8"; + unit 0 { + family inet { + address 10.0.1.235/31; + } + } + } + ge-0/0/8 { + description "t1-r6 ge-0/0/8 <--> ge-0/0/29 t2-r9"; + unit 0 { + family inet { + address 10.0.2.11/31; + } + } + } + ge-0/0/9 { + description "t1-r6 ge-0/0/9 <--> ge-0/0/29 t2-r10"; + unit 0 { + family inet { + address 10.0.2.43/31; + } + } + } + ge-0/0/10 { + description "t1-r6 ge-0/0/10 <--> ge-0/0/29 t2-r11"; + unit 0 { + family inet { + address 10.0.2.75/31; + } + } + } + ge-0/0/11 { + description "t1-r6 ge-0/0/11 <--> ge-0/0/29 t2-r12"; + unit 0 { + family inet { + address 10.0.2.107/31; + } + } + } + ge-0/0/12 { + description "t1-r6 ge-0/0/12 <--> ge-0/0/29 t2-r13"; + unit 0 { + family inet { + address 10.0.2.139/31; + } + } + } + ge-0/0/13 { + description "t1-r6 ge-0/0/13 <--> ge-0/0/29 t2-r14"; + unit 0 { + family inet { + address 10.0.2.171/31; + } + } + } + ge-0/0/14 { + description "t1-r6 ge-0/0/14 <--> ge-0/0/29 t2-r15"; + unit 0 { + family inet { + address 10.0.2.203/31; + } + } + } + ge-0/0/15 { + description "t1-r6 ge-0/0/15 <--> ge-0/0/29 t2-r16"; + unit 0 { + family inet { + address 10.0.2.235/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r7.conf b/configs/junos/t1-r7.conf new file mode 100644 index 0000000..07ebf63 --- /dev/null +++ b/configs/junos/t1-r7.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r7; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.30/32; + } + } + } + ge-0/0/0 { + description "t1-r7 ge-0/0/0 <--> ge-0/0/30 t2-r1"; + unit 0 { + family inet { + address 10.0.1.13/31; + } + } + } + ge-0/0/1 { + description "t1-r7 ge-0/0/1 <--> ge-0/0/30 t2-r2"; + unit 0 { + family inet { + address 10.0.1.45/31; + } + } + } + ge-0/0/2 { + description "t1-r7 ge-0/0/2 <--> ge-0/0/30 t2-r3"; + unit 0 { + family inet { + address 10.0.1.77/31; + } + } + } + ge-0/0/3 { + description "t1-r7 ge-0/0/3 <--> ge-0/0/30 t2-r4"; + unit 0 { + family inet { + address 10.0.1.109/31; + } + } + } + ge-0/0/4 { + description "t1-r7 ge-0/0/4 <--> ge-0/0/30 t2-r5"; + unit 0 { + family inet { + address 10.0.1.141/31; + } + } + } + ge-0/0/5 { + description "t1-r7 ge-0/0/5 <--> ge-0/0/30 t2-r6"; + unit 0 { + family inet { + address 10.0.1.173/31; + } + } + } + ge-0/0/6 { + description "t1-r7 ge-0/0/6 <--> ge-0/0/30 t2-r7"; + unit 0 { + family inet { + address 10.0.1.205/31; + } + } + } + ge-0/0/7 { + description "t1-r7 ge-0/0/7 <--> ge-0/0/30 t2-r8"; + unit 0 { + family inet { + address 10.0.1.237/31; + } + } + } + ge-0/0/8 { + description "t1-r7 ge-0/0/8 <--> ge-0/0/30 t2-r9"; + unit 0 { + family inet { + address 10.0.2.13/31; + } + } + } + ge-0/0/9 { + description "t1-r7 ge-0/0/9 <--> ge-0/0/30 t2-r10"; + unit 0 { + family inet { + address 10.0.2.45/31; + } + } + } + ge-0/0/10 { + description "t1-r7 ge-0/0/10 <--> ge-0/0/30 t2-r11"; + unit 0 { + family inet { + address 10.0.2.77/31; + } + } + } + ge-0/0/11 { + description "t1-r7 ge-0/0/11 <--> ge-0/0/30 t2-r12"; + unit 0 { + family inet { + address 10.0.2.109/31; + } + } + } + ge-0/0/12 { + description "t1-r7 ge-0/0/12 <--> ge-0/0/30 t2-r13"; + unit 0 { + family inet { + address 10.0.2.141/31; + } + } + } + ge-0/0/13 { + description "t1-r7 ge-0/0/13 <--> ge-0/0/30 t2-r14"; + unit 0 { + family inet { + address 10.0.2.173/31; + } + } + } + ge-0/0/14 { + description "t1-r7 ge-0/0/14 <--> ge-0/0/30 t2-r15"; + unit 0 { + family inet { + address 10.0.2.205/31; + } + } + } + ge-0/0/15 { + description "t1-r7 ge-0/0/15 <--> ge-0/0/30 t2-r16"; + unit 0 { + family inet { + address 10.0.2.237/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r8.conf b/configs/junos/t1-r8.conf new file mode 100644 index 0000000..0cf0053 --- /dev/null +++ b/configs/junos/t1-r8.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r8; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.31/32; + } + } + } + ge-0/0/0 { + description "t1-r8 ge-0/0/0 <--> ge-0/0/31 t2-r1"; + unit 0 { + family inet { + address 10.0.1.15/31; + } + } + } + ge-0/0/1 { + description "t1-r8 ge-0/0/1 <--> ge-0/0/31 t2-r2"; + unit 0 { + family inet { + address 10.0.1.47/31; + } + } + } + ge-0/0/2 { + description "t1-r8 ge-0/0/2 <--> ge-0/0/31 t2-r3"; + unit 0 { + family inet { + address 10.0.1.79/31; + } + } + } + ge-0/0/3 { + description "t1-r8 ge-0/0/3 <--> ge-0/0/31 t2-r4"; + unit 0 { + family inet { + address 10.0.1.111/31; + } + } + } + ge-0/0/4 { + description "t1-r8 ge-0/0/4 <--> ge-0/0/31 t2-r5"; + unit 0 { + family inet { + address 10.0.1.143/31; + } + } + } + ge-0/0/5 { + description "t1-r8 ge-0/0/5 <--> ge-0/0/31 t2-r6"; + unit 0 { + family inet { + address 10.0.1.175/31; + } + } + } + ge-0/0/6 { + description "t1-r8 ge-0/0/6 <--> ge-0/0/31 t2-r7"; + unit 0 { + family inet { + address 10.0.1.207/31; + } + } + } + ge-0/0/7 { + description "t1-r8 ge-0/0/7 <--> ge-0/0/31 t2-r8"; + unit 0 { + family inet { + address 10.0.1.239/31; + } + } + } + ge-0/0/8 { + description "t1-r8 ge-0/0/8 <--> ge-0/0/31 t2-r9"; + unit 0 { + family inet { + address 10.0.2.15/31; + } + } + } + ge-0/0/9 { + description "t1-r8 ge-0/0/9 <--> ge-0/0/31 t2-r10"; + unit 0 { + family inet { + address 10.0.2.47/31; + } + } + } + ge-0/0/10 { + description "t1-r8 ge-0/0/10 <--> ge-0/0/31 t2-r11"; + unit 0 { + family inet { + address 10.0.2.79/31; + } + } + } + ge-0/0/11 { + description "t1-r8 ge-0/0/11 <--> ge-0/0/31 t2-r12"; + unit 0 { + family inet { + address 10.0.2.111/31; + } + } + } + ge-0/0/12 { + description "t1-r8 ge-0/0/12 <--> ge-0/0/31 t2-r13"; + unit 0 { + family inet { + address 10.0.2.143/31; + } + } + } + ge-0/0/13 { + description "t1-r8 ge-0/0/13 <--> ge-0/0/31 t2-r14"; + unit 0 { + family inet { + address 10.0.2.175/31; + } + } + } + ge-0/0/14 { + description "t1-r8 ge-0/0/14 <--> ge-0/0/31 t2-r15"; + unit 0 { + family inet { + address 10.0.2.207/31; + } + } + } + ge-0/0/15 { + description "t1-r8 ge-0/0/15 <--> ge-0/0/31 t2-r16"; + unit 0 { + family inet { + address 10.0.2.239/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t1-r9.conf b/configs/junos/t1-r9.conf new file mode 100644 index 0000000..33d2e69 --- /dev/null +++ b/configs/junos/t1-r9.conf @@ -0,0 +1,186 @@ +system { + host-name t1-r9; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.32/32; + } + } + } + ge-0/0/0 { + description "t1-r9 ge-0/0/0 <--> ge-0/0/32 t2-r1"; + unit 0 { + family inet { + address 10.0.1.17/31; + } + } + } + ge-0/0/1 { + description "t1-r9 ge-0/0/1 <--> ge-0/0/32 t2-r2"; + unit 0 { + family inet { + address 10.0.1.49/31; + } + } + } + ge-0/0/2 { + description "t1-r9 ge-0/0/2 <--> ge-0/0/32 t2-r3"; + unit 0 { + family inet { + address 10.0.1.81/31; + } + } + } + ge-0/0/3 { + description "t1-r9 ge-0/0/3 <--> ge-0/0/32 t2-r4"; + unit 0 { + family inet { + address 10.0.1.113/31; + } + } + } + ge-0/0/4 { + description "t1-r9 ge-0/0/4 <--> ge-0/0/32 t2-r5"; + unit 0 { + family inet { + address 10.0.1.145/31; + } + } + } + ge-0/0/5 { + description "t1-r9 ge-0/0/5 <--> ge-0/0/32 t2-r6"; + unit 0 { + family inet { + address 10.0.1.177/31; + } + } + } + ge-0/0/6 { + description "t1-r9 ge-0/0/6 <--> ge-0/0/32 t2-r7"; + unit 0 { + family inet { + address 10.0.1.209/31; + } + } + } + ge-0/0/7 { + description "t1-r9 ge-0/0/7 <--> ge-0/0/32 t2-r8"; + unit 0 { + family inet { + address 10.0.1.241/31; + } + } + } + ge-0/0/8 { + description "t1-r9 ge-0/0/8 <--> ge-0/0/32 t2-r9"; + unit 0 { + family inet { + address 10.0.2.17/31; + } + } + } + ge-0/0/9 { + description "t1-r9 ge-0/0/9 <--> ge-0/0/32 t2-r10"; + unit 0 { + family inet { + address 10.0.2.49/31; + } + } + } + ge-0/0/10 { + description "t1-r9 ge-0/0/10 <--> ge-0/0/32 t2-r11"; + unit 0 { + family inet { + address 10.0.2.81/31; + } + } + } + ge-0/0/11 { + description "t1-r9 ge-0/0/11 <--> ge-0/0/32 t2-r12"; + unit 0 { + family inet { + address 10.0.2.113/31; + } + } + } + ge-0/0/12 { + description "t1-r9 ge-0/0/12 <--> ge-0/0/32 t2-r13"; + unit 0 { + family inet { + address 10.0.2.145/31; + } + } + } + ge-0/0/13 { + description "t1-r9 ge-0/0/13 <--> ge-0/0/32 t2-r14"; + unit 0 { + family inet { + address 10.0.2.177/31; + } + } + } + ge-0/0/14 { + description "t1-r9 ge-0/0/14 <--> ge-0/0/32 t2-r15"; + unit 0 { + family inet { + address 10.0.2.209/31; + } + } + } + ge-0/0/15 { + description "t1-r9 ge-0/0/15 <--> ge-0/0/32 t2-r16"; + unit 0 { + family inet { + address 10.0.2.241/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/8.0; + interface ge-0/0/9.0; + interface ge-0/0/10.0; + interface ge-0/0/11.0; + interface ge-0/0/12.0; + interface ge-0/0/13.0; + interface ge-0/0/14.0; + interface ge-0/0/15.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r1.conf b/configs/junos/t2-r1.conf new file mode 100644 index 0000000..5bde856 --- /dev/null +++ b/configs/junos/t2-r1.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r1; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.8/32; + } + } + } + ge-0/0/0 { + description "t2-r1 ge-0/0/0 <--> ge-0/0/24 s1-r1"; + unit 0 { + family inet { + address 10.0.0.1/31; + } + } + } + ge-0/0/1 { + description "t2-r1 ge-0/0/1 <--> ge-0/0/24 s1-r2"; + unit 0 { + family inet { + address 10.0.0.33/31; + } + } + } + ge-0/0/2 { + description "t2-r1 ge-0/0/2 <--> ge-0/0/24 s1-r3"; + unit 0 { + family inet { + address 10.0.0.65/31; + } + } + } + ge-0/0/3 { + description "t2-r1 ge-0/0/3 <--> ge-0/0/24 s1-r4"; + unit 0 { + family inet { + address 10.0.0.97/31; + } + } + } + ge-0/0/4 { + description "t2-r1 ge-0/0/4 <--> ge-0/0/24 s1-r5"; + unit 0 { + family inet { + address 10.0.0.129/31; + } + } + } + ge-0/0/5 { + description "t2-r1 ge-0/0/5 <--> ge-0/0/24 s1-r6"; + unit 0 { + family inet { + address 10.0.0.161/31; + } + } + } + ge-0/0/6 { + description "t2-r1 ge-0/0/6 <--> ge-0/0/24 s1-r7"; + unit 0 { + family inet { + address 10.0.0.193/31; + } + } + } + ge-0/0/7 { + description "t2-r1 ge-0/0/7 <--> ge-0/0/24 s1-r8"; + unit 0 { + family inet { + address 10.0.0.225/31; + } + } + } + ge-0/0/24 { + description "t2-r1 ge-0/0/24 <--> ge-0/0/0 t1-r1"; + unit 0 { + family inet { + address 10.0.1.0/31; + } + } + } + ge-0/0/25 { + description "t2-r1 ge-0/0/25 <--> ge-0/0/0 t1-r2"; + unit 0 { + family inet { + address 10.0.1.2/31; + } + } + } + ge-0/0/26 { + description "t2-r1 ge-0/0/26 <--> ge-0/0/0 t1-r3"; + unit 0 { + family inet { + address 10.0.1.4/31; + } + } + } + ge-0/0/27 { + description "t2-r1 ge-0/0/27 <--> ge-0/0/0 t1-r4"; + unit 0 { + family inet { + address 10.0.1.6/31; + } + } + } + ge-0/0/28 { + description "t2-r1 ge-0/0/28 <--> ge-0/0/0 t1-r5"; + unit 0 { + family inet { + address 10.0.1.8/31; + } + } + } + ge-0/0/29 { + description "t2-r1 ge-0/0/29 <--> ge-0/0/0 t1-r6"; + unit 0 { + family inet { + address 10.0.1.10/31; + } + } + } + ge-0/0/30 { + description "t2-r1 ge-0/0/30 <--> ge-0/0/0 t1-r7"; + unit 0 { + family inet { + address 10.0.1.12/31; + } + } + } + ge-0/0/31 { + description "t2-r1 ge-0/0/31 <--> ge-0/0/0 t1-r8"; + unit 0 { + family inet { + address 10.0.1.14/31; + } + } + } + ge-0/0/32 { + description "t2-r1 ge-0/0/32 <--> ge-0/0/0 t1-r9"; + unit 0 { + family inet { + address 10.0.1.16/31; + } + } + } + ge-0/0/33 { + description "t2-r1 ge-0/0/33 <--> ge-0/0/0 t1-r10"; + unit 0 { + family inet { + address 10.0.1.18/31; + } + } + } + ge-0/0/34 { + description "t2-r1 ge-0/0/34 <--> ge-0/0/0 t1-r11"; + unit 0 { + family inet { + address 10.0.1.20/31; + } + } + } + ge-0/0/35 { + description "t2-r1 ge-0/0/35 <--> ge-0/0/0 t1-r12"; + unit 0 { + family inet { + address 10.0.1.22/31; + } + } + } + ge-0/0/36 { + description "t2-r1 ge-0/0/36 <--> ge-0/0/0 t1-r13"; + unit 0 { + family inet { + address 10.0.1.24/31; + } + } + } + ge-0/0/37 { + description "t2-r1 ge-0/0/37 <--> ge-0/0/0 t1-r14"; + unit 0 { + family inet { + address 10.0.1.26/31; + } + } + } + ge-0/0/38 { + description "t2-r1 ge-0/0/38 <--> ge-0/0/0 t1-r15"; + unit 0 { + family inet { + address 10.0.1.28/31; + } + } + } + ge-0/0/39 { + description "t2-r1 ge-0/0/39 <--> ge-0/0/0 t1-r16"; + unit 0 { + family inet { + address 10.0.1.30/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r10.conf b/configs/junos/t2-r10.conf new file mode 100644 index 0000000..217fd30 --- /dev/null +++ b/configs/junos/t2-r10.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r10; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.17/32; + } + } + } + ge-0/0/0 { + description "t2-r10 ge-0/0/0 <--> ge-0/0/33 s1-r1"; + unit 0 { + family inet { + address 10.0.0.19/31; + } + } + } + ge-0/0/1 { + description "t2-r10 ge-0/0/1 <--> ge-0/0/33 s1-r2"; + unit 0 { + family inet { + address 10.0.0.51/31; + } + } + } + ge-0/0/2 { + description "t2-r10 ge-0/0/2 <--> ge-0/0/33 s1-r3"; + unit 0 { + family inet { + address 10.0.0.83/31; + } + } + } + ge-0/0/3 { + description "t2-r10 ge-0/0/3 <--> ge-0/0/33 s1-r4"; + unit 0 { + family inet { + address 10.0.0.115/31; + } + } + } + ge-0/0/4 { + description "t2-r10 ge-0/0/4 <--> ge-0/0/33 s1-r5"; + unit 0 { + family inet { + address 10.0.0.147/31; + } + } + } + ge-0/0/5 { + description "t2-r10 ge-0/0/5 <--> ge-0/0/33 s1-r6"; + unit 0 { + family inet { + address 10.0.0.179/31; + } + } + } + ge-0/0/6 { + description "t2-r10 ge-0/0/6 <--> ge-0/0/33 s1-r7"; + unit 0 { + family inet { + address 10.0.0.211/31; + } + } + } + ge-0/0/7 { + description "t2-r10 ge-0/0/7 <--> ge-0/0/33 s1-r8"; + unit 0 { + family inet { + address 10.0.0.243/31; + } + } + } + ge-0/0/24 { + description "t2-r10 ge-0/0/24 <--> ge-0/0/9 t1-r1"; + unit 0 { + family inet { + address 10.0.2.32/31; + } + } + } + ge-0/0/25 { + description "t2-r10 ge-0/0/25 <--> ge-0/0/9 t1-r2"; + unit 0 { + family inet { + address 10.0.2.34/31; + } + } + } + ge-0/0/26 { + description "t2-r10 ge-0/0/26 <--> ge-0/0/9 t1-r3"; + unit 0 { + family inet { + address 10.0.2.36/31; + } + } + } + ge-0/0/27 { + description "t2-r10 ge-0/0/27 <--> ge-0/0/9 t1-r4"; + unit 0 { + family inet { + address 10.0.2.38/31; + } + } + } + ge-0/0/28 { + description "t2-r10 ge-0/0/28 <--> ge-0/0/9 t1-r5"; + unit 0 { + family inet { + address 10.0.2.40/31; + } + } + } + ge-0/0/29 { + description "t2-r10 ge-0/0/29 <--> ge-0/0/9 t1-r6"; + unit 0 { + family inet { + address 10.0.2.42/31; + } + } + } + ge-0/0/30 { + description "t2-r10 ge-0/0/30 <--> ge-0/0/9 t1-r7"; + unit 0 { + family inet { + address 10.0.2.44/31; + } + } + } + ge-0/0/31 { + description "t2-r10 ge-0/0/31 <--> ge-0/0/9 t1-r8"; + unit 0 { + family inet { + address 10.0.2.46/31; + } + } + } + ge-0/0/32 { + description "t2-r10 ge-0/0/32 <--> ge-0/0/9 t1-r9"; + unit 0 { + family inet { + address 10.0.2.48/31; + } + } + } + ge-0/0/33 { + description "t2-r10 ge-0/0/33 <--> ge-0/0/9 t1-r10"; + unit 0 { + family inet { + address 10.0.2.50/31; + } + } + } + ge-0/0/34 { + description "t2-r10 ge-0/0/34 <--> ge-0/0/9 t1-r11"; + unit 0 { + family inet { + address 10.0.2.52/31; + } + } + } + ge-0/0/35 { + description "t2-r10 ge-0/0/35 <--> ge-0/0/9 t1-r12"; + unit 0 { + family inet { + address 10.0.2.54/31; + } + } + } + ge-0/0/36 { + description "t2-r10 ge-0/0/36 <--> ge-0/0/9 t1-r13"; + unit 0 { + family inet { + address 10.0.2.56/31; + } + } + } + ge-0/0/37 { + description "t2-r10 ge-0/0/37 <--> ge-0/0/9 t1-r14"; + unit 0 { + family inet { + address 10.0.2.58/31; + } + } + } + ge-0/0/38 { + description "t2-r10 ge-0/0/38 <--> ge-0/0/9 t1-r15"; + unit 0 { + family inet { + address 10.0.2.60/31; + } + } + } + ge-0/0/39 { + description "t2-r10 ge-0/0/39 <--> ge-0/0/9 t1-r16"; + unit 0 { + family inet { + address 10.0.2.62/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r11.conf b/configs/junos/t2-r11.conf new file mode 100644 index 0000000..b949a59 --- /dev/null +++ b/configs/junos/t2-r11.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r11; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.18/32; + } + } + } + ge-0/0/0 { + description "t2-r11 ge-0/0/0 <--> ge-0/0/34 s1-r1"; + unit 0 { + family inet { + address 10.0.0.21/31; + } + } + } + ge-0/0/1 { + description "t2-r11 ge-0/0/1 <--> ge-0/0/34 s1-r2"; + unit 0 { + family inet { + address 10.0.0.53/31; + } + } + } + ge-0/0/2 { + description "t2-r11 ge-0/0/2 <--> ge-0/0/34 s1-r3"; + unit 0 { + family inet { + address 10.0.0.85/31; + } + } + } + ge-0/0/3 { + description "t2-r11 ge-0/0/3 <--> ge-0/0/34 s1-r4"; + unit 0 { + family inet { + address 10.0.0.117/31; + } + } + } + ge-0/0/4 { + description "t2-r11 ge-0/0/4 <--> ge-0/0/34 s1-r5"; + unit 0 { + family inet { + address 10.0.0.149/31; + } + } + } + ge-0/0/5 { + description "t2-r11 ge-0/0/5 <--> ge-0/0/34 s1-r6"; + unit 0 { + family inet { + address 10.0.0.181/31; + } + } + } + ge-0/0/6 { + description "t2-r11 ge-0/0/6 <--> ge-0/0/34 s1-r7"; + unit 0 { + family inet { + address 10.0.0.213/31; + } + } + } + ge-0/0/7 { + description "t2-r11 ge-0/0/7 <--> ge-0/0/34 s1-r8"; + unit 0 { + family inet { + address 10.0.0.245/31; + } + } + } + ge-0/0/24 { + description "t2-r11 ge-0/0/24 <--> ge-0/0/10 t1-r1"; + unit 0 { + family inet { + address 10.0.2.64/31; + } + } + } + ge-0/0/25 { + description "t2-r11 ge-0/0/25 <--> ge-0/0/10 t1-r2"; + unit 0 { + family inet { + address 10.0.2.66/31; + } + } + } + ge-0/0/26 { + description "t2-r11 ge-0/0/26 <--> ge-0/0/10 t1-r3"; + unit 0 { + family inet { + address 10.0.2.68/31; + } + } + } + ge-0/0/27 { + description "t2-r11 ge-0/0/27 <--> ge-0/0/10 t1-r4"; + unit 0 { + family inet { + address 10.0.2.70/31; + } + } + } + ge-0/0/28 { + description "t2-r11 ge-0/0/28 <--> ge-0/0/10 t1-r5"; + unit 0 { + family inet { + address 10.0.2.72/31; + } + } + } + ge-0/0/29 { + description "t2-r11 ge-0/0/29 <--> ge-0/0/10 t1-r6"; + unit 0 { + family inet { + address 10.0.2.74/31; + } + } + } + ge-0/0/30 { + description "t2-r11 ge-0/0/30 <--> ge-0/0/10 t1-r7"; + unit 0 { + family inet { + address 10.0.2.76/31; + } + } + } + ge-0/0/31 { + description "t2-r11 ge-0/0/31 <--> ge-0/0/10 t1-r8"; + unit 0 { + family inet { + address 10.0.2.78/31; + } + } + } + ge-0/0/32 { + description "t2-r11 ge-0/0/32 <--> ge-0/0/10 t1-r9"; + unit 0 { + family inet { + address 10.0.2.80/31; + } + } + } + ge-0/0/33 { + description "t2-r11 ge-0/0/33 <--> ge-0/0/10 t1-r10"; + unit 0 { + family inet { + address 10.0.2.82/31; + } + } + } + ge-0/0/34 { + description "t2-r11 ge-0/0/34 <--> ge-0/0/10 t1-r11"; + unit 0 { + family inet { + address 10.0.2.84/31; + } + } + } + ge-0/0/35 { + description "t2-r11 ge-0/0/35 <--> ge-0/0/10 t1-r12"; + unit 0 { + family inet { + address 10.0.2.86/31; + } + } + } + ge-0/0/36 { + description "t2-r11 ge-0/0/36 <--> ge-0/0/10 t1-r13"; + unit 0 { + family inet { + address 10.0.2.88/31; + } + } + } + ge-0/0/37 { + description "t2-r11 ge-0/0/37 <--> ge-0/0/10 t1-r14"; + unit 0 { + family inet { + address 10.0.2.90/31; + } + } + } + ge-0/0/38 { + description "t2-r11 ge-0/0/38 <--> ge-0/0/10 t1-r15"; + unit 0 { + family inet { + address 10.0.2.92/31; + } + } + } + ge-0/0/39 { + description "t2-r11 ge-0/0/39 <--> ge-0/0/10 t1-r16"; + unit 0 { + family inet { + address 10.0.2.94/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r12.conf b/configs/junos/t2-r12.conf new file mode 100644 index 0000000..9b3c645 --- /dev/null +++ b/configs/junos/t2-r12.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r12; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.19/32; + } + } + } + ge-0/0/0 { + description "t2-r12 ge-0/0/0 <--> ge-0/0/35 s1-r1"; + unit 0 { + family inet { + address 10.0.0.23/31; + } + } + } + ge-0/0/1 { + description "t2-r12 ge-0/0/1 <--> ge-0/0/35 s1-r2"; + unit 0 { + family inet { + address 10.0.0.55/31; + } + } + } + ge-0/0/2 { + description "t2-r12 ge-0/0/2 <--> ge-0/0/35 s1-r3"; + unit 0 { + family inet { + address 10.0.0.87/31; + } + } + } + ge-0/0/3 { + description "t2-r12 ge-0/0/3 <--> ge-0/0/35 s1-r4"; + unit 0 { + family inet { + address 10.0.0.119/31; + } + } + } + ge-0/0/4 { + description "t2-r12 ge-0/0/4 <--> ge-0/0/35 s1-r5"; + unit 0 { + family inet { + address 10.0.0.151/31; + } + } + } + ge-0/0/5 { + description "t2-r12 ge-0/0/5 <--> ge-0/0/35 s1-r6"; + unit 0 { + family inet { + address 10.0.0.183/31; + } + } + } + ge-0/0/6 { + description "t2-r12 ge-0/0/6 <--> ge-0/0/35 s1-r7"; + unit 0 { + family inet { + address 10.0.0.215/31; + } + } + } + ge-0/0/7 { + description "t2-r12 ge-0/0/7 <--> ge-0/0/35 s1-r8"; + unit 0 { + family inet { + address 10.0.0.247/31; + } + } + } + ge-0/0/24 { + description "t2-r12 ge-0/0/24 <--> ge-0/0/11 t1-r1"; + unit 0 { + family inet { + address 10.0.2.96/31; + } + } + } + ge-0/0/25 { + description "t2-r12 ge-0/0/25 <--> ge-0/0/11 t1-r2"; + unit 0 { + family inet { + address 10.0.2.98/31; + } + } + } + ge-0/0/26 { + description "t2-r12 ge-0/0/26 <--> ge-0/0/11 t1-r3"; + unit 0 { + family inet { + address 10.0.2.100/31; + } + } + } + ge-0/0/27 { + description "t2-r12 ge-0/0/27 <--> ge-0/0/11 t1-r4"; + unit 0 { + family inet { + address 10.0.2.102/31; + } + } + } + ge-0/0/28 { + description "t2-r12 ge-0/0/28 <--> ge-0/0/11 t1-r5"; + unit 0 { + family inet { + address 10.0.2.104/31; + } + } + } + ge-0/0/29 { + description "t2-r12 ge-0/0/29 <--> ge-0/0/11 t1-r6"; + unit 0 { + family inet { + address 10.0.2.106/31; + } + } + } + ge-0/0/30 { + description "t2-r12 ge-0/0/30 <--> ge-0/0/11 t1-r7"; + unit 0 { + family inet { + address 10.0.2.108/31; + } + } + } + ge-0/0/31 { + description "t2-r12 ge-0/0/31 <--> ge-0/0/11 t1-r8"; + unit 0 { + family inet { + address 10.0.2.110/31; + } + } + } + ge-0/0/32 { + description "t2-r12 ge-0/0/32 <--> ge-0/0/11 t1-r9"; + unit 0 { + family inet { + address 10.0.2.112/31; + } + } + } + ge-0/0/33 { + description "t2-r12 ge-0/0/33 <--> ge-0/0/11 t1-r10"; + unit 0 { + family inet { + address 10.0.2.114/31; + } + } + } + ge-0/0/34 { + description "t2-r12 ge-0/0/34 <--> ge-0/0/11 t1-r11"; + unit 0 { + family inet { + address 10.0.2.116/31; + } + } + } + ge-0/0/35 { + description "t2-r12 ge-0/0/35 <--> ge-0/0/11 t1-r12"; + unit 0 { + family inet { + address 10.0.2.118/31; + } + } + } + ge-0/0/36 { + description "t2-r12 ge-0/0/36 <--> ge-0/0/11 t1-r13"; + unit 0 { + family inet { + address 10.0.2.120/31; + } + } + } + ge-0/0/37 { + description "t2-r12 ge-0/0/37 <--> ge-0/0/11 t1-r14"; + unit 0 { + family inet { + address 10.0.2.122/31; + } + } + } + ge-0/0/38 { + description "t2-r12 ge-0/0/38 <--> ge-0/0/11 t1-r15"; + unit 0 { + family inet { + address 10.0.2.124/31; + } + } + } + ge-0/0/39 { + description "t2-r12 ge-0/0/39 <--> ge-0/0/11 t1-r16"; + unit 0 { + family inet { + address 10.0.2.126/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r13.conf b/configs/junos/t2-r13.conf new file mode 100644 index 0000000..7520daa --- /dev/null +++ b/configs/junos/t2-r13.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r13; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.20/32; + } + } + } + ge-0/0/0 { + description "t2-r13 ge-0/0/0 <--> ge-0/0/36 s1-r1"; + unit 0 { + family inet { + address 10.0.0.25/31; + } + } + } + ge-0/0/1 { + description "t2-r13 ge-0/0/1 <--> ge-0/0/36 s1-r2"; + unit 0 { + family inet { + address 10.0.0.57/31; + } + } + } + ge-0/0/2 { + description "t2-r13 ge-0/0/2 <--> ge-0/0/36 s1-r3"; + unit 0 { + family inet { + address 10.0.0.89/31; + } + } + } + ge-0/0/3 { + description "t2-r13 ge-0/0/3 <--> ge-0/0/36 s1-r4"; + unit 0 { + family inet { + address 10.0.0.121/31; + } + } + } + ge-0/0/4 { + description "t2-r13 ge-0/0/4 <--> ge-0/0/36 s1-r5"; + unit 0 { + family inet { + address 10.0.0.153/31; + } + } + } + ge-0/0/5 { + description "t2-r13 ge-0/0/5 <--> ge-0/0/36 s1-r6"; + unit 0 { + family inet { + address 10.0.0.185/31; + } + } + } + ge-0/0/6 { + description "t2-r13 ge-0/0/6 <--> ge-0/0/36 s1-r7"; + unit 0 { + family inet { + address 10.0.0.217/31; + } + } + } + ge-0/0/7 { + description "t2-r13 ge-0/0/7 <--> ge-0/0/36 s1-r8"; + unit 0 { + family inet { + address 10.0.0.249/31; + } + } + } + ge-0/0/24 { + description "t2-r13 ge-0/0/24 <--> ge-0/0/12 t1-r1"; + unit 0 { + family inet { + address 10.0.2.128/31; + } + } + } + ge-0/0/25 { + description "t2-r13 ge-0/0/25 <--> ge-0/0/12 t1-r2"; + unit 0 { + family inet { + address 10.0.2.130/31; + } + } + } + ge-0/0/26 { + description "t2-r13 ge-0/0/26 <--> ge-0/0/12 t1-r3"; + unit 0 { + family inet { + address 10.0.2.132/31; + } + } + } + ge-0/0/27 { + description "t2-r13 ge-0/0/27 <--> ge-0/0/12 t1-r4"; + unit 0 { + family inet { + address 10.0.2.134/31; + } + } + } + ge-0/0/28 { + description "t2-r13 ge-0/0/28 <--> ge-0/0/12 t1-r5"; + unit 0 { + family inet { + address 10.0.2.136/31; + } + } + } + ge-0/0/29 { + description "t2-r13 ge-0/0/29 <--> ge-0/0/12 t1-r6"; + unit 0 { + family inet { + address 10.0.2.138/31; + } + } + } + ge-0/0/30 { + description "t2-r13 ge-0/0/30 <--> ge-0/0/12 t1-r7"; + unit 0 { + family inet { + address 10.0.2.140/31; + } + } + } + ge-0/0/31 { + description "t2-r13 ge-0/0/31 <--> ge-0/0/12 t1-r8"; + unit 0 { + family inet { + address 10.0.2.142/31; + } + } + } + ge-0/0/32 { + description "t2-r13 ge-0/0/32 <--> ge-0/0/12 t1-r9"; + unit 0 { + family inet { + address 10.0.2.144/31; + } + } + } + ge-0/0/33 { + description "t2-r13 ge-0/0/33 <--> ge-0/0/12 t1-r10"; + unit 0 { + family inet { + address 10.0.2.146/31; + } + } + } + ge-0/0/34 { + description "t2-r13 ge-0/0/34 <--> ge-0/0/12 t1-r11"; + unit 0 { + family inet { + address 10.0.2.148/31; + } + } + } + ge-0/0/35 { + description "t2-r13 ge-0/0/35 <--> ge-0/0/12 t1-r12"; + unit 0 { + family inet { + address 10.0.2.150/31; + } + } + } + ge-0/0/36 { + description "t2-r13 ge-0/0/36 <--> ge-0/0/12 t1-r13"; + unit 0 { + family inet { + address 10.0.2.152/31; + } + } + } + ge-0/0/37 { + description "t2-r13 ge-0/0/37 <--> ge-0/0/12 t1-r14"; + unit 0 { + family inet { + address 10.0.2.154/31; + } + } + } + ge-0/0/38 { + description "t2-r13 ge-0/0/38 <--> ge-0/0/12 t1-r15"; + unit 0 { + family inet { + address 10.0.2.156/31; + } + } + } + ge-0/0/39 { + description "t2-r13 ge-0/0/39 <--> ge-0/0/12 t1-r16"; + unit 0 { + family inet { + address 10.0.2.158/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r14.conf b/configs/junos/t2-r14.conf new file mode 100644 index 0000000..c8c2122 --- /dev/null +++ b/configs/junos/t2-r14.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r14; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.21/32; + } + } + } + ge-0/0/0 { + description "t2-r14 ge-0/0/0 <--> ge-0/0/37 s1-r1"; + unit 0 { + family inet { + address 10.0.0.27/31; + } + } + } + ge-0/0/1 { + description "t2-r14 ge-0/0/1 <--> ge-0/0/37 s1-r2"; + unit 0 { + family inet { + address 10.0.0.59/31; + } + } + } + ge-0/0/2 { + description "t2-r14 ge-0/0/2 <--> ge-0/0/37 s1-r3"; + unit 0 { + family inet { + address 10.0.0.91/31; + } + } + } + ge-0/0/3 { + description "t2-r14 ge-0/0/3 <--> ge-0/0/37 s1-r4"; + unit 0 { + family inet { + address 10.0.0.123/31; + } + } + } + ge-0/0/4 { + description "t2-r14 ge-0/0/4 <--> ge-0/0/37 s1-r5"; + unit 0 { + family inet { + address 10.0.0.155/31; + } + } + } + ge-0/0/5 { + description "t2-r14 ge-0/0/5 <--> ge-0/0/37 s1-r6"; + unit 0 { + family inet { + address 10.0.0.187/31; + } + } + } + ge-0/0/6 { + description "t2-r14 ge-0/0/6 <--> ge-0/0/37 s1-r7"; + unit 0 { + family inet { + address 10.0.0.219/31; + } + } + } + ge-0/0/7 { + description "t2-r14 ge-0/0/7 <--> ge-0/0/37 s1-r8"; + unit 0 { + family inet { + address 10.0.0.251/31; + } + } + } + ge-0/0/24 { + description "t2-r14 ge-0/0/24 <--> ge-0/0/13 t1-r1"; + unit 0 { + family inet { + address 10.0.2.160/31; + } + } + } + ge-0/0/25 { + description "t2-r14 ge-0/0/25 <--> ge-0/0/13 t1-r2"; + unit 0 { + family inet { + address 10.0.2.162/31; + } + } + } + ge-0/0/26 { + description "t2-r14 ge-0/0/26 <--> ge-0/0/13 t1-r3"; + unit 0 { + family inet { + address 10.0.2.164/31; + } + } + } + ge-0/0/27 { + description "t2-r14 ge-0/0/27 <--> ge-0/0/13 t1-r4"; + unit 0 { + family inet { + address 10.0.2.166/31; + } + } + } + ge-0/0/28 { + description "t2-r14 ge-0/0/28 <--> ge-0/0/13 t1-r5"; + unit 0 { + family inet { + address 10.0.2.168/31; + } + } + } + ge-0/0/29 { + description "t2-r14 ge-0/0/29 <--> ge-0/0/13 t1-r6"; + unit 0 { + family inet { + address 10.0.2.170/31; + } + } + } + ge-0/0/30 { + description "t2-r14 ge-0/0/30 <--> ge-0/0/13 t1-r7"; + unit 0 { + family inet { + address 10.0.2.172/31; + } + } + } + ge-0/0/31 { + description "t2-r14 ge-0/0/31 <--> ge-0/0/13 t1-r8"; + unit 0 { + family inet { + address 10.0.2.174/31; + } + } + } + ge-0/0/32 { + description "t2-r14 ge-0/0/32 <--> ge-0/0/13 t1-r9"; + unit 0 { + family inet { + address 10.0.2.176/31; + } + } + } + ge-0/0/33 { + description "t2-r14 ge-0/0/33 <--> ge-0/0/13 t1-r10"; + unit 0 { + family inet { + address 10.0.2.178/31; + } + } + } + ge-0/0/34 { + description "t2-r14 ge-0/0/34 <--> ge-0/0/13 t1-r11"; + unit 0 { + family inet { + address 10.0.2.180/31; + } + } + } + ge-0/0/35 { + description "t2-r14 ge-0/0/35 <--> ge-0/0/13 t1-r12"; + unit 0 { + family inet { + address 10.0.2.182/31; + } + } + } + ge-0/0/36 { + description "t2-r14 ge-0/0/36 <--> ge-0/0/13 t1-r13"; + unit 0 { + family inet { + address 10.0.2.184/31; + } + } + } + ge-0/0/37 { + description "t2-r14 ge-0/0/37 <--> ge-0/0/13 t1-r14"; + unit 0 { + family inet { + address 10.0.2.186/31; + } + } + } + ge-0/0/38 { + description "t2-r14 ge-0/0/38 <--> ge-0/0/13 t1-r15"; + unit 0 { + family inet { + address 10.0.2.188/31; + } + } + } + ge-0/0/39 { + description "t2-r14 ge-0/0/39 <--> ge-0/0/13 t1-r16"; + unit 0 { + family inet { + address 10.0.2.190/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r15.conf b/configs/junos/t2-r15.conf new file mode 100644 index 0000000..42d8772 --- /dev/null +++ b/configs/junos/t2-r15.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r15; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.22/32; + } + } + } + ge-0/0/0 { + description "t2-r15 ge-0/0/0 <--> ge-0/0/38 s1-r1"; + unit 0 { + family inet { + address 10.0.0.29/31; + } + } + } + ge-0/0/1 { + description "t2-r15 ge-0/0/1 <--> ge-0/0/38 s1-r2"; + unit 0 { + family inet { + address 10.0.0.61/31; + } + } + } + ge-0/0/2 { + description "t2-r15 ge-0/0/2 <--> ge-0/0/38 s1-r3"; + unit 0 { + family inet { + address 10.0.0.93/31; + } + } + } + ge-0/0/3 { + description "t2-r15 ge-0/0/3 <--> ge-0/0/38 s1-r4"; + unit 0 { + family inet { + address 10.0.0.125/31; + } + } + } + ge-0/0/4 { + description "t2-r15 ge-0/0/4 <--> ge-0/0/38 s1-r5"; + unit 0 { + family inet { + address 10.0.0.157/31; + } + } + } + ge-0/0/5 { + description "t2-r15 ge-0/0/5 <--> ge-0/0/38 s1-r6"; + unit 0 { + family inet { + address 10.0.0.189/31; + } + } + } + ge-0/0/6 { + description "t2-r15 ge-0/0/6 <--> ge-0/0/38 s1-r7"; + unit 0 { + family inet { + address 10.0.0.221/31; + } + } + } + ge-0/0/7 { + description "t2-r15 ge-0/0/7 <--> ge-0/0/38 s1-r8"; + unit 0 { + family inet { + address 10.0.0.253/31; + } + } + } + ge-0/0/24 { + description "t2-r15 ge-0/0/24 <--> ge-0/0/14 t1-r1"; + unit 0 { + family inet { + address 10.0.2.192/31; + } + } + } + ge-0/0/25 { + description "t2-r15 ge-0/0/25 <--> ge-0/0/14 t1-r2"; + unit 0 { + family inet { + address 10.0.2.194/31; + } + } + } + ge-0/0/26 { + description "t2-r15 ge-0/0/26 <--> ge-0/0/14 t1-r3"; + unit 0 { + family inet { + address 10.0.2.196/31; + } + } + } + ge-0/0/27 { + description "t2-r15 ge-0/0/27 <--> ge-0/0/14 t1-r4"; + unit 0 { + family inet { + address 10.0.2.198/31; + } + } + } + ge-0/0/28 { + description "t2-r15 ge-0/0/28 <--> ge-0/0/14 t1-r5"; + unit 0 { + family inet { + address 10.0.2.200/31; + } + } + } + ge-0/0/29 { + description "t2-r15 ge-0/0/29 <--> ge-0/0/14 t1-r6"; + unit 0 { + family inet { + address 10.0.2.202/31; + } + } + } + ge-0/0/30 { + description "t2-r15 ge-0/0/30 <--> ge-0/0/14 t1-r7"; + unit 0 { + family inet { + address 10.0.2.204/31; + } + } + } + ge-0/0/31 { + description "t2-r15 ge-0/0/31 <--> ge-0/0/14 t1-r8"; + unit 0 { + family inet { + address 10.0.2.206/31; + } + } + } + ge-0/0/32 { + description "t2-r15 ge-0/0/32 <--> ge-0/0/14 t1-r9"; + unit 0 { + family inet { + address 10.0.2.208/31; + } + } + } + ge-0/0/33 { + description "t2-r15 ge-0/0/33 <--> ge-0/0/14 t1-r10"; + unit 0 { + family inet { + address 10.0.2.210/31; + } + } + } + ge-0/0/34 { + description "t2-r15 ge-0/0/34 <--> ge-0/0/14 t1-r11"; + unit 0 { + family inet { + address 10.0.2.212/31; + } + } + } + ge-0/0/35 { + description "t2-r15 ge-0/0/35 <--> ge-0/0/14 t1-r12"; + unit 0 { + family inet { + address 10.0.2.214/31; + } + } + } + ge-0/0/36 { + description "t2-r15 ge-0/0/36 <--> ge-0/0/14 t1-r13"; + unit 0 { + family inet { + address 10.0.2.216/31; + } + } + } + ge-0/0/37 { + description "t2-r15 ge-0/0/37 <--> ge-0/0/14 t1-r14"; + unit 0 { + family inet { + address 10.0.2.218/31; + } + } + } + ge-0/0/38 { + description "t2-r15 ge-0/0/38 <--> ge-0/0/14 t1-r15"; + unit 0 { + family inet { + address 10.0.2.220/31; + } + } + } + ge-0/0/39 { + description "t2-r15 ge-0/0/39 <--> ge-0/0/14 t1-r16"; + unit 0 { + family inet { + address 10.0.2.222/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r16.conf b/configs/junos/t2-r16.conf new file mode 100644 index 0000000..16d1998 --- /dev/null +++ b/configs/junos/t2-r16.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r16; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.23/32; + } + } + } + ge-0/0/0 { + description "t2-r16 ge-0/0/0 <--> ge-0/0/39 s1-r1"; + unit 0 { + family inet { + address 10.0.0.31/31; + } + } + } + ge-0/0/1 { + description "t2-r16 ge-0/0/1 <--> ge-0/0/39 s1-r2"; + unit 0 { + family inet { + address 10.0.0.63/31; + } + } + } + ge-0/0/2 { + description "t2-r16 ge-0/0/2 <--> ge-0/0/39 s1-r3"; + unit 0 { + family inet { + address 10.0.0.95/31; + } + } + } + ge-0/0/3 { + description "t2-r16 ge-0/0/3 <--> ge-0/0/39 s1-r4"; + unit 0 { + family inet { + address 10.0.0.127/31; + } + } + } + ge-0/0/4 { + description "t2-r16 ge-0/0/4 <--> ge-0/0/39 s1-r5"; + unit 0 { + family inet { + address 10.0.0.159/31; + } + } + } + ge-0/0/5 { + description "t2-r16 ge-0/0/5 <--> ge-0/0/39 s1-r6"; + unit 0 { + family inet { + address 10.0.0.191/31; + } + } + } + ge-0/0/6 { + description "t2-r16 ge-0/0/6 <--> ge-0/0/39 s1-r7"; + unit 0 { + family inet { + address 10.0.0.223/31; + } + } + } + ge-0/0/7 { + description "t2-r16 ge-0/0/7 <--> ge-0/0/39 s1-r8"; + unit 0 { + family inet { + address 10.0.0.255/31; + } + } + } + ge-0/0/24 { + description "t2-r16 ge-0/0/24 <--> ge-0/0/15 t1-r1"; + unit 0 { + family inet { + address 10.0.2.224/31; + } + } + } + ge-0/0/25 { + description "t2-r16 ge-0/0/25 <--> ge-0/0/15 t1-r2"; + unit 0 { + family inet { + address 10.0.2.226/31; + } + } + } + ge-0/0/26 { + description "t2-r16 ge-0/0/26 <--> ge-0/0/15 t1-r3"; + unit 0 { + family inet { + address 10.0.2.228/31; + } + } + } + ge-0/0/27 { + description "t2-r16 ge-0/0/27 <--> ge-0/0/15 t1-r4"; + unit 0 { + family inet { + address 10.0.2.230/31; + } + } + } + ge-0/0/28 { + description "t2-r16 ge-0/0/28 <--> ge-0/0/15 t1-r5"; + unit 0 { + family inet { + address 10.0.2.232/31; + } + } + } + ge-0/0/29 { + description "t2-r16 ge-0/0/29 <--> ge-0/0/15 t1-r6"; + unit 0 { + family inet { + address 10.0.2.234/31; + } + } + } + ge-0/0/30 { + description "t2-r16 ge-0/0/30 <--> ge-0/0/15 t1-r7"; + unit 0 { + family inet { + address 10.0.2.236/31; + } + } + } + ge-0/0/31 { + description "t2-r16 ge-0/0/31 <--> ge-0/0/15 t1-r8"; + unit 0 { + family inet { + address 10.0.2.238/31; + } + } + } + ge-0/0/32 { + description "t2-r16 ge-0/0/32 <--> ge-0/0/15 t1-r9"; + unit 0 { + family inet { + address 10.0.2.240/31; + } + } + } + ge-0/0/33 { + description "t2-r16 ge-0/0/33 <--> ge-0/0/15 t1-r10"; + unit 0 { + family inet { + address 10.0.2.242/31; + } + } + } + ge-0/0/34 { + description "t2-r16 ge-0/0/34 <--> ge-0/0/15 t1-r11"; + unit 0 { + family inet { + address 10.0.2.244/31; + } + } + } + ge-0/0/35 { + description "t2-r16 ge-0/0/35 <--> ge-0/0/15 t1-r12"; + unit 0 { + family inet { + address 10.0.2.246/31; + } + } + } + ge-0/0/36 { + description "t2-r16 ge-0/0/36 <--> ge-0/0/15 t1-r13"; + unit 0 { + family inet { + address 10.0.2.248/31; + } + } + } + ge-0/0/37 { + description "t2-r16 ge-0/0/37 <--> ge-0/0/15 t1-r14"; + unit 0 { + family inet { + address 10.0.2.250/31; + } + } + } + ge-0/0/38 { + description "t2-r16 ge-0/0/38 <--> ge-0/0/15 t1-r15"; + unit 0 { + family inet { + address 10.0.2.252/31; + } + } + } + ge-0/0/39 { + description "t2-r16 ge-0/0/39 <--> ge-0/0/15 t1-r16"; + unit 0 { + family inet { + address 10.0.2.254/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r2.conf b/configs/junos/t2-r2.conf new file mode 100644 index 0000000..c1491ec --- /dev/null +++ b/configs/junos/t2-r2.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r2; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.9/32; + } + } + } + ge-0/0/0 { + description "t2-r2 ge-0/0/0 <--> ge-0/0/25 s1-r1"; + unit 0 { + family inet { + address 10.0.0.3/31; + } + } + } + ge-0/0/1 { + description "t2-r2 ge-0/0/1 <--> ge-0/0/25 s1-r2"; + unit 0 { + family inet { + address 10.0.0.35/31; + } + } + } + ge-0/0/2 { + description "t2-r2 ge-0/0/2 <--> ge-0/0/25 s1-r3"; + unit 0 { + family inet { + address 10.0.0.67/31; + } + } + } + ge-0/0/3 { + description "t2-r2 ge-0/0/3 <--> ge-0/0/25 s1-r4"; + unit 0 { + family inet { + address 10.0.0.99/31; + } + } + } + ge-0/0/4 { + description "t2-r2 ge-0/0/4 <--> ge-0/0/25 s1-r5"; + unit 0 { + family inet { + address 10.0.0.131/31; + } + } + } + ge-0/0/5 { + description "t2-r2 ge-0/0/5 <--> ge-0/0/25 s1-r6"; + unit 0 { + family inet { + address 10.0.0.163/31; + } + } + } + ge-0/0/6 { + description "t2-r2 ge-0/0/6 <--> ge-0/0/25 s1-r7"; + unit 0 { + family inet { + address 10.0.0.195/31; + } + } + } + ge-0/0/7 { + description "t2-r2 ge-0/0/7 <--> ge-0/0/25 s1-r8"; + unit 0 { + family inet { + address 10.0.0.227/31; + } + } + } + ge-0/0/24 { + description "t2-r2 ge-0/0/24 <--> ge-0/0/1 t1-r1"; + unit 0 { + family inet { + address 10.0.1.32/31; + } + } + } + ge-0/0/25 { + description "t2-r2 ge-0/0/25 <--> ge-0/0/1 t1-r2"; + unit 0 { + family inet { + address 10.0.1.34/31; + } + } + } + ge-0/0/26 { + description "t2-r2 ge-0/0/26 <--> ge-0/0/1 t1-r3"; + unit 0 { + family inet { + address 10.0.1.36/31; + } + } + } + ge-0/0/27 { + description "t2-r2 ge-0/0/27 <--> ge-0/0/1 t1-r4"; + unit 0 { + family inet { + address 10.0.1.38/31; + } + } + } + ge-0/0/28 { + description "t2-r2 ge-0/0/28 <--> ge-0/0/1 t1-r5"; + unit 0 { + family inet { + address 10.0.1.40/31; + } + } + } + ge-0/0/29 { + description "t2-r2 ge-0/0/29 <--> ge-0/0/1 t1-r6"; + unit 0 { + family inet { + address 10.0.1.42/31; + } + } + } + ge-0/0/30 { + description "t2-r2 ge-0/0/30 <--> ge-0/0/1 t1-r7"; + unit 0 { + family inet { + address 10.0.1.44/31; + } + } + } + ge-0/0/31 { + description "t2-r2 ge-0/0/31 <--> ge-0/0/1 t1-r8"; + unit 0 { + family inet { + address 10.0.1.46/31; + } + } + } + ge-0/0/32 { + description "t2-r2 ge-0/0/32 <--> ge-0/0/1 t1-r9"; + unit 0 { + family inet { + address 10.0.1.48/31; + } + } + } + ge-0/0/33 { + description "t2-r2 ge-0/0/33 <--> ge-0/0/1 t1-r10"; + unit 0 { + family inet { + address 10.0.1.50/31; + } + } + } + ge-0/0/34 { + description "t2-r2 ge-0/0/34 <--> ge-0/0/1 t1-r11"; + unit 0 { + family inet { + address 10.0.1.52/31; + } + } + } + ge-0/0/35 { + description "t2-r2 ge-0/0/35 <--> ge-0/0/1 t1-r12"; + unit 0 { + family inet { + address 10.0.1.54/31; + } + } + } + ge-0/0/36 { + description "t2-r2 ge-0/0/36 <--> ge-0/0/1 t1-r13"; + unit 0 { + family inet { + address 10.0.1.56/31; + } + } + } + ge-0/0/37 { + description "t2-r2 ge-0/0/37 <--> ge-0/0/1 t1-r14"; + unit 0 { + family inet { + address 10.0.1.58/31; + } + } + } + ge-0/0/38 { + description "t2-r2 ge-0/0/38 <--> ge-0/0/1 t1-r15"; + unit 0 { + family inet { + address 10.0.1.60/31; + } + } + } + ge-0/0/39 { + description "t2-r2 ge-0/0/39 <--> ge-0/0/1 t1-r16"; + unit 0 { + family inet { + address 10.0.1.62/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r3.conf b/configs/junos/t2-r3.conf new file mode 100644 index 0000000..70705e4 --- /dev/null +++ b/configs/junos/t2-r3.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r3; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.10/32; + } + } + } + ge-0/0/0 { + description "t2-r3 ge-0/0/0 <--> ge-0/0/26 s1-r1"; + unit 0 { + family inet { + address 10.0.0.5/31; + } + } + } + ge-0/0/1 { + description "t2-r3 ge-0/0/1 <--> ge-0/0/26 s1-r2"; + unit 0 { + family inet { + address 10.0.0.37/31; + } + } + } + ge-0/0/2 { + description "t2-r3 ge-0/0/2 <--> ge-0/0/26 s1-r3"; + unit 0 { + family inet { + address 10.0.0.69/31; + } + } + } + ge-0/0/3 { + description "t2-r3 ge-0/0/3 <--> ge-0/0/26 s1-r4"; + unit 0 { + family inet { + address 10.0.0.101/31; + } + } + } + ge-0/0/4 { + description "t2-r3 ge-0/0/4 <--> ge-0/0/26 s1-r5"; + unit 0 { + family inet { + address 10.0.0.133/31; + } + } + } + ge-0/0/5 { + description "t2-r3 ge-0/0/5 <--> ge-0/0/26 s1-r6"; + unit 0 { + family inet { + address 10.0.0.165/31; + } + } + } + ge-0/0/6 { + description "t2-r3 ge-0/0/6 <--> ge-0/0/26 s1-r7"; + unit 0 { + family inet { + address 10.0.0.197/31; + } + } + } + ge-0/0/7 { + description "t2-r3 ge-0/0/7 <--> ge-0/0/26 s1-r8"; + unit 0 { + family inet { + address 10.0.0.229/31; + } + } + } + ge-0/0/24 { + description "t2-r3 ge-0/0/24 <--> ge-0/0/2 t1-r1"; + unit 0 { + family inet { + address 10.0.1.64/31; + } + } + } + ge-0/0/25 { + description "t2-r3 ge-0/0/25 <--> ge-0/0/2 t1-r2"; + unit 0 { + family inet { + address 10.0.1.66/31; + } + } + } + ge-0/0/26 { + description "t2-r3 ge-0/0/26 <--> ge-0/0/2 t1-r3"; + unit 0 { + family inet { + address 10.0.1.68/31; + } + } + } + ge-0/0/27 { + description "t2-r3 ge-0/0/27 <--> ge-0/0/2 t1-r4"; + unit 0 { + family inet { + address 10.0.1.70/31; + } + } + } + ge-0/0/28 { + description "t2-r3 ge-0/0/28 <--> ge-0/0/2 t1-r5"; + unit 0 { + family inet { + address 10.0.1.72/31; + } + } + } + ge-0/0/29 { + description "t2-r3 ge-0/0/29 <--> ge-0/0/2 t1-r6"; + unit 0 { + family inet { + address 10.0.1.74/31; + } + } + } + ge-0/0/30 { + description "t2-r3 ge-0/0/30 <--> ge-0/0/2 t1-r7"; + unit 0 { + family inet { + address 10.0.1.76/31; + } + } + } + ge-0/0/31 { + description "t2-r3 ge-0/0/31 <--> ge-0/0/2 t1-r8"; + unit 0 { + family inet { + address 10.0.1.78/31; + } + } + } + ge-0/0/32 { + description "t2-r3 ge-0/0/32 <--> ge-0/0/2 t1-r9"; + unit 0 { + family inet { + address 10.0.1.80/31; + } + } + } + ge-0/0/33 { + description "t2-r3 ge-0/0/33 <--> ge-0/0/2 t1-r10"; + unit 0 { + family inet { + address 10.0.1.82/31; + } + } + } + ge-0/0/34 { + description "t2-r3 ge-0/0/34 <--> ge-0/0/2 t1-r11"; + unit 0 { + family inet { + address 10.0.1.84/31; + } + } + } + ge-0/0/35 { + description "t2-r3 ge-0/0/35 <--> ge-0/0/2 t1-r12"; + unit 0 { + family inet { + address 10.0.1.86/31; + } + } + } + ge-0/0/36 { + description "t2-r3 ge-0/0/36 <--> ge-0/0/2 t1-r13"; + unit 0 { + family inet { + address 10.0.1.88/31; + } + } + } + ge-0/0/37 { + description "t2-r3 ge-0/0/37 <--> ge-0/0/2 t1-r14"; + unit 0 { + family inet { + address 10.0.1.90/31; + } + } + } + ge-0/0/38 { + description "t2-r3 ge-0/0/38 <--> ge-0/0/2 t1-r15"; + unit 0 { + family inet { + address 10.0.1.92/31; + } + } + } + ge-0/0/39 { + description "t2-r3 ge-0/0/39 <--> ge-0/0/2 t1-r16"; + unit 0 { + family inet { + address 10.0.1.94/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r4.conf b/configs/junos/t2-r4.conf new file mode 100644 index 0000000..e477958 --- /dev/null +++ b/configs/junos/t2-r4.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r4; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.11/32; + } + } + } + ge-0/0/0 { + description "t2-r4 ge-0/0/0 <--> ge-0/0/27 s1-r1"; + unit 0 { + family inet { + address 10.0.0.7/31; + } + } + } + ge-0/0/1 { + description "t2-r4 ge-0/0/1 <--> ge-0/0/27 s1-r2"; + unit 0 { + family inet { + address 10.0.0.39/31; + } + } + } + ge-0/0/2 { + description "t2-r4 ge-0/0/2 <--> ge-0/0/27 s1-r3"; + unit 0 { + family inet { + address 10.0.0.71/31; + } + } + } + ge-0/0/3 { + description "t2-r4 ge-0/0/3 <--> ge-0/0/27 s1-r4"; + unit 0 { + family inet { + address 10.0.0.103/31; + } + } + } + ge-0/0/4 { + description "t2-r4 ge-0/0/4 <--> ge-0/0/27 s1-r5"; + unit 0 { + family inet { + address 10.0.0.135/31; + } + } + } + ge-0/0/5 { + description "t2-r4 ge-0/0/5 <--> ge-0/0/27 s1-r6"; + unit 0 { + family inet { + address 10.0.0.167/31; + } + } + } + ge-0/0/6 { + description "t2-r4 ge-0/0/6 <--> ge-0/0/27 s1-r7"; + unit 0 { + family inet { + address 10.0.0.199/31; + } + } + } + ge-0/0/7 { + description "t2-r4 ge-0/0/7 <--> ge-0/0/27 s1-r8"; + unit 0 { + family inet { + address 10.0.0.231/31; + } + } + } + ge-0/0/24 { + description "t2-r4 ge-0/0/24 <--> ge-0/0/3 t1-r1"; + unit 0 { + family inet { + address 10.0.1.96/31; + } + } + } + ge-0/0/25 { + description "t2-r4 ge-0/0/25 <--> ge-0/0/3 t1-r2"; + unit 0 { + family inet { + address 10.0.1.98/31; + } + } + } + ge-0/0/26 { + description "t2-r4 ge-0/0/26 <--> ge-0/0/3 t1-r3"; + unit 0 { + family inet { + address 10.0.1.100/31; + } + } + } + ge-0/0/27 { + description "t2-r4 ge-0/0/27 <--> ge-0/0/3 t1-r4"; + unit 0 { + family inet { + address 10.0.1.102/31; + } + } + } + ge-0/0/28 { + description "t2-r4 ge-0/0/28 <--> ge-0/0/3 t1-r5"; + unit 0 { + family inet { + address 10.0.1.104/31; + } + } + } + ge-0/0/29 { + description "t2-r4 ge-0/0/29 <--> ge-0/0/3 t1-r6"; + unit 0 { + family inet { + address 10.0.1.106/31; + } + } + } + ge-0/0/30 { + description "t2-r4 ge-0/0/30 <--> ge-0/0/3 t1-r7"; + unit 0 { + family inet { + address 10.0.1.108/31; + } + } + } + ge-0/0/31 { + description "t2-r4 ge-0/0/31 <--> ge-0/0/3 t1-r8"; + unit 0 { + family inet { + address 10.0.1.110/31; + } + } + } + ge-0/0/32 { + description "t2-r4 ge-0/0/32 <--> ge-0/0/3 t1-r9"; + unit 0 { + family inet { + address 10.0.1.112/31; + } + } + } + ge-0/0/33 { + description "t2-r4 ge-0/0/33 <--> ge-0/0/3 t1-r10"; + unit 0 { + family inet { + address 10.0.1.114/31; + } + } + } + ge-0/0/34 { + description "t2-r4 ge-0/0/34 <--> ge-0/0/3 t1-r11"; + unit 0 { + family inet { + address 10.0.1.116/31; + } + } + } + ge-0/0/35 { + description "t2-r4 ge-0/0/35 <--> ge-0/0/3 t1-r12"; + unit 0 { + family inet { + address 10.0.1.118/31; + } + } + } + ge-0/0/36 { + description "t2-r4 ge-0/0/36 <--> ge-0/0/3 t1-r13"; + unit 0 { + family inet { + address 10.0.1.120/31; + } + } + } + ge-0/0/37 { + description "t2-r4 ge-0/0/37 <--> ge-0/0/3 t1-r14"; + unit 0 { + family inet { + address 10.0.1.122/31; + } + } + } + ge-0/0/38 { + description "t2-r4 ge-0/0/38 <--> ge-0/0/3 t1-r15"; + unit 0 { + family inet { + address 10.0.1.124/31; + } + } + } + ge-0/0/39 { + description "t2-r4 ge-0/0/39 <--> ge-0/0/3 t1-r16"; + unit 0 { + family inet { + address 10.0.1.126/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r5.conf b/configs/junos/t2-r5.conf new file mode 100644 index 0000000..6cc1193 --- /dev/null +++ b/configs/junos/t2-r5.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r5; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.12/32; + } + } + } + ge-0/0/0 { + description "t2-r5 ge-0/0/0 <--> ge-0/0/28 s1-r1"; + unit 0 { + family inet { + address 10.0.0.9/31; + } + } + } + ge-0/0/1 { + description "t2-r5 ge-0/0/1 <--> ge-0/0/28 s1-r2"; + unit 0 { + family inet { + address 10.0.0.41/31; + } + } + } + ge-0/0/2 { + description "t2-r5 ge-0/0/2 <--> ge-0/0/28 s1-r3"; + unit 0 { + family inet { + address 10.0.0.73/31; + } + } + } + ge-0/0/3 { + description "t2-r5 ge-0/0/3 <--> ge-0/0/28 s1-r4"; + unit 0 { + family inet { + address 10.0.0.105/31; + } + } + } + ge-0/0/4 { + description "t2-r5 ge-0/0/4 <--> ge-0/0/28 s1-r5"; + unit 0 { + family inet { + address 10.0.0.137/31; + } + } + } + ge-0/0/5 { + description "t2-r5 ge-0/0/5 <--> ge-0/0/28 s1-r6"; + unit 0 { + family inet { + address 10.0.0.169/31; + } + } + } + ge-0/0/6 { + description "t2-r5 ge-0/0/6 <--> ge-0/0/28 s1-r7"; + unit 0 { + family inet { + address 10.0.0.201/31; + } + } + } + ge-0/0/7 { + description "t2-r5 ge-0/0/7 <--> ge-0/0/28 s1-r8"; + unit 0 { + family inet { + address 10.0.0.233/31; + } + } + } + ge-0/0/24 { + description "t2-r5 ge-0/0/24 <--> ge-0/0/4 t1-r1"; + unit 0 { + family inet { + address 10.0.1.128/31; + } + } + } + ge-0/0/25 { + description "t2-r5 ge-0/0/25 <--> ge-0/0/4 t1-r2"; + unit 0 { + family inet { + address 10.0.1.130/31; + } + } + } + ge-0/0/26 { + description "t2-r5 ge-0/0/26 <--> ge-0/0/4 t1-r3"; + unit 0 { + family inet { + address 10.0.1.132/31; + } + } + } + ge-0/0/27 { + description "t2-r5 ge-0/0/27 <--> ge-0/0/4 t1-r4"; + unit 0 { + family inet { + address 10.0.1.134/31; + } + } + } + ge-0/0/28 { + description "t2-r5 ge-0/0/28 <--> ge-0/0/4 t1-r5"; + unit 0 { + family inet { + address 10.0.1.136/31; + } + } + } + ge-0/0/29 { + description "t2-r5 ge-0/0/29 <--> ge-0/0/4 t1-r6"; + unit 0 { + family inet { + address 10.0.1.138/31; + } + } + } + ge-0/0/30 { + description "t2-r5 ge-0/0/30 <--> ge-0/0/4 t1-r7"; + unit 0 { + family inet { + address 10.0.1.140/31; + } + } + } + ge-0/0/31 { + description "t2-r5 ge-0/0/31 <--> ge-0/0/4 t1-r8"; + unit 0 { + family inet { + address 10.0.1.142/31; + } + } + } + ge-0/0/32 { + description "t2-r5 ge-0/0/32 <--> ge-0/0/4 t1-r9"; + unit 0 { + family inet { + address 10.0.1.144/31; + } + } + } + ge-0/0/33 { + description "t2-r5 ge-0/0/33 <--> ge-0/0/4 t1-r10"; + unit 0 { + family inet { + address 10.0.1.146/31; + } + } + } + ge-0/0/34 { + description "t2-r5 ge-0/0/34 <--> ge-0/0/4 t1-r11"; + unit 0 { + family inet { + address 10.0.1.148/31; + } + } + } + ge-0/0/35 { + description "t2-r5 ge-0/0/35 <--> ge-0/0/4 t1-r12"; + unit 0 { + family inet { + address 10.0.1.150/31; + } + } + } + ge-0/0/36 { + description "t2-r5 ge-0/0/36 <--> ge-0/0/4 t1-r13"; + unit 0 { + family inet { + address 10.0.1.152/31; + } + } + } + ge-0/0/37 { + description "t2-r5 ge-0/0/37 <--> ge-0/0/4 t1-r14"; + unit 0 { + family inet { + address 10.0.1.154/31; + } + } + } + ge-0/0/38 { + description "t2-r5 ge-0/0/38 <--> ge-0/0/4 t1-r15"; + unit 0 { + family inet { + address 10.0.1.156/31; + } + } + } + ge-0/0/39 { + description "t2-r5 ge-0/0/39 <--> ge-0/0/4 t1-r16"; + unit 0 { + family inet { + address 10.0.1.158/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r6.conf b/configs/junos/t2-r6.conf new file mode 100644 index 0000000..70de7d9 --- /dev/null +++ b/configs/junos/t2-r6.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r6; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.13/32; + } + } + } + ge-0/0/0 { + description "t2-r6 ge-0/0/0 <--> ge-0/0/29 s1-r1"; + unit 0 { + family inet { + address 10.0.0.11/31; + } + } + } + ge-0/0/1 { + description "t2-r6 ge-0/0/1 <--> ge-0/0/29 s1-r2"; + unit 0 { + family inet { + address 10.0.0.43/31; + } + } + } + ge-0/0/2 { + description "t2-r6 ge-0/0/2 <--> ge-0/0/29 s1-r3"; + unit 0 { + family inet { + address 10.0.0.75/31; + } + } + } + ge-0/0/3 { + description "t2-r6 ge-0/0/3 <--> ge-0/0/29 s1-r4"; + unit 0 { + family inet { + address 10.0.0.107/31; + } + } + } + ge-0/0/4 { + description "t2-r6 ge-0/0/4 <--> ge-0/0/29 s1-r5"; + unit 0 { + family inet { + address 10.0.0.139/31; + } + } + } + ge-0/0/5 { + description "t2-r6 ge-0/0/5 <--> ge-0/0/29 s1-r6"; + unit 0 { + family inet { + address 10.0.0.171/31; + } + } + } + ge-0/0/6 { + description "t2-r6 ge-0/0/6 <--> ge-0/0/29 s1-r7"; + unit 0 { + family inet { + address 10.0.0.203/31; + } + } + } + ge-0/0/7 { + description "t2-r6 ge-0/0/7 <--> ge-0/0/29 s1-r8"; + unit 0 { + family inet { + address 10.0.0.235/31; + } + } + } + ge-0/0/24 { + description "t2-r6 ge-0/0/24 <--> ge-0/0/5 t1-r1"; + unit 0 { + family inet { + address 10.0.1.160/31; + } + } + } + ge-0/0/25 { + description "t2-r6 ge-0/0/25 <--> ge-0/0/5 t1-r2"; + unit 0 { + family inet { + address 10.0.1.162/31; + } + } + } + ge-0/0/26 { + description "t2-r6 ge-0/0/26 <--> ge-0/0/5 t1-r3"; + unit 0 { + family inet { + address 10.0.1.164/31; + } + } + } + ge-0/0/27 { + description "t2-r6 ge-0/0/27 <--> ge-0/0/5 t1-r4"; + unit 0 { + family inet { + address 10.0.1.166/31; + } + } + } + ge-0/0/28 { + description "t2-r6 ge-0/0/28 <--> ge-0/0/5 t1-r5"; + unit 0 { + family inet { + address 10.0.1.168/31; + } + } + } + ge-0/0/29 { + description "t2-r6 ge-0/0/29 <--> ge-0/0/5 t1-r6"; + unit 0 { + family inet { + address 10.0.1.170/31; + } + } + } + ge-0/0/30 { + description "t2-r6 ge-0/0/30 <--> ge-0/0/5 t1-r7"; + unit 0 { + family inet { + address 10.0.1.172/31; + } + } + } + ge-0/0/31 { + description "t2-r6 ge-0/0/31 <--> ge-0/0/5 t1-r8"; + unit 0 { + family inet { + address 10.0.1.174/31; + } + } + } + ge-0/0/32 { + description "t2-r6 ge-0/0/32 <--> ge-0/0/5 t1-r9"; + unit 0 { + family inet { + address 10.0.1.176/31; + } + } + } + ge-0/0/33 { + description "t2-r6 ge-0/0/33 <--> ge-0/0/5 t1-r10"; + unit 0 { + family inet { + address 10.0.1.178/31; + } + } + } + ge-0/0/34 { + description "t2-r6 ge-0/0/34 <--> ge-0/0/5 t1-r11"; + unit 0 { + family inet { + address 10.0.1.180/31; + } + } + } + ge-0/0/35 { + description "t2-r6 ge-0/0/35 <--> ge-0/0/5 t1-r12"; + unit 0 { + family inet { + address 10.0.1.182/31; + } + } + } + ge-0/0/36 { + description "t2-r6 ge-0/0/36 <--> ge-0/0/5 t1-r13"; + unit 0 { + family inet { + address 10.0.1.184/31; + } + } + } + ge-0/0/37 { + description "t2-r6 ge-0/0/37 <--> ge-0/0/5 t1-r14"; + unit 0 { + family inet { + address 10.0.1.186/31; + } + } + } + ge-0/0/38 { + description "t2-r6 ge-0/0/38 <--> ge-0/0/5 t1-r15"; + unit 0 { + family inet { + address 10.0.1.188/31; + } + } + } + ge-0/0/39 { + description "t2-r6 ge-0/0/39 <--> ge-0/0/5 t1-r16"; + unit 0 { + family inet { + address 10.0.1.190/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r7.conf b/configs/junos/t2-r7.conf new file mode 100644 index 0000000..eb0887b --- /dev/null +++ b/configs/junos/t2-r7.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r7; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.14/32; + } + } + } + ge-0/0/0 { + description "t2-r7 ge-0/0/0 <--> ge-0/0/30 s1-r1"; + unit 0 { + family inet { + address 10.0.0.13/31; + } + } + } + ge-0/0/1 { + description "t2-r7 ge-0/0/1 <--> ge-0/0/30 s1-r2"; + unit 0 { + family inet { + address 10.0.0.45/31; + } + } + } + ge-0/0/2 { + description "t2-r7 ge-0/0/2 <--> ge-0/0/30 s1-r3"; + unit 0 { + family inet { + address 10.0.0.77/31; + } + } + } + ge-0/0/3 { + description "t2-r7 ge-0/0/3 <--> ge-0/0/30 s1-r4"; + unit 0 { + family inet { + address 10.0.0.109/31; + } + } + } + ge-0/0/4 { + description "t2-r7 ge-0/0/4 <--> ge-0/0/30 s1-r5"; + unit 0 { + family inet { + address 10.0.0.141/31; + } + } + } + ge-0/0/5 { + description "t2-r7 ge-0/0/5 <--> ge-0/0/30 s1-r6"; + unit 0 { + family inet { + address 10.0.0.173/31; + } + } + } + ge-0/0/6 { + description "t2-r7 ge-0/0/6 <--> ge-0/0/30 s1-r7"; + unit 0 { + family inet { + address 10.0.0.205/31; + } + } + } + ge-0/0/7 { + description "t2-r7 ge-0/0/7 <--> ge-0/0/30 s1-r8"; + unit 0 { + family inet { + address 10.0.0.237/31; + } + } + } + ge-0/0/24 { + description "t2-r7 ge-0/0/24 <--> ge-0/0/6 t1-r1"; + unit 0 { + family inet { + address 10.0.1.192/31; + } + } + } + ge-0/0/25 { + description "t2-r7 ge-0/0/25 <--> ge-0/0/6 t1-r2"; + unit 0 { + family inet { + address 10.0.1.194/31; + } + } + } + ge-0/0/26 { + description "t2-r7 ge-0/0/26 <--> ge-0/0/6 t1-r3"; + unit 0 { + family inet { + address 10.0.1.196/31; + } + } + } + ge-0/0/27 { + description "t2-r7 ge-0/0/27 <--> ge-0/0/6 t1-r4"; + unit 0 { + family inet { + address 10.0.1.198/31; + } + } + } + ge-0/0/28 { + description "t2-r7 ge-0/0/28 <--> ge-0/0/6 t1-r5"; + unit 0 { + family inet { + address 10.0.1.200/31; + } + } + } + ge-0/0/29 { + description "t2-r7 ge-0/0/29 <--> ge-0/0/6 t1-r6"; + unit 0 { + family inet { + address 10.0.1.202/31; + } + } + } + ge-0/0/30 { + description "t2-r7 ge-0/0/30 <--> ge-0/0/6 t1-r7"; + unit 0 { + family inet { + address 10.0.1.204/31; + } + } + } + ge-0/0/31 { + description "t2-r7 ge-0/0/31 <--> ge-0/0/6 t1-r8"; + unit 0 { + family inet { + address 10.0.1.206/31; + } + } + } + ge-0/0/32 { + description "t2-r7 ge-0/0/32 <--> ge-0/0/6 t1-r9"; + unit 0 { + family inet { + address 10.0.1.208/31; + } + } + } + ge-0/0/33 { + description "t2-r7 ge-0/0/33 <--> ge-0/0/6 t1-r10"; + unit 0 { + family inet { + address 10.0.1.210/31; + } + } + } + ge-0/0/34 { + description "t2-r7 ge-0/0/34 <--> ge-0/0/6 t1-r11"; + unit 0 { + family inet { + address 10.0.1.212/31; + } + } + } + ge-0/0/35 { + description "t2-r7 ge-0/0/35 <--> ge-0/0/6 t1-r12"; + unit 0 { + family inet { + address 10.0.1.214/31; + } + } + } + ge-0/0/36 { + description "t2-r7 ge-0/0/36 <--> ge-0/0/6 t1-r13"; + unit 0 { + family inet { + address 10.0.1.216/31; + } + } + } + ge-0/0/37 { + description "t2-r7 ge-0/0/37 <--> ge-0/0/6 t1-r14"; + unit 0 { + family inet { + address 10.0.1.218/31; + } + } + } + ge-0/0/38 { + description "t2-r7 ge-0/0/38 <--> ge-0/0/6 t1-r15"; + unit 0 { + family inet { + address 10.0.1.220/31; + } + } + } + ge-0/0/39 { + description "t2-r7 ge-0/0/39 <--> ge-0/0/6 t1-r16"; + unit 0 { + family inet { + address 10.0.1.222/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r8.conf b/configs/junos/t2-r8.conf new file mode 100644 index 0000000..09e9623 --- /dev/null +++ b/configs/junos/t2-r8.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r8; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.15/32; + } + } + } + ge-0/0/0 { + description "t2-r8 ge-0/0/0 <--> ge-0/0/31 s1-r1"; + unit 0 { + family inet { + address 10.0.0.15/31; + } + } + } + ge-0/0/1 { + description "t2-r8 ge-0/0/1 <--> ge-0/0/31 s1-r2"; + unit 0 { + family inet { + address 10.0.0.47/31; + } + } + } + ge-0/0/2 { + description "t2-r8 ge-0/0/2 <--> ge-0/0/31 s1-r3"; + unit 0 { + family inet { + address 10.0.0.79/31; + } + } + } + ge-0/0/3 { + description "t2-r8 ge-0/0/3 <--> ge-0/0/31 s1-r4"; + unit 0 { + family inet { + address 10.0.0.111/31; + } + } + } + ge-0/0/4 { + description "t2-r8 ge-0/0/4 <--> ge-0/0/31 s1-r5"; + unit 0 { + family inet { + address 10.0.0.143/31; + } + } + } + ge-0/0/5 { + description "t2-r8 ge-0/0/5 <--> ge-0/0/31 s1-r6"; + unit 0 { + family inet { + address 10.0.0.175/31; + } + } + } + ge-0/0/6 { + description "t2-r8 ge-0/0/6 <--> ge-0/0/31 s1-r7"; + unit 0 { + family inet { + address 10.0.0.207/31; + } + } + } + ge-0/0/7 { + description "t2-r8 ge-0/0/7 <--> ge-0/0/31 s1-r8"; + unit 0 { + family inet { + address 10.0.0.239/31; + } + } + } + ge-0/0/24 { + description "t2-r8 ge-0/0/24 <--> ge-0/0/7 t1-r1"; + unit 0 { + family inet { + address 10.0.1.224/31; + } + } + } + ge-0/0/25 { + description "t2-r8 ge-0/0/25 <--> ge-0/0/7 t1-r2"; + unit 0 { + family inet { + address 10.0.1.226/31; + } + } + } + ge-0/0/26 { + description "t2-r8 ge-0/0/26 <--> ge-0/0/7 t1-r3"; + unit 0 { + family inet { + address 10.0.1.228/31; + } + } + } + ge-0/0/27 { + description "t2-r8 ge-0/0/27 <--> ge-0/0/7 t1-r4"; + unit 0 { + family inet { + address 10.0.1.230/31; + } + } + } + ge-0/0/28 { + description "t2-r8 ge-0/0/28 <--> ge-0/0/7 t1-r5"; + unit 0 { + family inet { + address 10.0.1.232/31; + } + } + } + ge-0/0/29 { + description "t2-r8 ge-0/0/29 <--> ge-0/0/7 t1-r6"; + unit 0 { + family inet { + address 10.0.1.234/31; + } + } + } + ge-0/0/30 { + description "t2-r8 ge-0/0/30 <--> ge-0/0/7 t1-r7"; + unit 0 { + family inet { + address 10.0.1.236/31; + } + } + } + ge-0/0/31 { + description "t2-r8 ge-0/0/31 <--> ge-0/0/7 t1-r8"; + unit 0 { + family inet { + address 10.0.1.238/31; + } + } + } + ge-0/0/32 { + description "t2-r8 ge-0/0/32 <--> ge-0/0/7 t1-r9"; + unit 0 { + family inet { + address 10.0.1.240/31; + } + } + } + ge-0/0/33 { + description "t2-r8 ge-0/0/33 <--> ge-0/0/7 t1-r10"; + unit 0 { + family inet { + address 10.0.1.242/31; + } + } + } + ge-0/0/34 { + description "t2-r8 ge-0/0/34 <--> ge-0/0/7 t1-r11"; + unit 0 { + family inet { + address 10.0.1.244/31; + } + } + } + ge-0/0/35 { + description "t2-r8 ge-0/0/35 <--> ge-0/0/7 t1-r12"; + unit 0 { + family inet { + address 10.0.1.246/31; + } + } + } + ge-0/0/36 { + description "t2-r8 ge-0/0/36 <--> ge-0/0/7 t1-r13"; + unit 0 { + family inet { + address 10.0.1.248/31; + } + } + } + ge-0/0/37 { + description "t2-r8 ge-0/0/37 <--> ge-0/0/7 t1-r14"; + unit 0 { + family inet { + address 10.0.1.250/31; + } + } + } + ge-0/0/38 { + description "t2-r8 ge-0/0/38 <--> ge-0/0/7 t1-r15"; + unit 0 { + family inet { + address 10.0.1.252/31; + } + } + } + ge-0/0/39 { + description "t2-r8 ge-0/0/39 <--> ge-0/0/7 t1-r16"; + unit 0 { + family inet { + address 10.0.1.254/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/configs/junos/t2-r9.conf b/configs/junos/t2-r9.conf new file mode 100644 index 0000000..740aa8b --- /dev/null +++ b/configs/junos/t2-r9.conf @@ -0,0 +1,258 @@ +system { + host-name t2-r9; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address 172.16.0.16/32; + } + } + } + ge-0/0/0 { + description "t2-r9 ge-0/0/0 <--> ge-0/0/32 s1-r1"; + unit 0 { + family inet { + address 10.0.0.17/31; + } + } + } + ge-0/0/1 { + description "t2-r9 ge-0/0/1 <--> ge-0/0/32 s1-r2"; + unit 0 { + family inet { + address 10.0.0.49/31; + } + } + } + ge-0/0/2 { + description "t2-r9 ge-0/0/2 <--> ge-0/0/32 s1-r3"; + unit 0 { + family inet { + address 10.0.0.81/31; + } + } + } + ge-0/0/3 { + description "t2-r9 ge-0/0/3 <--> ge-0/0/32 s1-r4"; + unit 0 { + family inet { + address 10.0.0.113/31; + } + } + } + ge-0/0/4 { + description "t2-r9 ge-0/0/4 <--> ge-0/0/32 s1-r5"; + unit 0 { + family inet { + address 10.0.0.145/31; + } + } + } + ge-0/0/5 { + description "t2-r9 ge-0/0/5 <--> ge-0/0/32 s1-r6"; + unit 0 { + family inet { + address 10.0.0.177/31; + } + } + } + ge-0/0/6 { + description "t2-r9 ge-0/0/6 <--> ge-0/0/32 s1-r7"; + unit 0 { + family inet { + address 10.0.0.209/31; + } + } + } + ge-0/0/7 { + description "t2-r9 ge-0/0/7 <--> ge-0/0/32 s1-r8"; + unit 0 { + family inet { + address 10.0.0.241/31; + } + } + } + ge-0/0/24 { + description "t2-r9 ge-0/0/24 <--> ge-0/0/8 t1-r1"; + unit 0 { + family inet { + address 10.0.2.0/31; + } + } + } + ge-0/0/25 { + description "t2-r9 ge-0/0/25 <--> ge-0/0/8 t1-r2"; + unit 0 { + family inet { + address 10.0.2.2/31; + } + } + } + ge-0/0/26 { + description "t2-r9 ge-0/0/26 <--> ge-0/0/8 t1-r3"; + unit 0 { + family inet { + address 10.0.2.4/31; + } + } + } + ge-0/0/27 { + description "t2-r9 ge-0/0/27 <--> ge-0/0/8 t1-r4"; + unit 0 { + family inet { + address 10.0.2.6/31; + } + } + } + ge-0/0/28 { + description "t2-r9 ge-0/0/28 <--> ge-0/0/8 t1-r5"; + unit 0 { + family inet { + address 10.0.2.8/31; + } + } + } + ge-0/0/29 { + description "t2-r9 ge-0/0/29 <--> ge-0/0/8 t1-r6"; + unit 0 { + family inet { + address 10.0.2.10/31; + } + } + } + ge-0/0/30 { + description "t2-r9 ge-0/0/30 <--> ge-0/0/8 t1-r7"; + unit 0 { + family inet { + address 10.0.2.12/31; + } + } + } + ge-0/0/31 { + description "t2-r9 ge-0/0/31 <--> ge-0/0/8 t1-r8"; + unit 0 { + family inet { + address 10.0.2.14/31; + } + } + } + ge-0/0/32 { + description "t2-r9 ge-0/0/32 <--> ge-0/0/8 t1-r9"; + unit 0 { + family inet { + address 10.0.2.16/31; + } + } + } + ge-0/0/33 { + description "t2-r9 ge-0/0/33 <--> ge-0/0/8 t1-r10"; + unit 0 { + family inet { + address 10.0.2.18/31; + } + } + } + ge-0/0/34 { + description "t2-r9 ge-0/0/34 <--> ge-0/0/8 t1-r11"; + unit 0 { + family inet { + address 10.0.2.20/31; + } + } + } + ge-0/0/35 { + description "t2-r9 ge-0/0/35 <--> ge-0/0/8 t1-r12"; + unit 0 { + family inet { + address 10.0.2.22/31; + } + } + } + ge-0/0/36 { + description "t2-r9 ge-0/0/36 <--> ge-0/0/8 t1-r13"; + unit 0 { + family inet { + address 10.0.2.24/31; + } + } + } + ge-0/0/37 { + description "t2-r9 ge-0/0/37 <--> ge-0/0/8 t1-r14"; + unit 0 { + family inet { + address 10.0.2.26/31; + } + } + } + ge-0/0/38 { + description "t2-r9 ge-0/0/38 <--> ge-0/0/8 t1-r15"; + unit 0 { + family inet { + address 10.0.2.28/31; + } + } + } + ge-0/0/39 { + description "t2-r9 ge-0/0/39 <--> ge-0/0/8 t1-r16"; + unit 0 { + family inet { + address 10.0.2.30/31; + } + } + } +} +protocols { + ospf { + area 0.0.0.0 { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + interface ge-0/0/5.0; + interface ge-0/0/6.0; + interface ge-0/0/7.0; + interface ge-0/0/24.0; + interface ge-0/0/25.0; + interface ge-0/0/26.0; + interface ge-0/0/27.0; + interface ge-0/0/28.0; + interface ge-0/0/29.0; + interface ge-0/0/30.0; + interface ge-0/0/31.0; + interface ge-0/0/32.0; + interface ge-0/0/33.0; + interface ge-0/0/34.0; + interface ge-0/0/35.0; + interface ge-0/0/36.0; + interface ge-0/0/37.0; + interface ge-0/0/38.0; + interface ge-0/0/39.0; + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file diff --git a/templates/cisco_ios.j2 b/templates/cisco_ios.j2 new file mode 100644 index 0000000..06e2ac9 --- /dev/null +++ b/templates/cisco_ios.j2 @@ -0,0 +1,107 @@ +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +no service password-recovery +! +hostname {{ hostname }} +! +boot-start-marker +boot-end-marker +! +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name yourdomain.com +ip cef +no ipv6 cef +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +cts logging verbose +license udi pid C897VA-K9 sn FCZ202990B6 +! +! +username neteng privilege 15 secret Cisco1 +! +! +! +! +! +ip ssh version 2 +! +! +! +! +! +! +interface Loopback0 + ip address {{ mgmt_ip }} 255.255.255.255 +! +{% for interface_index, interface_data in interfaces.items() %} +interface GigabitEthernet{% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_index'] }}{% else %}{{ interface_data['b_end_index'] }}{% endif %} + description "{{ hostname }} GigabitEthernet{% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_index'] }}{% else %}{{ interface_data['b_end_index'] }}{% endif %} <--> GigabitEthernet{% if hostname == interface_data['a_end'] %}{{ interface_data['b_end_index'] }} {{ interface_data['b_end'] }}{% else %}{{ interface_data['a_end_index'] }} {{ interface_data['a_end'] }}{% endif %}" + ip address {% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_ip'] }}{% else %}{{ interface_data['b_end_ip'] }}{% endif %} 255.255.255.254 + duplex auto + speed auto + no shut +! +{% endfor %} +interface Vlan1 + no ip address +! +router ospf 1 + router-id {{ mgmt_ip }} + passive-interface Loopback0 + {% for interface_index, interface_data in interfaces.items() %} + network {{ interface_data['a_end_ip'] }} 0.0.0.1 area 0 + {% endfor %} +! +ip forward-protocol nd +no ip http server +no ip http secure-server +! +! +! +! +! +! +! +! +line con 0 + login local + no modem enable +line aux 0 +line vty 0 4 + login local + transport input ssh +line vty 5 15 + login local + transport input ssh +! +! \ No newline at end of file diff --git a/templates/junos.j2 b/templates/junos.j2 new file mode 100644 index 0000000..fe6413f --- /dev/null +++ b/templates/junos.j2 @@ -0,0 +1,55 @@ +system { + host-name {{ hostname }}; + root-authentication { + plain-text-password-value "Juniper1"; + } + login { + user neteng { + uid 2000; + class super-user; + authentication { + plain-text-password-value "Juniper1"; + } + } + } + services { + ssh; + netconf { + ssh; + } + } +} +interfaces { + lo0 { + unit 0 { + family inet { + address {{ mgmt_ip }}/32; + } + } + } +{% for interface_index, interface_data in interfaces.items() %} + ge-0/0/{% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_index'] }}{% else %}{{ interface_data['b_end_index'] }}{% endif %} { + description "{{ hostname }} ge-0/0/{% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_index'] }}{% else %}{{ interface_data['b_end_index'] }}{% endif %} <--> ge-0/0/{% if hostname == interface_data['a_end'] %}{{ interface_data['b_end_index'] }} {{ interface_data['b_end'] }}{% else %}{{ interface_data['a_end_index'] }} {{ interface_data['a_end'] }}{% endif %}"; + unit 0 { + family inet { + address {% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_ip'] }}{% else %}{{ interface_data['b_end_ip'] }}{% endif %}/31; + } + } + } +{% endfor %} +} +protocols { + ospf { + area 0.0.0.0 { + {% for interface_index, interface_data in interfaces.items() %} + interface ge-0/0/{% if hostname == interface_data['a_end'] %}{{ interface_data['a_end_index'] }}{% else %}{{ interface_data['b_end_index'] }}{% endif %}.0; + {% endfor %} + interface lo0.0 { + passive; + } + } + } + lldp { + interface all; + } +} \ No newline at end of file