258 lines
5.3 KiB
Markdown
258 lines
5.3 KiB
Markdown
# Example Cisco Configuration Templates
|
|
|
|
## Basic Switch Configuration
|
|
|
|
```json
|
|
{
|
|
"hostname": "SWITCH-01",
|
|
"vlans": [
|
|
{"id": 1, "name": "MANAGEMENT"},
|
|
{"id": 10, "name": "USERS"},
|
|
{"id": 20, "name": "SERVERS"},
|
|
{"id": 30, "name": "VOICE"},
|
|
{"id": 99, "name": "QUARANTINE"}
|
|
],
|
|
"interfaces": [
|
|
{
|
|
"name": "Vlan1",
|
|
"description": "Management VLAN",
|
|
"type": "layer3",
|
|
"ip_address": "192.168.1.10/24",
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet0/1",
|
|
"description": "Access Port - User Workstation",
|
|
"type": "access",
|
|
"vlan": 10,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet0/2",
|
|
"description": "Access Port - Server",
|
|
"type": "access",
|
|
"vlan": 20,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet0/3",
|
|
"description": "Access Port - VoIP Phone",
|
|
"type": "access",
|
|
"vlan": 30,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet0/24",
|
|
"description": "Uplink to Core Switch",
|
|
"type": "trunk",
|
|
"trunk_vlans": [1, 10, 20, 30],
|
|
"enabled": true
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Router with NAT Configuration
|
|
|
|
```json
|
|
{
|
|
"hostname": "ROUTER-01",
|
|
"interfaces": [
|
|
{
|
|
"name": "GigabitEthernet0/0",
|
|
"description": "Inside LAN Interface",
|
|
"ip_address": "192.168.1.1/24",
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet0/1",
|
|
"description": "Outside WAN Interface",
|
|
"ip_address": "203.0.113.1/24",
|
|
"enabled": true
|
|
}
|
|
],
|
|
"routes": [
|
|
{
|
|
"destination": "0.0.0.0/0",
|
|
"gateway": "203.0.113.254",
|
|
"metric": 1
|
|
}
|
|
],
|
|
"nat": {
|
|
"inside_interface": "GigabitEthernet0/0",
|
|
"outside_interface": "GigabitEthernet0/1",
|
|
"inside_addresses": ["192.168.1.0/24"],
|
|
"outside_address": "203.0.113.1"
|
|
},
|
|
"acls": [
|
|
{
|
|
"name": "OUTSIDE_IN",
|
|
"type": "extended",
|
|
"rules": [
|
|
{
|
|
"action": "permit",
|
|
"protocol": "tcp",
|
|
"source": "any",
|
|
"destination": "203.0.113.1",
|
|
"port": 80
|
|
},
|
|
{
|
|
"action": "permit",
|
|
"protocol": "tcp",
|
|
"source": "any",
|
|
"destination": "203.0.113.1",
|
|
"port": 443
|
|
},
|
|
{
|
|
"action": "deny",
|
|
"protocol": "ip",
|
|
"source": "any",
|
|
"destination": "any"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## CCNA Lab: OSPF Routing
|
|
|
|
```json
|
|
{
|
|
"hostname": "R1",
|
|
"interfaces": [
|
|
{
|
|
"name": "GigabitEthernet0/0",
|
|
"description": "Link to R2",
|
|
"ip_address": "10.0.0.1/24",
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet0/1",
|
|
"description": "Link to R3",
|
|
"ip_address": "10.0.1.1/24",
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "Loopback0",
|
|
"description": "Router ID",
|
|
"ip_address": "192.168.1.1/32",
|
|
"enabled": true
|
|
}
|
|
],
|
|
"routes": [
|
|
{
|
|
"destination": "10.0.2.0/24",
|
|
"gateway": "10.0.0.2",
|
|
"metric": 10
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Advanced: Multi-VLAN with ACLs
|
|
|
|
```json
|
|
{
|
|
"hostname": "SWITCH-02",
|
|
"vlans": [
|
|
{"id": 100, "name": "ADMIN"},
|
|
{"id": 101, "name": "ACCOUNTING"},
|
|
{"id": 102, "name": "ENGINEERING"},
|
|
{"id": 200, "name": "GUEST"}
|
|
],
|
|
"interfaces": [
|
|
{
|
|
"name": "GigabitEthernet1/0/1",
|
|
"description": "Admin Workstation",
|
|
"type": "access",
|
|
"vlan": 100,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet1/0/2",
|
|
"description": "Accounting Workstation",
|
|
"type": "access",
|
|
"vlan": 101,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet1/0/3",
|
|
"description": "Engineering Workstation",
|
|
"type": "access",
|
|
"vlan": 102,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet1/0/4",
|
|
"description": "Guest WiFi Access Point",
|
|
"type": "access",
|
|
"vlan": 200,
|
|
"enabled": true
|
|
},
|
|
{
|
|
"name": "GigabitEthernet1/0/47",
|
|
"description": "Uplink Trunk",
|
|
"type": "trunk",
|
|
"trunk_vlans": [100, 101, 102, 200],
|
|
"enabled": true
|
|
}
|
|
],
|
|
"acls": [
|
|
{
|
|
"name": "VLAN_ISOLATION",
|
|
"type": "extended",
|
|
"rules": [
|
|
{
|
|
"action": "permit",
|
|
"protocol": "ip",
|
|
"source": "192.168.101.0/24",
|
|
"destination": "192.168.101.0/24"
|
|
},
|
|
{
|
|
"action": "deny",
|
|
"protocol": "ip",
|
|
"source": "192.168.101.0/24",
|
|
"destination": "192.168.102.0/24"
|
|
},
|
|
{
|
|
"action": "permit",
|
|
"protocol": "ip",
|
|
"source": "any",
|
|
"destination": "any"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Preconfigured Lab Presets (V1 Feature)
|
|
|
|
Coming soon:
|
|
- [ ] CCNA Topology (3 routers, 2 switches)
|
|
- [ ] CCNP Advanced (OSPF, EIGRP, redistribution)
|
|
- [ ] Network Segmentation (DMZ + internal VLANs)
|
|
- [ ] VoIP Configuration (CallManager-ready)
|
|
- [ ] Data Center Access Layer
|
|
|
|
## Importing Existing Configs
|
|
|
|
Future feature to:
|
|
1. Parse existing running-config
|
|
2. Extract VLAN, interface, route info
|
|
3. Populate config builder GUI
|
|
4. Allow modifications & re-push
|
|
|
|
Example:
|
|
```python
|
|
# CLI utils (future)
|
|
def parse_show_running_config(output: str) -> dict:
|
|
"""
|
|
Parse Cisco 'show running-config' output
|
|
Extract VLANs, interfaces, routes, ACLs
|
|
Return as config_data dict
|
|
"""
|
|
pass
|
|
```
|