Compass Core Technical User Guide
CompassCoreTechnical-UserGuide
User Manual:
Open the PDF directly: View PDF .
Page Count: 37
Download | |
Open PDF In Browser | View PDF |
PREFACE SEGMENT ROUTING POC 1. Technical Details a) Assumptions b) Device Platform Used for Testing c) NSO Version d) NED Version e) NSO Packages f) Devices List g) Migration Strategy or Steps 2. Use Cases and Model Representations 1. Brown Field Deployment Topology i. Model: SR-infrastructure ii. Configuration of model in NSO 2. Configuration of segment routing on brownfield deployments using srinfrastructure i. Model: Segment Routing ii. Configuration of model in NSO iii. Addition of New Router with same instance-name in the Existing Brownfield Topology iv. Configuration of model in NSO v. Device Modifications 3. Addition of New Routers to Brown Field Deployment Topology i. Model: Segment Routing ii. Configuration of model in NSO iii. Device Modifications 4. Configuration of Topology Independent Loop Free Alternative i. Topology ii. Model: TI-LFA iii. Configuration in NSO using custom instance (brownfield) and all interfaces iv. Device Modifications v. Configuration in NSO using brown field and specifying fewer interfaces vi. Device Modifications 5. Segment Routing Mapping Server i. Model: SR-MS ii. Configuration of model in NSO 2 1. TECHNICAL DETAILS a. Assumptions: • Router isis instance-name: We assume that this instance name already exists and is active for a customer deployment as we sought to migrate. • Interfaces under Router isis instance name should be already present. It may not have ti-lfa configurations, which nso would tend to configure on them. • Loopback used for segment routing is assumed to be already present on the device. • Compass Service Models/Configurations that get pushed are platform independent. They should work on all the platforms that run ios-xr. b. Device Platform Used for Testing RP/0/RP0/CPU0:PE4_Zermat#show version Thu Jun 21 21:51:49.783 UTC Cisco IOS XR Software, Version 6.5.1.24I Copyright (c) 2013-2018 by Cisco Systems, Inc. Build Information: Built By : ahoang Built On : Tue May 29 13:04:05 PDT 2018 Build Host : iox-ucs-025 Workspace : /auto/iox-ucs-025-san2/prod/6.5.1.24I.SIT_IMAGE/ncs5500/ws Version : 6.5.1.24I Location : /opt/cisco/XR/packages/ Label : 6.5.1.24I cisco NCS-5500 () processor System uptime is 1 week 6 days 16 hours 36 minutes 3 TECHNICAL DETAILS RP/0/RP0/CPU0:PE4_Zermat#show platform Thu Jun 21 21:52:02.701 UTC Node Type State Config state -------------------------------------------------------------------------------0/RP0/CPU0 NCS-5502-SE(Active) IOS XR RUN NSHUT 0/RP0/NPU0 Slice UP 0/RP0/NPU1 Slice UP 0/RP0/NPU2 Slice UP 0/RP0/NPU3 Slice UP 0/RP0/NPU4 Slice UP 0/RP0/NPU5 Slice UP 0/RP0/NPU6 Slice UP 0/RP0/NPU7 Slice UP 0/FT0 NC55-2RU-FAN-FW OPERATIONAL NSHUT 0/FT1 NC55-2RU-FAN-FW OPERATIONAL NSHUT 0/FT2 NC55-2RU-FAN-FW OPERATIONAL NSHUT 0/PM1 NC55-2KW-ACFW OPERATIONAL NSHUT 0/PM3 NC55-2KW-ACFW OPERATIONAL NSHUT RP/0/RP0/CPU0:PE4_Zermat#exit c. NSO Version: 4.6 or above d. NED : There is no official ned being used. A Netconf NED named Prouter-ned is part of packages for IOSXR Devices . NED version 1.0. e. NSO Packages admin@ncs> show packages package oper-status up NAME UP ------------------------------------disable-ldp X prouter-ned X resource-manager X sr X sr-ms X ti-fla X 4 TECHNICAL DETAILS f. Devices list (netsim netconf devices) admin@ncs> show devices list NAME ADDRESS DESCRIPTION NED ID ADMIN STATE ------------------------------------------------------------P-0 127.0.0.1 netconf unlocked P-1 127.0.0.1 netconf unlocked P-2 127.0.0.1 netconf unlocked P-3 127.0.0.1 netconf unlocked P-4 127.0.0.1 netconf unlocked g. Migration Strategy or Steps Customer is expected to run a LDP/RSVP Networks. Migration done in form of small steps. These are actually the name of NSO Packages and needs in the configured in the order described below after verification at each step. Verification is left to the user at moment. The verification is to ensure that the configuration is effective in the network and could be seen as part of the device operational. • SR : prefix-sid are assigned to devices. • TI-LFA ( Topology Independent – Loop Free Alternative) : every node/link can be configured a backup path. Hence on a node failure it needs to reconverge so a backup path is configured. • SR-MS (Segment Routing – Mapping Server ) : Label path - switch between LDP and SR networks. A network could both SR and LDP. To ensure that the switching works across this two kinds of networks a label path is statically assigned. I.e. for this ldp prefix use this sr prefix. Idea is to advertise ldp prefixes into sr. • Disable-ldp (Label Distribution Protocol) 5 USE CASES AND MODELS REPRESENTATION 1. Brown Field Deployment Topology (Example): Assume the following P Routers has the same instance-name and loopback. P0 P2 All the P-Routers that share the same instance name and loopback can be configured in the infrastructure with this details. If there is a probability that most of the routers in the network would have same details, then the sr-infrastructure configuration can be re-used and pointed back to it. This saves User time to reenter same details again and again for each router. a. Model: SR-infrastructure module: infrastructure +--rw sr-infrastructure! +--rw sr-global-block-pools* [name] | +--rw name -> /ralloc:resource-pools/idalloc:id-pool/name +--rw instance-name? string +--rw loopback? uint32 b. Configuration of the model in NSO admin@ncs% set resource-pools id-pool sr-pool range start 16000 end 23999 [ok][2018-07-30 21:00:57] admin@ncs% set sr-infrastructure instance-name CORE loopback 0 sr-global-block-pools sr-pool [ok][2018-07-30 21:01:44] admin@ncs% commit 6 USE CASES AND MODEL REPRESENTATIONS 2. CONFIGURATION OF SEGMENT ROUTING ON BROWNFIELD DEPLOYMENTS USING SR-INFRASTRUCTURE P0 P2 Model: Segment Routing module: sr augment /ncs:services: +--rw sr* [name] +--rw name string +--rw router* [device-name] +--rw device-name -> /ncs:devices/device/name +--rw prefix-preference | +--rw (prefix-choice)? | +--:(auto-assign-prefix-sid) | | +--rw auto-assign-prefix-sid? empty | +--:(assign-prefix-sid) | +--rw assign-prefix-sid? uint16 +--rw instance-preference +--rw (instance-choice)? +--:(use-sr-infrastructure) | +--rw use-sr-infrastructure? empty +--:(custom-instance) +--rw custom-instance +--rw instance-name? string +--rw loopback? uint32 7 USE CASES AND MODEL REPRESENTATIONS Configuration of the model in NSO services { + sr ACME-west { + router P-0 { + prefix-preference { + auto-assign-prefix-sid; + } + instance-preference { + use-sr-infrastructure; + } + } + router P-2 { + prefix-preference { + auto-assign-prefix-sid; + } + instance-preference { + use-sr-infrastructure; + } + } } In the above scenario; we are asking NSO to configure Router P-0 and P-2. As part of the configuration NSO will auto assign prefix sid as indicated in the model configuration prefix-preference “auto-assign-prefix-sid”. NSO uses a resource allocator to pick IDs from a pool. These pool is already defined in the SR-INFRASTRUCTURE model. If no pool is assigned, NSO will result into error as it is missing the details of the pool. Whenever this option auto-assign-prefix-sid is selected NSO will pick up next available ID from the pool until the pool is exhausted. 8 USE CASES AND MODEL REPRESENTATIONS TEMPLATE9 USE CASES AND MODEL REPRESENTATIONS TEMPLATE VARIABLES Variable name Value $INSTANCE_NAME SR-INFRASTRUCTURE INSTANCE-NAME OR USER DEFINED $SRGB-START SR-INFRASTRUCTURE RESOURCE POOL START RANGE VALUE $SRGB-END SR-INFRASTRUCTURE RESOURCE POOL END RANGE VALUE $LOOPBACK LOOPBACK ID $PREFIX-SID NSO ALLOCATED OR USER PROVIDED 10 USE CASES AND MODEL REPRESENTATIONS Addition of New Router with same instance –name in the Existing Brownfield Topology : Administrator can choose to pick a new sid prefix for this newly added router as described below. P4 P0 P2 Model : Segment Routing module: sr augment /ncs:services: +--rw sr* [name] +--rw name string +--rw router* [device-name] +--rw device-name -> /ncs:devices/device/name +--rw prefix-preference | +--rw (prefix-choice)? | +--:(auto-assign-prefix-sid) | | +--rw auto-assign-prefix-sid? empty | +--:(assign-prefix-sid) | +--rw assign-prefix-sid? uint16 +--rw instance-preference +--rw (instance-choice)? +--:(use-sr-infrastructure) | +--rw use-sr-infrastructure? empty +--:(custom-instance) +--rw custom-instance +--rw instance-name? string +--rw loopback? uint32 11 USE CASES AND MODEL REPRESENTATIONS In the above scenario, Users wishes to have his own choice of prefix-sid which he/she enters and User also wishes to use the same sr-infrastructure details (instance name and loopback) as the device has it. In this case NSO will not auto assign prefix sid from a pool. It is to the user onus to ensure that NSO has not already assigned the id he/she enters. Configuration of the model in NSO services { + sr ACME-west { + router P-4 { + prefix-preference { + assign-prefix-sid 22004; + } + instance-preference { + use-sr-infrastructure; + } + } + } } DEVICE MODIFICATIONS admin@ncs% request services sr ACME-west get-modifications cli { local-node { data devices { device P-0 { config { clns-isis-cfg:isis { instances { 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 13 instance CORE { srgb { lower-bound 16000; upper-bound 23999; } afs { af ipv4 unicast { af-data { segment-routing { prefix-sid-map { advertise-local; } mpls ldp; } mpls { router-id { interface-name Loopback0; } level { level2 true; } } } } } interfaces { interface Loopback0 { interface-afs { interface-af ipv4 unicast { interface-af-data { prefix-sid { type absolute; value 16000; php enable; explicit-null disable; nflag-clear disable; + + + } } } } running; + } } running; + } } } } + + + + + + + + + + + + + + + + + + + 14 } device P-2 { config { clns-isis-cfg:isis { instances { instance CORE { srgb { lower-bound 16000; upper-bound 23999; } afs { af ipv4 unicast { af-data { segment-routing { prefix-sid-map { advertise-local; } mpls ldp; } mpls { router-id { interface-name Loopback0; } level { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 15 level2 true; } } } } } interfaces { interface Loopback0 { interface-afs { interface-af ipv4 unicast { interface-af-data { prefix-sid { type absolute; value 16001; php enable; explicit-null disable; nflag-clear disable; } } } } running; } } running; device P-4 { config { clns-isis-cfg:isis { instances { instance CORE { srgb { lower-bound 16000; upper-bound 23999; } afs { af ipv4 unicast { af-data { + + + + + + + + + + + + + + + + + + + + + + + segment-routing { prefix-sid-map { advertise-local; } mpls ldp; } mpls { router-id { interface-name Loopback0; } level { level2 true; } } } } } interfaces { interface Loopback0 { interface-afs { interface-af ipv4 unicast { interface-af-data { prefix-sid { type absolute; value 22004; php enable; explicit-null disable; nflag-clear disable; } } } } running; } } running; + + + + + + + + + + + + + + 16 } } } } } } resource-pools { id-pool sr-pool { + allocation ACME-west-P-0 { + username admin; + allocating-service /services/sr:sr[name='ACME-west']; + request { + sync false; + } + } + allocation ACME-west-P-2 { + username admin; + allocating-service /services/sr:sr[name='ACME-west']; + request { + sync false; + } + } + + + + + 17 allocation ACME-west-P-3 { username admin; allocating-service /services/sr:sr[name='ACME-west']; request { sync false; USE CASES AND MODEL REPRESENTATIONS 3. Addition of new routers to Brown Field Deployment Topology(Example): A new set of brown field P Routers has been brought into the existing topology that has different instance name and loopback. P4 P0 P2 P3 P1 Administrator can now use a different instance name and loopback depending on the PRouter configuration as shown below. 18 USE CASES AND MODEL REPRESENTATIONS Model: Segment Routing module: sr augment /ncs:services: +--rw sr* [name] +--rw name string +--rw router* [device-name] +--rw device-name -> /ncs:devices/device/name +--rw prefix-preference | +--rw (prefix-choice)? | +--:(auto-assign-prefix-sid) | | +--rw auto-assign-prefix-sid? empty | +--:(assign-prefix-sid) | +--rw assign-prefix-sid? uint16 +--rw instance-preference +--rw (instance-choice)? +--:(use-sr-infrastructure) | +--rw use-sr-infrastructure? empty +--:(custom-instance) +--rw custom-instance +--rw instance-name? string +--rw loopback? uint32 Configuration of Model in NSO admin@ncs% show | compare services { + sr ACME-west { + router P-1 { + prefix-preference { + assign-prefix-sid 22001; + } + instance-preference { + custom-instance { 19 USE CASES AND MODEL REPRESENTATIONS + + + + + + + + + + + + + + + } instance-name foobar; loopback 1; } } router P-3 { prefix-preference { auto-assign-prefix-sid; } instance-preference { custom-instance { instance-name westzone; loopback 1; } } } In this scenario, user has brought in two different routers as part of exisiting topology. Each of the routers shares a different instance-name and loopback that is different from one defined in the SR-infrastructure. In addition the user wishes to let NSO assign a prefix-sid on one of the Routers for whatsoever reason while on the other Router User wants to self assign a prefix sid id. NSO will only assign one id as requested, for the other router NSO will just take the user input and assign to the router. 20 USE CASES AND MODEL REPRESENTATIONS TEMPLATE {$DEVICENAME} {$INSTANCE-NAME} {$SRGB-START} {$SRGB-END} ipv4 unicast ldp Loopback{$LOOPBACK} true Loopback{$LOOPBACK} ipv4 unicast absolute {$PREFIX-SID} enable disable disable 21 USE CASES AND MODEL REPRESENTATIONS TEMPLATE VARIABLES Variable name Value $INSTANCE_NAME SR-INFRASTRUCTURE INSTANCE-NAME OR USER DEFINED $SRGB-START SR-INFRASTRUCTURE RESOURCE POOL START RANGE VALUE $SRGB-END SR-INFRASTRUCTURE RESOURCE POOL END RANGE VALUE $LOOPBACK LOOPBACK ID $PREFIX-SID NSO ALLOCATED OR USER PROVIDED DEVICE MODIFICATIONS admin@ncs% request services sr ACME-west get-modifications cli { local-node { data devices { device P-1 { config { clns-isis-cfg:isis { instances { + instance foobar { + srgb { + lower-bound 16000; 22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 23 upper-bound 23999; } afs { af ipv4 unicast { af-data { segment-routing { prefix-sid-map { advertise-local; } mpls ldp; } mpls { router-id { interface-name Loopback1; } level { level2 true; } } } } } interfaces { interface Loopback1 { interface-afs { interface-af ipv4 unicast { interface-af-data { prefix-sid { type absolute; value 22001; php enable; explicit-null disable; nflag-clear disable; } } } } + + + + + running; } } running; } } } } + + + + + + + + + + + + + + } device P-3 { config { clns-isis-cfg:isis { instances { instance westzone { afs { af ipv4 unicast { af-data { segment-routing { prefix-sid-map { advertise-local; } mpls ldp; } mpls { router-id { interface-name Loopback1; } + + + + + + + + 24 level { level2 true; } } } } } interfaces { + + + + + + + + + + + + + + + interface Loopback1 { interface-afs { interface-af ipv4 unicast { interface-af-data { prefix-sid { type absolute; value 16002; php enable; explicit-null disable; nflag-clear disable; } } } } running; resource-pools { id-pool sr-pool { + + + + + + + allocation ACME-west-P-3 { username admin; allocating-service /services/sr:sr[name='ACME-west']; request { sync false; } } } } } } 25 USE CASES AND MODEL REPRESENTATIONS 4. Configuration of Topology Independent Loop Free Alternative P0 P1 Model module: ti-lfa augment /ncs:services: +--rw ti-lfa* [name]+--rw address-family? string +--rw router* [device-name] +--rw device-name -> /ncs:devices/device/name +--rw instance-name-preference | +--rw (instance-name-choice)? | +--:(use-sr-infrastructure) | | +--rw use-sr-infrastructure? empty | +--:(custom-instance) | +--rw custom-instance | +--rw instance-name? string +--rw interface-preference +--rw (interfaces)? +--:(all-interfaces) | +--rw all-interfaces? empty +--:(select-interface) +--rw select-interface* [interface-type interface-id] +--rw interface-type int-type +--rw interface-id int-id 26 USE CASES AND MODEL REPRESENTATIONS The above model provides two alternatives to configure TI-LFA. One is to allow user to cherry pick interfaces of the device on which TI-FLA needs to be configured, the other is to configure all the interfaces. Configuration of Model in NSO The following example uses a custom instance name while specifying all interfaces to be configured. services { + ti-lfa ACME { + address-family ipv6; + router P-0 { + instance-name-preference { + custom-instance { + instance-name core; + } + } + interface-preference { + all-interfaces; + } + } + } } In this example, NSO uses the instance name provided that will be configured while NSO will also read all the interfaces under this instance name and configure the TI-LFA on each of these interfaces minus the Loopback interface. 27 USE CASES AND MODEL REPRESENTATIONS TEMPLATE {$DEVICENAME} {$INSTANCE-NAME} {$SRGB-START} {$SRGB-END} ipv4 unicast ldp Loopback{$LOOPBACK} true Loopback{$LOOPBACK} ipv4 unicast absolute {$PREFIX-SID} enable disable disable 28 USE CASES AND MODEL REPRESENTATIONS TEMPLATE VARIABLES TEMPLATE VARIABLE VALUE $INSTANCE-NAME SR-INFRASTRUCUTRE OR USER PROVIDED $INTERFACE-NAME USER PROVIDER OR NSO FINDS IT QUERYING DEVICE $INTERFACE-ID USER PROVIDED OR NSO FINDS IT QUERYING DEVICE ADDRESS-FAMILY IPV4 OR IPV6 DEVICE MODIFICATIONS admin@ncs% request services ti-lfa ACME get-modifications cli { local-node { data devices { device P-0 { config { clns-isis-cfg:isis { instances { instance core { interfaces { interface Bundle-Ether511 { interface-afs { + interface-af ipv6 unicast { + interface-af-data { + interface-frr-table { + frr-types { 29 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 frr-type not-set { type per-prefix; } } frrtilfa-types { frrtilfa-type not-set; } } } } } running; } interface TenGigabitEthernet2/1/1 { interface-afs { interface-af ipv6 unicast { interface-af-data { interface-frr-table { frr-types { frr-type not-set { type per-prefix; } } frrtilfa-types { frrtilfa-type not-set; } } } } } running; } interface TenGigabitEthernet2/1/2 { interface-afs { interface-af ipv6 unicast { interface-af-data { interface-frr-table { + + + + + + + + + + + frr-types { frr-type not-set { type per-prefix; } } frrtilfa-types { frrtilfa-type not-set; } } } } } running; + } } running; + } 31 USE CASES AND MODEL REPRESENTATIONS The following example uses an instance name defined in the sr-infrastructure while user cherry picks few interfaces to be configured that are part of the instance-name. User will not be able to provide a loopback. admin@ncs% show | compare services { + ti-lfa ACME { + address-family ipv4; + router P-0 { + instance-name-preference { + use-sr-infrastructure; + } + interface-preference { + select-interface Bundle-Ether 611; + select-interface Bundle-Ether 711; + select-interface Bundle-Ether 811; + } + } + } } [ok][2018-07-30 22:07:22] [edit] admin@ncs% In this case NSO will send configure the interfaces specified above with ti-fla configuration. 32 USE CASES AND MODEL REPRESENTATIONS DEVICE MODIFICATIONS admin@ncs% request services ti-lfa ACME get-modifications cli { local-node { data devices { device P-0 { config { clns-isis-cfg:isis { instances { instance CORE { interfaces { interface Bundle-Ether611 { interface-afs { + interface-af ipv4 unicast { + interface-af-data { + interface-frr-table { + frr-types { + frr-type not-set { + type per-prefix; + } + } + frrtilfa-types { + frrtilfa-type not-set; + } + } + } + } } + running; } interface Bundle-Ether711 { interface-afs { + interface-af ipv4 unicast { + interface-af-data { 33 + + + + + + + + + + + + + + + + + + + + + + + + + + + 34 interface-frr-table { frr-types { frr-type not-set { type per-prefix; } } frrtilfa-types { frrtilfa-type not-set; } } } } } running; } interface Bundle-Ether811 { interface-afs { interface-af ipv4 unicast { interface-af-data { interface-frr-table { frr-types { frr-type not-set { type per-prefix; } } frrtilfa-types { frrtilfa-type not-set; } } } } } USE CASES AND MODEL REPRESENTATIONS 5. SEGMENT ROUTING MAPPING SERVER a. Model : SR-MS module: sr-ms augment /ncs:services: +--rw sr-ms* [name] +--rw name string +--rw address-family? string +--rw ipv4-address? inet:ipv4-address +--rw prefix-length? uint16 +--rw first-sid-value? uint32 +--rw number-of-allocated-sids? uint32 +--rw router* [device-name] +--rw device-name -> /ncs:devices/device/name The above model takes in various input parameters from user and does template replacement. NO NSO specific logic is done. b. Configuration of Model in NSO services { + sr-ms ACME { + address-family ipv4; + ipv4-address 192.168.10.1; + prefix-length 24; + first-sid-value 16001; + number-of-allocated-sids 80; + router P-0; + } } 35 USE CASES AND MODEL REPRESENTATIONS c. TEMPLATES {$DEVICE} {$INSTANCE-NAME} {$INTERFACE-NAME}{$INTERFACEID} {$ADDRESS-FAMILY} unicast not-set not-set per-prefix TEMPLATE VARIABLES TEMPLATE VARIABLE VALUE DEVICE-NAME USER PROVIDED ADDRESS-FAMILY USER PROVIDED ipv4 or ipv6 IPV4-ADDRESS USER PROVIDED PREFIX-LENGTH USER PROVIDED FIRST SID VALUE USER PROVIDED 36 NUMBER OF ALLOCATED-SIDS USER PROVIDED d. DEVICE MODIFICATIONS admin@ncs% request services sr-ms ACME get-modifications cli { local-node { data devices { device P-0 { config { segment-routing-ms-cfg:sr { mappings { + mapping ipv4 192.168.10.1 24 { + sid-start 16001; + sid-range 80; + } } + enable; } } } } } } 37 {/router/device-name} {/address-family} {/ipv4-address} {/prefix-length} {/first-sid-value} {/number-of-allocated-sids}
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : Yes Create Date : 2018:08:30 20:08:42Z Creator : Word Modify Date : 2018:08:30 13:09:03-07:00 XMP Toolkit : Adobe XMP Core 5.6-c015 84.159810, 2016/09/10-02:41:30 Creator Tool : Word Metadata Date : 2018:08:30 13:09:03-07:00 Keywords : Producer : Acrobat PDFMaker 15 for Word Format : application/pdf Title : Microsoft Word - CompassCoreTechnicalDocument-UserGuide.docx Document ID : uuid:f01dcb32-f74e-d04f-bf18-0ead277466a5 Instance ID : uuid:ff23795a-fe3a-3142-a958-c8ab7f498676 Page Count : 37EXIF Metadata provided by EXIF.tools