Skip to content

Commit 8c90ece

Browse files
authored
add support for ipv6 and dual stack (#98)
* migrate underlay node types to iol * add ipv6 addressing on gateway * initial commit for v6 support * update templates to support ipv6 * update controller template attachment to support v6 * udpates for v6 * update v6 addressing on gw * add support for edge ipv6 in config groups * updates for ipv6 support * reformat files * fix template for v6 * fix description * revert pytest changes * add correct validator fqdn mapping for dual stack topologies * update for ipv6 support * update for ipv6 support * remove test var * update variables names * fix format
1 parent 45d3fd8 commit 8c90ece

File tree

1,225 files changed

+272373
-291
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,225 files changed

+272373
-291
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@
77
- Update validator cloud-init to support 20.18 release
88
- In restore task, add option to change the software version of control components and SD-WAN/SD-Routing edges during restore
99
- Increase SD-WAN Manager CPU count from 8 to 10
10-
- In setup and restore tasks, and check to make sure user is not using default credentials for SD-WAN Manager
10+
- In setup and restore tasks, add check to make sure user is not using default credentials for SD-WAN Manager
1111
- Fix issue where add task fails with traceback if user removed default device templates/configuration groups
12+
- Change Gateway node type from c8000v to IOL XE
13+
- Change transports node type from unmanaged_switch to IOL L2 XE
14+
- Add support for IPv6 and dual stack overlays
1215

1316
# Catalyst SD-WAN Lab 2.0.15 [Feb 25, 2025]
1417

README.md

Lines changed: 67 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,10 @@ This task can also delete existing image definitions to clean up old SD-WAN rele
188188

189189
This task:
190190

191-
1. Defines four/five subnets:
192-
- VPN0 - 172.16.0.0/24
193-
- INET - 172.16.1.0/24
194-
- MPLS - 172.16.2.0/24
191+
1. Defines subnets:
192+
- VPN0 - 172.16.0.0/24 / fc00:172:16::/64
193+
- INET - 172.16.1.0/24 / fc00:172:16:1:/64
194+
- MPLS - 172.16.2.0/24 / fc00:172:16:2:/64
195195
- External Connector - in bridge mode, this subnet is defined by task-specific parameters and is used to provide external reachability to SD-WAN Manager.
196196
- Internet Connector - in NAT mode, this subnet provides Internet connectivity for Internet transport and is same as CML subnet
197197
2. Deploys basic SD-WAN topology with:
@@ -205,29 +205,73 @@ This task:
205205

206206
You should run this task to deploy a new lab with control plane configured and build any WAN Edge topology you like.
207207

208-
This task has several task-specific parameters, including software version that you want to run on the control components.
208+
This task has several task-specific parameters, including software version that you want to run on the control components. The ip_type option allows you to select if overlay will be deployed as IPv4-only (v4 - default), IPv6-only (v6) or dual stack (dual).
209209

210210
(venv) tzarski:~$sdwan-lab deploy -h
211211

212212
Usage: sdwan-lab deploy [OPTIONS] <software-version>
213213

214-
215-
positional arguments:
216-
<software-version> Software version that will be used on SD-WAN Control Components.
217-
218-
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
219-
│ --manager <manager-ip> SD-WAN Manager IP address, can also be defined via MANAGER_IP environment │
220-
│ --muser <manager-user> SD-WAN Manager username, can also be defined via MANAGER_USER environment variable. │
221-
│ --mpassword <manager-password> SD-WAN Manager password, can also be defined via MANAGER_PASSWORD environment variable. │
222-
│ --mmask <manager-mask> Subnet mask for given SD-WAN Manager IP (e.g. /24), can also be defined via MANAGER_MASK environment variable. │
223-
│ --mgateway <manager-gateway> Gateway IP for given SD-WAN Manager IP, can also be defined via MANAGER_GATEWAY environment variable. │
224-
│ --lab <lab_name> Set CML Lab name, can also be defined via LAB_NAME environment variable. If not provided, default name "sdwan<number>" will be assigned. │
225-
│ --bridge <custom-bridge-name> Set custom bridge for SD-WAN Manager external connection. Default is System Bridge │
226-
│ --dns <dns-server-ip> Set custom DNS server for Internet/VPN0 transport. Default is same as CML DNS │
227-
│ --retry If for some reason your script lost connectivity during SD-WAN Manager boot, you can add --retry to continue onboarding the lab that is already in │
228-
│ CML │
229-
│ --help -h Show this message and exit. │
230-
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
214+
positional arguments:
215+
<software-version> Software version that will be used on
216+
SD-WAN Control Components.
217+
218+
╭─ Options ─────────────────────────────────────────────────────╮
219+
│ --manager <manager-ip> SD-WAN Manager IP │
220+
│ address, can also be │
221+
│ defined via MANAGER_IP │
222+
│ environment │
223+
│ --muser <manager-user> SD-WAN Manager │
224+
│ username, can also be │
225+
│ defined via │
226+
│ MANAGER_USER │
227+
│ environment variable. │
228+
│ --mpassword <manager-password> SD-WAN Manager │
229+
│ password, can also be │
230+
│ defined via │
231+
│ MANAGER_PASSWORD │
232+
│ environment variable. │
233+
│ --mmask <manager-mask> Subnet mask for given │
234+
│ SD-WAN Manager IP │
235+
│ (e.g. /24), can also │
236+
│ be defined via │
237+
│ MANAGER_MASK │
238+
│ environment variable. │
239+
│ --mgateway <manager-gateway> Gateway IP for given │
240+
│ SD-WAN Manager IP, can │
241+
│ also be defined via │
242+
│ MANAGER_GATEWAY │
243+
│ environment variable. │
244+
│ --lab <lab_name> Set CML Lab name, can │
245+
│ also be defined via │
246+
│ LAB_NAME environment │
247+
│ variable. If not │
248+
│ provided, default name │
249+
│ "sdwan<number>" will │
250+
│ be assigned. │
251+
│ --bridge <custom-bridge-name> Set custom bridge for │
252+
│ SD-WAN Manager │
253+
│ external connection. │
254+
│ Default is System │
255+
│ Bridge │
256+
│ --dns <dns-server-ip> Set custom DNS server │
257+
│ for Internet/VPN0 │
258+
│ transport. Default is │
259+
│ same as CML DNS │
260+
│ --retry If for some reason │
261+
│ your script lost │
262+
│ connectivity during │
263+
│ SD-WAN Manager boot, │
264+
│ you can add --retry to │
265+
│ continue onboarding │
266+
│ the lab that is │
267+
│ already in CML │
268+
│ --ip_type <ip_type> IP type to use for │
269+
│ deployment: v4, v6, or │
270+
│ dual. Default is v4. │
271+
│ [default: v4] │
272+
│ --help -h Show this message and │
273+
│ exit. │
274+
╰───────────────────────────────────────────────────────────────╯
231275

232276
Time to complete the deployment task depends on:
233277

@@ -236,7 +280,7 @@ Time to complete the deployment task depends on:
236280

237281
### Add Task
238282

239-
This task adds Catalyst SD-WAN nodes (Validators/Controllers/Edges) into existing Catalyst SD-WAN lab. This task will:
283+
This task adds Catalyst SD-WAN nodes (Validators/Controllers/Edges) into existing Catalyst SD-WAN lab. It will automatically recognize the IP type (v4/v6/dual) and onboard the devices using same IP type as discovered. This task will:
240284

241285
1. Add requested number of nodes to the CML topology and boot them with cloud-init configuration
242286
2. Once nodes boot up, automatically onboard them to SD-WAN Manager

catalyst_sdwan_lab/cli.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,14 @@ def wrapper_common_options(*args: Any, **kwargs: Any) -> Any:
243243
"during SD-WAN Manager boot, you can add --retry to continue "
244244
"onboarding the lab that is already in CML",
245245
)
246+
@click.option(
247+
"--ip_type",
248+
metavar="<ip_type>",
249+
type=click.Choice(["v4", "v6", "dual"]),
250+
default="v4",
251+
show_default=True,
252+
help="IP type to use for deployment: v4, v6, or dual. Default is v4.",
253+
)
246254
@click.pass_context
247255
def cli_deploy(
248256
ctx: click.Context,
@@ -255,6 +263,7 @@ def cli_deploy(
255263
lab: str,
256264
bridge: str,
257265
dns: str,
266+
ip_type: str,
258267
retry: bool,
259268
) -> None:
260269
"""
@@ -284,6 +293,7 @@ def cli_deploy(
284293
lab,
285294
bridge,
286295
dns,
296+
ip_type,
287297
patty_used,
288298
retry,
289299
loglevel,

0 commit comments

Comments
 (0)