For feedback and comments: |
documentation.feedback@alcatel-lucent.com |
→
→
→ Figure 33 shows an example of an IPSec deployment, and the way this would be supported inside a 7750. GRE and IP-IP tunnel deployments are very similar. IP tunnels have two flavors GRE/IP-IP, in all but a few area the information for IP Tunnels applies to both types.Figure 33: 7750 IPSec Implementation ArchitectureFigure 33, the public network is typically an “insecure network” (for example, the public Internet) over which packets belonging to the private network in the diagram cannot be transmitted natively. Inside the 7750, a public service instance (IES or VPRN) connects to the public network and a private service instance (typically a VPRN) connects to the private network.
• Note: SR OS will use a configured authentication algorithm in an ike-policy for Pseudorandom Function (PRF).A tunnel-group is a collection of MS-ISAs (each having mda-type isa-tunnel) configured to handle the termination of one or more IPSec, GRE and/or IP-IP tunnels. Two example tunnel-group configurations are shown below:config isatunnel-group 1 createprimary 1/1backup 2/1no shutdownexitconfig isatunnel-group 2 createmulti-activemda 3/1mda 3/2no shutdownThe public tunnel SAP type has the format tunnel-tunnel-group.public:index, as shown in the following CLI example.*A:Dut-C>config>service# info----------------------------------------------customer 1 createdescription "Default customer"exities 1 customer 1 createinterface "public" createaddress 64.251.12.1/24tos-marking-state untrustedsap tunnel-1.public:200 createexitexitno shutdownexitvprn 2 customer 1 createroute-distinguisher 1.1.1.1:65007interface "greTunnel" tunnel createaddress 10.0.0.1/24dhcpno shutdownexitsap tunnel-1.private:210 createip-tunnel "toCel" createdest-ip 10.0.0.2gre-headersource 64.251.12.88remote-ip 64.251.12.2backup-remote-ip 64.251.12.22delivery-service 1no shutdownexitexitexitno shutdownexit----------------------------------------------*A:Dut-C>config>service#The private tunnel SAP has the format tunnel-tunnel-group.private:index, as shown in the following CLI example where a GRE tunnel is configured under the SAP.*A:Dut-A# show ip tunnel===============================================================================IP Tunnels===============================================================================TunnelName SapId SvcId AdmnLocal Address DlvrySvcId OperOperRemoteAddress-------------------------------------------------------------------------------tun-1-gre-tunnel tunnel-1.private:1 201 Up141.1.1.2 1201 Up41.1.1.2-------------------------------------------------------------------------------IP Tunnels: 1===============================================================================To bind an IP/GRE or IP-IP tunnel to a private tunnel SAP, the ip-tunnel command should be added under the SAP. To configure the tunnel as an IP/GRE tunnel, the gre-header command must be present in the configuration of the ip-tunnel. To configure the tunnel as an IP-IP tunnel, the ip-tunnel configuration should have the no gre-header command. When configuring a GRE or IP-IP tunnel, the dest-ip command specifies an IPv4 or IPv6 address (private) of the remote tunnel endpoint. A tunnel can have up to 16 dest-ip addresses. If any of the dest-ip addresses are not contained by a subnet of the local private endpoint then the tunnel will not come up. In the CLI sub-tree under ip-tunnel, there are commands to configure the following:
• The following is an example of the output of the show ip tunnel <tunnel-name> command.A:config>service>vprn>if>sap>ip-tunnel# show ip tunnel "ipv6-gre"===============================================================================IP Tunnel Configuration Detail===============================================================================Service Id : 1 Sap Id : tunnel-1.private:1Tunnel Name : ipv6-greDescription : NoneGRE Header : Yes Delivery Service : 2GRE Keys Set : FalseGRE Send Key : N/A GRE Receive Key : N/AAdmin State : Up Oper State : UpSource Address : 2002::1:2:3:4Remote Address : 3ffe:1::2Backup Address : (Not Specified)Oper Remote Addr : 3ffe:1::2DSCP : efReassembly : inheritClear DF Bit : false IP MTU : maxEncap IP MTU : 1400Pkt Too Big : truePkt Too Big Numb*: 100 Pkt Too Big Intvl: 10 secsOper Flags : NoneLast Oper Changed: 02/09/2015 15:22:38Host MDA : 1/2-------------------------------------------------------------------------------Target Address Table-------------------------------------------------------------------------------Destination IP IP Resolved Status-------------------------------------------------------------------------------172.16.1.2 Yes2001:abcd::2 Yes-------------------------------------------------------------------------------===============================================================================IP Tunnel Statistics: ipv6-gre===============================================================================Errors Rx : 0 Errors Tx : 0Pkts Rx : 0 Pkts Tx : 0Bytes Rx : 0 Bytes Tx : 0Key Ignored Rx : 0 Too Big Tx : 0Seq Ignored Rx : 0Vers Unsup. Rx : 0Invalid Chksum Rx: 0Key Mismatch Rx : 0==============================================================================================================================================================Fragmentation Statistics===============================================================================Encapsulation Overhead : 44Pre-EncapsulationFragmentation Count : 0Last Fragmented Packet Size : 0Post-EncapsulationFragmentation Count : 0Last Fragmented Packet Size : 0==============================================================================================================================================================To avoid public network fragmentation of IPSec, GRE, or IP-IP packets belonging to a particular tunnel, one possible strategy is to fragment IPv4 payload packets larger than a specified size M at entry into the tunnel (before encapsulation and encryption if applicable). The size M is configurable using the ip-mtu command under the ip-tunnel or ipsec-tunnel/tunnel-template configuration.The system allows users to configure an encapsulated-ip-mtu for a given tunnel under an ip-tunnel or ipsec-tunnel/tunnel-template configuration. This represents the maximum size of the encapsulated tunnel packet. After encapsulation, If the IPv4 or IPv6 tunnel packet size exceeds the configured encapsulated-ip-mtu, then the system will fragment the packet against the encapsulated-ip-mtu.
The following is a description of system behavior about fragmentation:
− If the DF bit is not set in the packet or if the clear-df-bit command is configured, then the system fragments the packet against the ip-mtu configured under ip-tunnel or ipsec-tunnel/tunnel-template.In multi-active mode, the active-mda-number value determines the number of ISA MDAs that will be active for this tunnel group, and tunnels are spread across all active ISA MDAs. Additional ISA MDA in this tunnel group will be in cold standby.In order to configure a tunnel to carry IPv6 payload the tunnel must be configured with at least one dest-ip that contains an IPv6 address (global unicast and/or link local). A tunnel can have up to 16 dest-ip addresses (IPv4 and IPv6 together). For a tunnel to come operationally up all the dest-ip addresses must be part of locally configured subnets (associated with the private tunnel interface).In order to forward IPv6 traffic through a tunnel supporting IPv6 payload a dynamic routing protocol (such as BGP or OSPFv3) can be configured to run inside the tunnel (by associating the protocol with the private tunnel interface) or else an IPv6 static route next-hop equal to a dest-ip of the tunnel can be used.Note: IPv6 payload packets larger than 1280 bytes (the minimum IPv6 MTU) and also larger than the configured ip-mtu value of the tunnel are always discarded. If the icmp6-generation and packet-too-big commands are configured under the tunnel, then ICMPv6 Packet-Too-Big messages are generated and sent back to the originating host when discards occur due to the private side IP MTU being exceeded.IKEv2, defined in RFC 4306, Internet Key Exchange (IKEv2) Protocol, is the second version of the Internet Key Exchange Protocol. The main driver of IKEv2 is to simplify and optimize the IKEv1. An IKE_SA and a CHILD_SA could be created with only 4 IKEv2 messages exchanges. The 7750-SR supports IKEv2 with following features:Figure 34: IKEv2 TS-ListAccording to RFC 4868, Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec, the following SHA2 variants are supported for authentication or pseudo-random functions:
• All above objects must be imported before they can be used by the SR OS. This is performed by using the admin certificate import command. The import process converts the format of input file to DER, encrypts the key file and saves it in cf3:/system-pki directory.The imported file can also be exported as one to use in the specified format by means of the admin certificate export command.
→
→
→
→
→
→
→
→ All non-optional fields defined in section 4.1 of RFC 5280, Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, must exist and conform to the RFC 5280 defined format.CRL, by default, is required to enable ca-profile, but it could be optional by changing the revocation check method configuration. For the revocation check method configuration, refer to Certificate Revocation Check .
•
2. Generate a PKCS#10 certificate signing request with the key generated in the step mentioned above via the admin certificate gen-local-cert-req command.Example: admin certificate gen-local-cert-req keypair cf3:/segw.key subject-dn C=US,ST=CA,O=ALU,CN=SeGW domain-name segw-1.alu.com file cf3:/segw.pkcs10
3. Import the key file via the admin certificate import commandExample: admin certificate import type key input cf3:/segw.key output segw.key format der
7. Import the result certificate the admin certificate import command.Example: admin certificate import type cert input cf3:/segw.cert output segw.cert format pem
•
• With an IPSec application, users can configure multiple check methods with a priority order for an EE certificate. With the status-verify command in the ipsec-tunnel/ipsec-gw configuration context, a primary method, a secondary method and a default result can be configured. The primary and secondary method can be either OCSP or CRL. The default result is either good or revoked. If the system cannot get an answer from the primary method, then it will fall back to the secondary method. If secondary method also does not return an answer, then the system will use the default result.The revocation-check command in the ca-profile can change this behavior, with revocation-check crl-optional configured:When a user enables the ca-profile (no shutdown), the system will try to load the configured CRL (specified by the crl-file command). But, if the system fails to load it for following reasons, then the system will still keep ca-profile oper-up, but treat the CRL as non-existent.If the system needs to use the CRL of a specific ca-profile to check revocation status of an end entity certificate and CRL is non-existent due to the above reasons, then the system will treat it as unable to get an answer from CRL and fall back to the secondary status-verify method or default-result configured under the ipsec-gw/ipsec-tunnel.If the system needs to check the revocation of a CA certificate in certificate chain, and if the CRL is non-existent due to the above reasons, then the system will skip checking the revocation status of the CA certificate. For example, the CA1 is issued by CA2, if CA2’s revocation-check is crl-optional and CA2’s CRL is non-existent, then the system will not check CA1 certificate’s revocation status and consider it as good.Note: The user must disable the ca-profile to change the revocation-check configuration.The system can optionally generate a warning message before a certificate or a CRL expires. The amount of time before expiration is configurable via two system-wide CLI commands (certificate-expiration-warning and crl-expiration-warning). The warning messages can also be optionally repeated at a configured interval. For details of the warning messages, refer to the corresponding command descriptions.
• For a CA certificate and CRL, the cache will be created when there is a ca-profile and when a no shutdown is performed, and removed.
• For an ipsec-tunnel or ipsec-gw using legacy cert and key configurations, the cache will be created only when the first tunnel using it is in a no shutdown state, and it will be cleared when the last tunnel that used it is shutdown.
• For an ipsec-tunnel or ipsec-gw using cert-profile, the cache will be created when the first cert-profile using it is in a no shutdown state, and removed when the last cert-profile that used it is shutdown.
• If a certificate or key is configured with both a cert-profile and legacy cert or key command, then the cache will be created when the first object (a ipsec-gw, ipsec-tunnel or cert-profile) using it is in a no shutdown state and removed the last object using it is shutdown.In order to update a certificate or key without a shutdown ca-profile or ipsec-tunnel/ipsec-gw, there is a CLI command (admin certificate reload) to manually reload the certificate and key cache. For details about reload, refer to the command description for admin certificate reload.
• Periodic — The system will download a CRL periodically at the interval configured via the periodic-update-interval command. For example, if the periodic-update-interval is 1 day, then the system will download CRL every 1 day. The minimal periodic-update-interval is 1 hour.Upon executing a no shutdown of a ca-profile, if the auto-crl-update is enabled, then in case configures CRL file does not exist or is expired or invalid, then the system will start downloading right away.The system also provides an admin command (admin certificate crl-update ca <ca-profile-name>) for users to manually trigger downloading. However, it requires a shutdown of the auto-crl-update command (no auto-crl-update).The current trust-anchor command under ipsec-tunnel/ipsec-gw will be deprecated in a future release.cert-profile “cert-profile-1”entry 1cert “cert-1”key “key-1”entry 2cert “cert-2”key “key-2”send-chainca-profile “CA-1”ca-profile “CA-2”If a chain is configured in the selected entry, then one certificate payload is needed for each certificate in the configured chain. The first certificate payload in the IKEv2 message will be the signing certificate, which is configured by the cert command in the chosen cert-profile entry. With the above example, the system will send three certificate payloads: cert-2, CA-1,CA-2.
• Since R12.0R1, cert-profile/trust-anchor-profile provides a superset of function of current cert/trust-anchor commands. The current cert/trust-anchor commands will be deprecated in a future release.
•
•
• trust-anchor-profile X —> no trust-anchor-profile : disallowed
•
•
•
• cert-profile X —> no cert-profile : disallowed
• cert A —> cert B : disallowed
• key C —> key D : disallowedCMPv2, RFC 4210, Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP) is a protocol between a Certificate Authority ( CA) and an end entity. It provides multiple certificate management functions like certificate enrollment, certificate update, etc.
• Polling — In some cases, the CA may not return the certificate immediately for reasons such as request processing need manual intervention. In such cases, the SR OS supports polling requests and responds as described in Section 5.3.22, Polling Request and Response, in RFC 4210, Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP).Online Certificate Status Protocol (OCSP) (RFC 2560, X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP) is used by SR OS applications to determine the (revocation) state of an identified certificate. Unlike CRL, which relies on checking against an offline file, OCSP provides timely, online information regarding the revocation status of a certificate.Figure 35: Video Wholesale Configuration
→ Figure 36: MC-IPSec ArchitectureWith MIMP enabled, there is a master chassis and a backup chassis. The state of the master or standby is per tunnel-group. For example (Table 15), chassis A and B, for tunnel-group 1, A is master, B is standby; for tunnel-group 2, A is standby, B is master.
Table 15: Master and Backup Chassis Example
1.
• If the peer is not reached before the discovery-interval has expired, then the state will be changed to eligible or notEligible depending on the oper-status of the tunnel-group.
2.
3.
4.
5.
12. The show redundancy multi-chassis mc-ipsec peer <ip-address> tunnel-group <tunnel-group-id>” command can be used to check current protection status.
• MIMP will use the configured value of the config>redundancy>multi-chassis>peer>source-address command as the source address. If not configured, then system address will be used.
•
→ To attract traffic to the master chassis, a route metric of these /32 routes could be set according to the MIMP state, a metric from the master chassis is better than a metric from the standby chassis. There are three available states that can be used in the from state command in the route policy entry configuration:For static LAN-to-LAN tunnels, the static route with the IPSec tunnel as the next-hop could be exported to a routing protocol by a route policy. The protocol type remains static. For dynamic LAN-to-LAN tunnels, the reverse-route could be exported to a routing protocol by a route policy. The protocol type is ipsec. For remote-access tunnel, the private interface route could be exported to a routing protocol by a route policy.config>isa>tunnel-grp>ipsec-responder-onlyRefer to IPSec Deployment Requirements section for details
1. The IKEv2 lifetime requirements from the previous IPSec General section should be applied with special care to MC-IPSec deployments.
3. DPD on the peer side, dpd interval 300 max-retries 3 reply-only on the MC-IPSec side.
4.
→
→ If the auth-method parameter in the ike-policy is configured as psk-radius or cert-radius, then the system will authenticate the client via PSK or certificate accordingly as like a LAN-to-LAN tunnel. The difference being that in the case of psk-radius or cert-radius, the system will also perform a RADIUS authentication or authorization and optionally send RADIUS accounting messages.Figure 37 displays a typical call flow for psk-radius and cert-radius.Figure 37: Call Flow for psk-radius/cert-radius
• User-Password: One of following value’s hash according to section 5.2 of RFC 2865, Remote Authentication Dial In User Service (RADIUS).
→ Otherwise, a CLI configured key via the password command in the radius-authentication-policy; if password is not configured in this case, then system will not include User-Password attribute in access-request.
• Other RADIUS attributes (dependent on the config>ipsec>radius-auth-policy> include-radius-attribute configuration).Once the tunnel is successfully created, the system could optionally (depending on the configuration of the radius-accounting-policy under the ipsec-gw context), send an accounting-start packet to the RADIUS server, and also send an accounting-stop when the tunnel is removed. The user can also enable the interim-update option in the radius-accounting-policy.
• The following attributes are dependent on the radius-acct-policy> include-radius-attribute configuration:The system also supports RADIUS disconnect messages to remove an established tunnel, If accept-coa (existing command) is enabled in the radius-server configuration, then the system will accept the disconnect-request message (RFC 5176, Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)), and tear down the specified remote-access tunnel.config>router>radius-server>server#[no] accept-coaNote: For security reasons, the system will only accept a disconnect-request when accept-coa is configured and the disconnect-request comes from the corresponding server.By default, the system will only return what the client has requested in the CFG_REQUEST payload. However, this behavior can be overridden by configuring relay-unsolicited-cfg-attribute in the ike-policy. With this configuration, the configured attributes returned from the source (such as the RADIUS server) will be returned to the client regardless if the client has requested it in the CFG_REQUEST payload.Figure 38 shows a typical call flow of EAP authentication:Figure 38: Typical Call Flow of EAP AuthenticationEAP authentication is enabled by configuring authentication eap. Once enabled, after the received IKE_AUTH request from the client, the system sends an EAP-Response/ID with IDi as the value in the access-request to AAA. AAA will return a method request and the system starts passing through between the client and AAA. (as shown in Figure 38).The generation of the AUTH payload in the IKE_AUTH response sent by the SR OS (message 4 in flow shown above) is dependent on the own-auth-method configuration:The system provides a method to support EAP and other authentication methods on the same ipsec-gw policy. This is enabled by configuring auto-eap-radius or auto-eap as the auth-method in the ike-policy.With auto-eap-radius:
• If there is no AUTH payload in an IKE_AUTH request, then the system uses EAP to authenticate the client and will also use own-auth-method to generate the AUTH payload.
→
→
→
− If the Auth Method field of the AUTH payload is PSK, then the system proceeds as auth-method:psk-radius.
− If the Auth Method field of the AUTH payload is RSA or DSS, then the system proceeds as auth-method:cert-radius.The system will use auto-eap-own-method to generate the AUTH payload.
• If there is no AUTH payload in IKE_AUTH request, then the system uses EAP to authenticate the client and will also use own-auth-method to generate AUTH payload.
→
→
→
→ If the Auth Method field of the AUTH payload is RSA or DSS, then the system proceeds as auth-method cert-authFigure 39 shows a typical call flow of certificate or PSK authentication without RADIUS.Figure 40 shows a typical call flow for EAP authentication.Figure 40: Typical Call Flow for EAP AuthenticationIn this configuration, the radius-authentication-policy and radius-accounting-policy in the ipsec-gw context are ignored.
•
• replay-proxy (config>service>vprn>if>dhcp>relay-proxy) on interface that has gi-address as the interface address must be enabled to use a DHCPv4 address assignment.
1.
2.
3.
• LAA — The configuration of config>redundancy>multi-chassis>peer >sync local-dhcp-server is not needed. This is because the assigned address will be synced as part of the IPSec tunnel states.
•
→ The DHCP server address (ipsec-gw>dhcp>server) configured should be the same on both chassis:config>service>vprn>if>sap>ipsec-tun
[no] dest-ip <v4/v6 addr>
•
•