{"id":263,"date":"2017-08-13T17:17:13","date_gmt":"2017-08-13T21:17:13","guid":{"rendered":"http:\/\/puluka.com\/home\/?p=263"},"modified":"2017-08-13T17:17:13","modified_gmt":"2017-08-13T21:17:13","slug":"screenos-hub-spoke-vpn-with-mix-of-policy-and-route-spoke-sites","status":"publish","type":"post","link":"http:\/\/puluka.com\/home\/networking\/screenos\/screenos-hub-spoke-vpn-with-mix-of-policy-and-route-spoke-sites\/","title":{"rendered":"ScreenOS &#8211; Hub-Spoke VPN with mix of Policy and Route spoke sites"},"content":{"rendered":"<p><strong>Product<\/strong>: ScreenOS SSG Series<br \/>\n<strong>Version<\/strong>: 6.2 and up<\/p>\n<h2>Network Topology:<\/h2>\n<p><strong>Network diagram:<\/strong><\/p>\n<p>Hub and spoke VPN with multiple sites using point to multipoint<br \/>\nTwo sites routing VPN with SSG<br \/>\nTwo sites Policy VPN with any standards based firewall<\/p>\n<p><a href=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2017\/08\/MultiPolicyHub.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-264\" src=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2017\/08\/MultiPolicyHub-300x183.jpg\" alt=\"\" width=\"300\" height=\"183\" srcset=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2017\/08\/MultiPolicyHub-300x183.jpg 300w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2017\/08\/MultiPolicyHub-768x469.jpg 768w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2017\/08\/MultiPolicyHub-1024x626.jpg 1024w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2017\/08\/MultiPolicyHub.jpg 1213w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>Description:<\/h2>\n<p>This hub and spoke setup allows multiple sites on either route or policy based VPN to connect to a common tunnel interface. This uses static routes and NHTB (Next hop Tunnel Binding) to direct traffic in the network. These allow the mixing of SSG and non-SSG policy based VPN on the same hub and spoke network.<\/p>\n<p>The configuration requires a base setup on the hub location where primary services are connected. Each spoke then has a configuration set to connect and provide these services to the hub. While the hub adds a section for each new spoke that is created in the system.<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li>Configure base services on the hub location. This occurs only once and remains the same no matter how many spokes are added to the system.<\/li>\n<li>For each spoke there are two sets of configuration<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>A)Hub configuration for VPN access to the spoke<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>B)Spoke configuration settting up basic services and the VPN to the hub<\/ol>\n<h3>Zone Layout<\/h3>\n<p>untrust interface is ethernet0\/0<\/p>\n<p>trust interface is bgroup0<\/p>\n<p>tunnel.1 interface is in trust zone<\/p>\n<p>This zone layout puts all sites and tunnels into the same security zone.\u00a0 No policies need to be created on any device for full communications across the entire core and remote network.\u00a0 This is assuming that intra zone blocking is NOT enabled on any of the firewalls for the trust zone.\u00a0 This is the default behavior for the trust zone. You can change the zone of the tunnel interface to untrust and create policies as needed to allow traffic.<\/p>\n<h3>Configuration<\/h3>\n<p><strong><em>1. Hub location base configuration: <\/em><\/strong><\/p>\n<p>Create VPN tunnel interface<\/p>\n<p>set interface tunnel.1 zone Trust<br \/>\nset interface tunnel.1 ip 10.0.0.1\/24<\/p>\n<p><em><strong>2. A. Hub location per spoke configuration: <\/strong><\/em><\/p>\n<p>Repeat only these commands for additional spoke sites<\/p>\n<p>Create VPN Gateway to spoke<\/p>\n<p>set ike gateway SpokeA-GW address 2.2.2.2 Main outgoing-interface &#8220;ethernet0\/0&#8221; preshare Juniper== sec-level standard<br \/>\nset ike gateway SpokeB-GW address 3.3.3.3 Main outgoing-interface &#8220;ethernet0\/0&#8221; preshare Juniper== sec-level standard<br \/>\nset ike gateway SpokeC-GW address 4.4.4.4 Main outgoing-interface &#8220;ethernet0\/0&#8221; preshare Juniper== sec-level standard<br \/>\nset ike gateway SpokeD-GW address 5.5.5.5 Main outgoing-interface &#8220;ethernet0\/0&#8221; preshare Juniper== sec-level standard<\/p>\n<p>Create VPN tunnel bound to tunnel interface<\/p>\n<p>SSG tunnels use the remote tunnel interface as the NHTB gateway<\/p>\n<p>set vpn SpokeA gateway SpokeA-GW no-replay tunnel idletime 0 sec-level standard<br \/>\nset vpn SpokeA bind interface tunnel.1<br \/>\nset interface tunnel.1 nhtb 10.0.0.2 vpn SpokeA<br \/>\nset vpn SpokeB gateway SpokeB-GW no-replay tunnel idletime 0 sec-level standard<br \/>\nset vpn SpokeB bind interface tunnel.1<br \/>\nset interface tunnel.1 nhtb 10.0.0.3 vpn SpokeA<\/p>\n<p>Policy Based Tunnels add the Proxy-id for the connection and the remote router ip for the NHTB gateway<\/p>\n<p>set vpn SpokeC gateway SpokeC-GW no-replay tunnel idletime 0 sec-level standard<br \/>\nset vpn SpokeC bind interface tunnel.1<br \/>\nset interface tunnel.1 nhtb 10.0.4.1 vpn SpokeC<br \/>\nset vpn SpokeC proxy-id local-ip 10.0.1.0\/24 remote-ip 10.0.4.0\/24 &#8220;ANY&#8221;<br \/>\nset vpn SpokeD gateway SpokeD-GW no-replay tunnel idletime 0 sec-level standard<br \/>\nset vpn SpokeD bind interface tunnel.1<br \/>\nset interface tunnel.1 nhtb 10.0.5.1 vpn SpokeD<br \/>\nset vpn SpokeD proxy-id local-ip 10.0.1.0\/24 remote-ip 10.0.5.0\/24 &#8220;ANY&#8221;<\/p>\n<p>Create Static Routes to spoke sites<\/p>\n<p>set route 10.0.2.0\/24 interface tunnel.1 gateway 10.0.0.2<br \/>\nset route 10.0.3.0\/24 interface tunnel.1 gateway 10.0.0.3<br \/>\nSSG use the tunnel interface as the gateway<br \/>\nset route 10.0.4.0\/24 interface tunnel.1 gateway 10.0.4.1<br \/>\nset route 10.0.5.0\/24 interface tunnel.1 gateway 10.0.5.1<\/p>\n<p>Policy based VPN use the remote LAN router interface as the gateway<\/p>\n<p><em><strong>2. B. Spoke location: <\/strong><\/em><\/p>\n<p>All steps on spokes are identical with exceptions noted below. Change the indicated parameters to match the spoke location on the network as each new spoke is added.<\/p>\n<p>These only apply the SSG route based VPN sites. The policy sites are configured by the normal standard on the remote equipment.<\/p>\n<p>Create VPN tunnel interface<\/p>\n<p>set interface tunnel.1 zone Trust<br \/>\nset interface tunnel.1 ip 10.0.0.2\/24<br \/>\n**Change the ip address to match the spoke location<\/p>\n<p>Create VPN Gateway to hub<\/p>\n<p>set ike gateway Hub-gw address 1.1.1.1 Main outgoing-interface ethernet0\/0 preshare juniper== sec-level standard<br \/>\nCreate VPN tunnel bound to tunnel interface<br \/>\nset vpn Hub gateway Hub-GW no-replay tunnel idletime 0 sec-level standard<br \/>\nset vpn Hub bind interface tunnel.1<\/p>\n<p>Create Static route to hub<\/p>\n<p>set route 10.0.1.0\/24 interface tunnel.1 gateway 10.0.0.1<\/p>\n<p>NHTB is only needed on the hub as each spoke has only one tunnel<\/p>\n<h2>Verification:<\/h2>\n<p>routing table checks<\/p>\n<p>Running &#8220;get route protocol static&#8221; on a spoke should show the routes to the hub with a capital S label. The hub site will show all of the sites with their static routes.<\/p>\n<p>get route protocol static<br \/>\nIPv4 Dest-Routes for &lt;untrust-vr&gt; (0 entries)<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nH: Host C: Connected S: Static A: Auto-Exported<br \/>\nI: Imported R: RIP P: Permanent D: Auto-Discovered<br \/>\nN: NHRP<br \/>\niB: IBGP eB: EBGP O: OSPF E1: OSPF external type 1<br \/>\nE2: OSPF external type 2 trailing B: backup route<br \/>\nIPv4 Dest-Routes for &lt;trust-vr&gt; (14 entries)<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nID IP-Prefix Interface Gateway P Pref Mtr Vsys<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n* 13 10.0.2.0\/24 tun.1 10.0.0.2 S 20 1 Root<br \/>\n* 12 10.0.3.0\/24 tun.1 10.0.0.3 S 20 1 Root<br \/>\n* 11 10.0.4.0\/24 tun.1 10.0.4.1 S 20 1 Root<br \/>\n* 14 10.0.5.0\/24 tun.1 10.0.5.1 S 20 1 Root<\/p>\n<p>From the hub site confirm ping to all remote router ip addresses<\/p>\n<p>ping 10.0.2.1 from bgroup0<br \/>\nType escape sequence to abort<br \/>\nSending 5, 100-byte ICMP Echos to 192.168.141.1, timeout is 1 seconds from bgroup0<br \/>\n!!!!!<br \/>\nSuccess Rate is 100 percent (5\/5), round-trip time min\/avg\/max=62\/62\/63 ms<\/p>\n<h2>References:<\/h2>\n<h3>ScreenOS Concepts &amp; Examples Guides<\/h3>\n<p><a href=\"http:\/\/www.juniper.net\/techpubs\/software\/screenos\/screenos6.2.0\/index.html\">http:\/\/www.juniper.net\/techpubs\/software\/screenos\/screenos6.2.0\/index.html<\/a><\/p>\n<p><strong>Route based VPN tunnels<\/strong><br \/>\nVolume 5 Virtual Private Networks<br \/>\nChapter 3 VPN Guidelines<br \/>\nChapter 4 VPN: Sit-to-site VPN Configurations<\/p>\n<p><strong>Source Based Routing<\/strong><br \/>\nVolume 7 Routing<br \/>\nChapter 2 \u2013 Source Based Routing Table<\/p>\n<p><strong>Point to multi-point tunnels to share tunnel interfaces<\/strong><br \/>\nVolume 5 VPN<br \/>\nChapter 7 Advanced VPN Features: Multiple Tunnels per Tunnel Interface<\/p>\n<p>Originally Posted May 30, 2011<br \/>\nLast Revised on May 30, 2011<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product: ScreenOS SSG Series Version: 6.2 and up Network Topology: Network diagram: Hub and spoke VPN with multiple sites using point to multipoint Two sites routing VPN with SSG Two sites Policy VPN with any [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-screenos"],"_links":{"self":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":1,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"predecessor-version":[{"id":265,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts\/263\/revisions\/265"}],"wp:attachment":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}