BGP Connectionless Network Service (CLNS)
Understanding BGP for CLNS VPNs
BGP extensions allow BGP to carry Connectionless Network Service (CLNS) virtual private network (VPN) network layer reachability information (NLRI) between provider edge (PE) routers. Each CLNS route is encapsulated into a CLNS VPN NLRI and propagated between remote sites in a VPN.
CLNS is a Layer 3 protocol similar to IP version 4 (IPv4). CLNS uses network service access points (NSAPs) to address end systems. This allows for a seamless autonomous system (AS) based on International Organization for Standardization (ISO) NSAPs.
A single routing domain consisting of ISO NSAP devices are considered to be CLNS islands. CLNS islands are connected together by VPNs.
You can configure BGP to exchange ISO CLNS routes between PE routers connecting various CLNS islands in a VPN using multiprotocol BGP extensions. These extensions are the ISO VPN NLRIs.
Each CLNS network island is treated as a separate VPN routing and forwarding instance (VRF) instance on the PE router.
You can configure CLNS on the global level, group level, and neighbor level.
See Also
Enabling BGP to Carry CLNS Routes
Connectionless Network Service (CLNS) is a Layer 3 protocol similar to IP version 4 (IPv4). CLNS uses network service access points (NSAPs) to address end systems. This allows for a seamless autonomous system (AS) based on International Organization for Standardization (ISO) NSAPs.
Platform support for CLNS depends on the Junos OS release in your installation.
A single routing domain consisting of ISO NSAP devices are considered to be CLNS islands. CLNS islands are connected together by VPNs.
You can configure BGP to exchange ISO CLNS routes between provider edge (PE) routers connecting various CLNS islands in a virtual private network (VPN) using multiprotocol BGP extensions. These extensions are the ISO VPN NLRIs.
To enable multiprotocol BGP (MP-BGP) to carry CLNS VPN NLRIs,
include the iso-vpn
statement:
iso-vpn { unicast { prefix-limit number; rib-group group-name; } }
To limit the number of prefixes from a peer, include the prefix-limit
statement. To specify a routing table group, include
the rib-group
statement.
For a list of hierarchy levels at which you can include this statement, see the statement summary section for this statement.
Each CLNS network island is treated as a separate VRF instance on the PE router.
You can configure CLNS on the global level, group level, and neighbor level.
For sample configurations, see the following sections:
Example: Enabling CLNS Between Two Routers
Configure CLNS between two routers through a route reflector:
On Router 1: protocols { bgp { local-address 10.255.245.195; group pe-pe { type internal; neighbor 10.255.245.194 { family iso-vpn { unicast; } } } } } routing-instances { aaaa { instance-type vrf; interface fe-0/0/0.0; interface so-1/1/0.0; interface lo0.1; route-distinguisher 10.255.245.194:1; vrf-target target:11111:1; protocols { isis { export dist-bgp; no-ipv4-routing; no-ipv6-routing; clns-routing; interface all; } } } } On Router 2: protocols { bgp { group pe-pe { type internal; local-address 10.255.245.198; family route-target; neighbor 10.255.245.194 { family iso-vpn { unicast; } } } } } routing-instances { aaaa { instance-type vrf; interface lo0.1; interface so-0/1/2.0; interface so-0/1/3.0; route-distinguisher 10.255.245.194:1; vrf-target target:11111:1; routing-options { rib aaaa.iso.0 { static { iso-route 47.0005.80ff.f800.0000.bbbb.1022/104 next-hop 47.0005.80ff.f800.0000.aaaa.1000.1921.6800.4196.00; } } } protocols { isis { export dist-bgp; no-ipv4-routing; no-ipv6-routing; clns-routing; interface all; } } } } On Route Reflector: protocols { bgp { group pe-pe { type internal; local-address 10.255.245.194; family route-target; neighbor 10.255.245.195 { cluster 0.0.0.1; } neighbor 10.255.245.198 { cluster 0.0.0.1; } } } }
Example: Configuring CLNS Within a VPN
Configure CLNS on three PE routers within a VPN:
On PE Router 1: protocols { mpls { interface all; } bgp { group asbr { type external; local-address 10.245.245.3; neighbor 10.245.245.1 { multihop; family iso-vpn { unicast; } peer-as 200; } } } } routing-instances { aaaa { instance-type vrf; interface lo0.1; interface t1-3/0/0.0; interface fe-5/0/1.0; route-distinguisher 10.245.245.1:1; vrf-target target:11111:1; protocols { isis { export dist-bgp; no-ipv4-routing; no-ipv6-routing; clns-routing; interface all; } } } } On PE Router 2: protocols { bgp { group asbr { type external; multihop; family iso-vpn { unicast; } neighbor 10.245.245.2 { peer-as 300; } neighbor 10.245.245.3 { peer-as 100; } } } } routing-instances { aaaa { instance-type vrf; interface lo0.1; route-distinguisher 10.245.245.1:1; vrf-target target:11111:1; } } On PE Router 3: protocols { bgp { group asbr { type external; multihop; local-address 10.245.245.2; neighbor 10.245.245.1 { family iso-vpn { unicast; } peer-as 200; } } } } routing-instances { aaaa { instance-type vrf; interface lo0.1; interface fe-0/0/1.0; interface t1-3/0/0.0; route-distinguisher 10.245.245.1:1; vrf-target target:11111:1; protocols { isis { export dist-bgp; no-ipv6-routing; clns-routing; interface all; } } } }
See Also
Example: Configuring BGP for CLNS VPNs
This example shows how to create a BGP group for CLNS VPNs, define the BGP peer neighbor address for the group, and define the family.
Requirements
Before you begin, configure the network interfaces. See the Interfaces User Guide for Security Devices.
Overview
In this example, you create the BGP group called pedge-pedge, define the BGP peer neighbor address for the group as 10.255.245.215, and define the BGP family.
Configuration
Procedure
CLI Quick Configuration
To quickly configure this example, copy the
following commands, paste them into a text file, remove any line breaks,
change any details necessary to match your network configuration,
copy and paste the commands into the CLI at the [edit]
hierarchy
level, and then enter commit
from configuration mode.
set protocols bgp group pedge-pedge neighbor 10.255.245.213 set protocols bgp family iso-vpn unicast
Step-by-Step Procedure
The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode.
To configure BGP for CLNS VPNs:
Configure the BGP group and define the BGP peer neighbor address.
[edit protocols bgp] user@host# set group pedge-pedge neighbor 10.255.245.213
Define the family.
[edit protocols bgp] user@host# set family iso-vpn unicast
If you are done configuring the device, commit the configuration.
[edit] user@host# commit
Verification
Verifying the Neighbor Status
Purpose
Display information about the BGP peer.
Action
From operational mode, run the show bgp neighbor
10.255.245.213
command. Look for iso-vpn-unicast
in
the output.
user@host> show bgp neighbor 10.255.245.213
Peer: 10.255.245.213+179 AS 200 Local: 10.255.245.214+3770 AS 100
Type: External State: Established Flags: <ImportEval Sync>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Options: <Multihop Preference LocalAddress HoldTime AddressFamily PeerAS
Rib-group Refresh>
Address families configured: iso-vpn-unicast
Local Address: 10.255.245.214 Holdtime: 90 Preference: 170
Number of flaps: 0
Peer ID: 10.255.245.213 Local ID: 10.255.245.214 Active Holdtime: 90
Keepalive Interval: 30 Peer index: 0
NLRI advertised by peer: iso-vpn-unicast
NLRI for this session: iso-vpn-unicast
Peer supports Refresh capability (2)
Table bgp.isovpn.0 Bit: 10000
RIB State: BGP restart is complete
RIB State: VPN restart is complete
Send state: in sync
Active prefixes: 3
Received prefixes: 3
Suppressed due to damping: 0
Advertised prefixes: 3
Table aaaa.iso.0
RIB State: BGP restart is complete
RIB State: VPN restart is complete
Send state: not advertising
Active prefixes: 3
Received prefixes: 3
Suppressed due to damping: 0
Last traffic (seconds): Received 6 Sent 5 Checked 5
Input messages: Total 1736 Updates 4 Refreshes 0 Octets 33385
Output messages: Total 1738 Updates 3 Refreshes 0 Octets 33305
Output Queue[0]: 0
Output Queue[1]: 0