Dynamic IPSEC VPN for ADSL Customers
This document contains a IPSec configuration example (using packet-based Junos OS), where client IP address keep changing. This commonly occurs in a customer scenario with ADSL modems, which are taking the IP address from the ISP'S DHCP server for the nodes connected to it.
Node_1----->Device1(DHCP Relay)--->Device2(Dhcp Server)--->Device3(M10i)---->Node-2 (Customer) |------------ISP------------|
|<-----------------IPSEC------------------>|
Device1:
interfaces { fe-0/0/0 { unit 0 { family inet { address 192.168.1.1/24; } } } sp-1/2/0 { unit 1 { family inet; service-domain inside; } unit 2 { family inet; service-domain outside; } } ge-1/3/0 { vlan-tagging; unit 50 { vlan-id 50; family inet { address 193.1.1.2/24; } } } lo0 { unit 0 { family inet { address 10.1.1.1/32; } } } } forwarding-options { dhcp-relay { server-group { DHCP_SERVER { 193.1.1.1; } } active-server-group DHCP_SERVER; group DHCP { interface fe-0/0/0.0; interface fe-0/3/0.0; interface fe-0/3/1.0; } } } routing-options { static { route 192.1.1.0/24 next-hop sp-1/2/0.1; route 10.0.2.18/32 next-hop 193.1.1.1; route 10.0.6.1/32 next-hop 193.1.1.1; } } access { profile demo-ike-access-profile { client * { ike { allowed-proxy-pair local 0.0.0.0/0 remote 0.0.0.0/0; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA interface-id demo-ipsec-interface-id; } } } } services { service-set SERVICE-SET { next-hop-service { inside-service-interface sp-1/2/0.1; outside-service-interface sp-1/2/0.2; } ipsec-vpn-options { local-gateway 193.1.1.2; } ipsec-vpn-rules IPSEC-RULE; } ipsec-vpn { rule IPSEC-RULE { term 1 { from { destination-address { 192.1.1.0/24; } } then { remote-gateway 10.0.2.18; dynamic { ike-policy IKE-POLICY; ipsec-policy IPSEC-POLICY; } } } match-direction input; } ipsec { proposal IPSEC-PROPOSAL { protocol esp; authentication-algorithm hmac-sha1-96; encryption-algorithm 3des-cbc; } policy IPSEC-POLICY { perfect-forward-secrecy { keys group2; } proposals IPSEC-PROPOSAL; } } ike { proposal IKE-PROPOSAL { authentication-method pre-shared-keys; authentication-algorithm sha1; encryption-algorithm 3des-cbc; } policy IKE-POLICY { mode main; proposals IKE-PROPOSAL; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA } } establish-tunnels immediately; } }
***************************************************************************************************************** Device2: //******Router on ISP side. Providing DHCP IP address to Node_1 via ADSL on CE side(Device1).
services { dhcp { maximum-lease-time infinite; default-lease-time infinite; pool 192.168.1.0/24 { address-range low 192.168.1.1 high 192.168.1.254; exclude-address { 192.168.1.1; 192.168.1.254; } domain-name TEST_1; router { 192.168.1.1; } server-identifier 192.168.1.1; } pool 192.168.2.0/24 { address-range low 192.168.2.1 high 192.168.2.254; exclude-address { 192.168.2.1; 192.168.2.254; } domain-name TEST_2; router { 192.168.2.1; } server-identifier 192.168.2.1; } } } } interfaces { ge-0/0/0 { vlan-tagging; unit 44 { vlan-id 44; family inet { address 10.0.4.5/30; } } unit 47 { vlan-id 47; family inet { address 10.0.2.17/30; } } unit 50 { vlan-id 50; family inet { address 193.1.1.1/24; } } unit 412 { vlan-id 412; family inet { address 10.0.4.14/30; } } } lo0 { unit 0 { family inet { address 10.0.6.1/32; } } } } routing-options { static { route 192.168.1.0/24 next-hop 193.1.1.2; route 192.168.2.0/24 next-hop 193.1.1.2; } } protocols { ospf { area 0.0.0.0 { interface all; } } }
interfaces { fe-0/3/3 { vlan-tagging; unit 88 { vlan-id 88; family inet { address 10.0.8.10/30; } family mpls; } } sp-1/2/0 {
//***Each customer needs to have an inside and one outside interface.
unit 1 { dial-options { ipsec-interface-id demo-ipsec-interface-id; shared; } family inet; service-domain inside; } unit 2 { family inet; service-domain outside; } unit 3 { dial-options { ipsec-interface-id demo-ipsec-interface-id_2; shared; } family inet; service-domain inside; } unit 4 { family inet; service-domain outside; } unit 5 { dial-options { ipsec-interface-id demo-ipsec-interface-id_5; shared; } family inet; service-domain inside; } unit 6 { family inet; service-domain outside; } unit 7 { dial-options { ipsec-interface-id demo-ipsec-interface-id_7; shared; } family inet; service-domain inside; } unit 8 { family inet; service-domain outside; } unit 9 { dial-options { ipsec-interface-id demo-ipsec-interface-id_192; shared; } family inet; service-domain inside; } unit 10 { family inet; service-domain outside; } } ge-1/3/0 { vlan-tagging; unit 47 { vlan-id 47; family inet { address 10.0.2.18/30; } family mpls; } unit 48 { vlan-id 48; family inet { address 10.0.2.22/30; } family mpls; } unit 51 { vlan-id 51; family inet { address 192.1.1.2/24; } } unit 200 { vlan-id 200; family inet { address 172.16.41.6/30; } } unit 201 { vlan-id 201; family inet { address 172.16.42.6/30; } } unit 404 { vlan-id 404; family inet { address 172.16.40.6/30; } } } lo0 { unit 0 { family inet { address 10.0.6.7/32; } } } } routing-options { static { route 172.24.18.168/32 next-hop 10.209.75.254; route 193.1.1.0/24 next-hop 10.0.2.17; route 192.168.1.0/24 next-hop 10.0.2.17; } autonomous-system 100; } protocols { ospf { area 0.0.0.0 { interface all; interface fxp0.0 { disable; } } } } access {
//***This configuration will be done on per customer basis***//
profile demo-ike-access-profile { client * { ike { allowed-proxy-pair local 0.0.0.0/0 remote 0.0.0.0/0; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA interface-id demo-ipsec-interface-id; } } } profile demo-ike-access-profile_2 { client * { ike { allowed-proxy-pair local 0.0.0.0/0 remote 0.0.0.0/0; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA interface-id demo-ipsec-interface-id_2; } } } profile demo-ike-access-profile_5 { client * { ike { allowed-proxy-pair local 0.0.0.0/0 remote 0.0.0.0/0; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA interface-id demo-ipsec-interface-id_5; } } } profile demo-ike-access-profile_7 { client * { ike { allowed-proxy-pair local 0.0.0.0/0 remote 0.0.0.0/0; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA interface-id demo-ipsec-interface-id_7; } } } profile demo-ike-access-profile_192 { client * { ike { allowed-proxy-pair local 0.0.0.0/0 remote 0.0.0.0/0; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA interface-id demo-ipsec-interface-id_192; } } } } services {
//*** This configuration will be done on per customer basis***//
service-set demo-service-set { next-hop-service { inside-service-interface sp-1/2/0.1; outside-service-interface sp-1/2/0.2; } ipsec-vpn-options { local-gateway 10.0.2.18; ike-access-profile demo-ike-access-profile; } } service-set demo-service-set_2 { next-hop-service { inside-service-interface sp-1/2/0.3; outside-service-interface sp-1/2/0.4; } ipsec-vpn-options { local-gateway 172.16.40.6; ike-access-profile demo-ike-access-profile_2; } } service-set demo-service-set_5 { next-hop-service { inside-service-interface sp-1/2/0.5; outside-service-interface sp-1/2/0.6; } ipsec-vpn-options { local-gateway 172.16.41.6; ike-access-profile demo-ike-access-profile_5; } } service-set demo-service-set_7 { next-hop-service { inside-service-interface sp-1/2/0.7; outside-service-interface sp-1/2/0.8; } ipsec-vpn-options { local-gateway 172.16.42.6; ike-access-profile demo-ike-access-profile_7; } } service-set demo-service-set_192 { next-hop-service { inside-service-interface sp-1/2/0.9; outside-service-interface sp-1/2/0.10; } ipsec-vpn-options { local-gateway 192.168.1.2; ike-access-profile demo-ike-access-profile_192; } } }
2020-02-26: minor non-technical edits.