{"id":1100,"date":"2008-11-23T19:19:29","date_gmt":"2008-11-23T18:19:29","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/"},"modified":"2008-11-23T19:19:29","modified_gmt":"2008-11-23T18:19:29","slug":"getting-connected-to-the-internet-over-ipv6-using-juniperscreenos","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/","title":{"rendered":"Getting connected to the internet over IPv6 using Juniper\/screenos"},"content":{"rendered":"<p>It started snowing today, so I guessed it would be the perfect timing to write a quick and dirty howto on getting connected to the internet over IPv6, using a Juniper ssg5.&#160; I\u2019ll also discuss the easy steps to configure Windows and Linux clients for IPv6 and access to the internet.<\/p>\n<p>Before looking at the steps &amp; procedures, this is a view from our appartment, about 15 minutes ago.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/11\/img-8103.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"IMG_8103\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"192\" alt=\"IMG_8103\" src=\"\/wp-content\/uploads\/2008\/11\/img-8103-thumb.jpg\" width=\"249\" border=\"0\" \/><\/a> <\/p>\n<p>Main configuration steps<\/p>\n<ul>\n<li>register with a tunnel broker, set up heartbeat and set up the IPv6 over IPv4 tunnel <\/li>\n<li>keep the tunnel alive <\/li>\n<li>request a IPv6 subnet and make it available via the tunnel <\/li>\n<li>configure Windows clients <\/li>\n<li>configure Linux clients <\/li>\n<li>deal with DNS resolution for IPv6 hosts <\/li>\n<\/ul>\n<p>&#160;<\/p>\n<h3><\/h3>\n<h3>Get registered with a tunnel broker<\/h3>\n<p>Because not a lot of ISP\u2019s offer native IPv6 routing towards the internet, we\u2019ll use a tunnel broker service, which will allow us to tunnel IPv6 packets over IPv4 packets. You can find more information about IPv6 tunnel brokers on <a href=\"http:\/\/en.wikipedia.org\/wiki\/List_of_IPv6_tunnel_brokers\" target=\"_blank\" rel=\"noopener\">wikipedia<\/a>.<\/p>\n<p>In my example, I have registered for a tunnel with SixXS (<a href=\"http:\/\/www.sixxs.net\">www.sixxs.net<\/a>).&#160; Once your request for a tunnel has been approved, you can set up the tunnel.<\/p>\n<p>We need this tunnel so we can route IPv6 traffic between your clients and other IPv6 hosts on the internet, and vice versa. Without the tunnel, your options are limited, especially if you want to host servers\/services on the IPv6 network etc.<\/p>\n<p>Most (if not all) tunnel brokers offer software that can be installed on an individual client (AICCU client software), allowing you to set up the tunnel towards the broker and route your IPv6 subnet with that client.&#160; But I wanted to make it more generic and use my SSG5 Juniper firewall to host the tunnel, so I can route my entire IPv6 subnet (see later) through the tunnel without using an AICCU client for routing.<\/p>\n<p>That doesn\u2019t mean that you don\u2019t need an AICCU client. In fact, my ISP uses dynamic\/DHCP assigned IP addresses, so I cannot register for a static tunnel. I will need to use some sort of heartbeat protocol to keep the tunnel up and re-establish the tunnel when my internet IP changes.<\/p>\n<p>In my setup, I am using an AICCU client, but only for heartbeat. We\u2019ll come to that in a minute.<\/p>\n<p>After registering your tunnel (in my case with sixxs.net), you will get the tunnel information, usually containing at least the following items : SixXS IPv6, Your IPv6, SixXS IPv4 and Tunnel Type. As indicated above, because I don\u2019t have a static IP, I needed to register a heartbeat tunnel.<\/p>\n<p>The \u201cSixXS IPv6\u201d address indicates the IPv6 pop IP address inside the tunnel. The \u201cYour IPv6\u201d address indicates your IPv6 address in the tunnel. These addresses are only used to set up the tunnel. You cannot use these addresses for hosts behind the tunnel. You\u2019ll have to register a subnet with your tunnel broker in order to get an entire subnet of usable and routable IPv6 addresses that are routed via your tunnel.<\/p>\n<p>The SixXS IPv4 address will be the target address of your tunnel.&#160; So the tunnel will be set up between your own public IP address (provided by your own ISP) and this IPv4 address (at SixXS)<\/p>\n<p>Let\u2019s assume the following parameters :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">SixXS IPv6         : 2001:6f8:001:001::1\/64\nYour IPv6          : 2001:6f8:001:001::2\/64\nSixXS IPv4         : 212.100.184.146\nTunnel Type        : Dynamic (heartbeat)<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<h3>Set up the heartbeat<\/h3>\n<p>Before doing anything else, I have set up the AICCU client on a Windows host. The Juniper screenOS does not support the heartbeat protocol, so I will be used an aiccu client to keep the tunnel alive.&#160; <\/p>\n<p>First, download the aiccu client. The client I\u2019m using is aiccu-2006-07-23-windows-gui.exe<\/p>\n<p>Launch the client, fill out your tunnel information (username, password, etc) and see if you can connect. Make sure to set \u201cBehind NAT\u201d if you are behind NAT, and to enable \u201cAuto Enable\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/11\/image5.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"266\" alt=\"image\" src=\"\/wp-content\/uploads\/2008\/11\/image-thumb5.png\" width=\"339\" border=\"0\" \/><\/a> <\/p>\n<p>Next, register the application as a service&#160; (aiccu-2006-07-23-windows-gui.exe \/i) or use some other script to ensure that, when this host is up, the tunnel is up as well.<\/p>\n<p>Note : you can do the same thing on a linux host as well. You\u2019ll have to create a .conf file, specify the same parameters, and see if it connects.<\/p>\n<p>If the tunnel aiccu client is running, you should see that your tunnel state is set to Heartbeat and the Last Alive timestamp gets updated (for SixXS users : look on their website)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/11\/image6.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"211\" alt=\"image\" src=\"\/wp-content\/uploads\/2008\/11\/image-thumb6.png\" width=\"321\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<h3>Register a IPv6 subnet<\/h3>\n<p>Before we can set up the tunnel on ScreenOS and use it to route traffic, we need to register our own IPv6 subnet, so we can use addresses from this subnet for our local hosts.<\/p>\n<p>When you have registered your tunnel (and when the tunnel is approved) you will get something like this :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">-------\n  PoP Name     : bebru01 (de.easynet [AS4589])\n  Subnet IPv6  : 2001:6f8:1430::\/48\n  Routed to    : 2001:6f8:001:001::2\/64\n  Your IPv4    : heartbeat\n-------<\/pre>\n<\/div>\n<p>As you can see, this subnet (in my case 2001:6f8:1430::\/48) will be routed towards my end of the tunnel (2001:6f8:001:001::2\/64). <\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<h3>Create the tunnel on Juniper ScreenOS<\/h3>\n<p>We have already set up the tunnel using the aiccu client, but we\u2019ll only use that aiccu client for the heartbeat, not for routing.&#160; The idea is to use the Juniper ssg firewall to provide the routing towards the tunnel (and to route incoming requests from external IPv6 hosts back to your own subnet).&#160; The windows host that is running the aiccu client is just part of my private IPv4 network and that will not change.&#160; <\/p>\n<p>You\u2019ll need 3 interfaces to set this up : 1 public interface (the interface that has the ISP assigned public IP address), 1 private interface (either an interface that is already used for your LAN, or a new dedicated interface if you want to separate IPv4 and IPv6 traffic), and one tunnel interface (a virtual interface that will be used for setting up the tunnel towards the tunnel broker and the route IPv6 traffic into.<\/p>\n<p>Let\u2019s assume that eth0\/0 is the public interface, eth0\/4 is a dedicated private interface, and tunnel.1 is the tunnel interface.<\/p>\n<p>Since I\u2019m going to use eth0\/4 as a dedicated interface for IPv6, I\u2019m also going to create a separate zone for this. After all, any IPv6 host from your subnet behind this interface can reachable over the internet. There is no NAT involved, only routing. So if you want to keep things secured, I would strongly recommend created a dedicated interface and setting up a new zone.<\/p>\n<p>In my setup, the zone that holds my public interface is called \u201cPublic\u201d. (= \u201cUntrust'\u201d zone in most default setups\u201d).&#160; We will need to bind the tunnel interface to this zone.&#160; The eth0\/4 will act as default gateway for the hosts in my own IPv6 subnet, so we\u2019ll need to set an IPv6 address from this subnet to this interface.&#160; In theory, you can use the entire \/48 network, but that would be overkill. A \/64 subnet would be more than big enough, so we\u2019ll subnet the\/48 network into \/64 networks first, and use IPv6 addresses from one of the subnets for now.&#160; I\u2019ll use 2001:6f8:1430::1\/64 as IPv6 address for the private eth0\/4 interface.&#160; By the way, you can find an excellent subnet calculator&#160; at <a title=\"http:\/\/www.subnetonline.com\/pages\/subnet-calculators\/ipv6-subnet-calculator.php\" href=\"http:\/\/www.subnetonline.com\/pages\/subnet-calculators\/ipv6-subnet-calculator.php\">http:\/\/www.subnetonline.com\/pages\/subnet-calculators\/ipv6-subnet-calculator.php<\/a><\/p>\n<p>\n  <br \/>Before you can use IPv6, you\u2019ll need to enable IPv6 first, and reboot the firewall<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">set envar ipv6=yes<\/pre>\n<\/div>\n<p>You\u2019ll notice, after the reboot, that the \u201cANY\u201d policy elements are now gone. \u201cANY\u201d is now replaced with \u201cANY-IPv4\u201d, and a new \u201cANY-IPv6\u201d was added.<\/p>\n<p>After the reboot, set up the zones and interfaces<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\"><p>#create a new zone\nset zone name PublicIPv6\n#assign eth0\/4 to the new zone\nset interface eth0\/4 zone PublicIPv6\n#set interface mode \nset interface eth0\/4 ipv6 mode &quot;router&quot;\n# set the IPv6 address of this interface to a IPv6 IP address in the subnet that was assigned to you (not the tunnel, use subnet Ip)\nset interface eth0\/4 ipv6 ip 2001:6f8:1430::1\/64\nset interface eth0\/4 ipv6 enable\nset interface eth0\/4 mode route<\/p><p>set interface ethernet0\/4 ipv6 nd nud<br \/>set interface ethernet0\/4 ipv6 nd dad-count 0<\/p><p>\n\n#create a tunnel interface\nset interface tunnel.1 zone Public\n#bind tunnel interface to the public interface\nset interface tunnel.1 ip unnumbered interface ethernet0\/0\nset interface &quot;tunnel.1&quot; ipv6 mode &quot;host&quot;\nset interface &quot;tunnel.1&quot; ipv6 enable\nset interface tunnel.1 tunnel encap ip6in4 manual\n#connect the tunnel to your IPv6 tunnel broker pop IP address\nset interface tunnel.1 tunnel local-if ethernet0\/0 dst-ip 212.100.184.146\nset interface tunnel.1 mtu 1480\nset interface tunnel.1 ipv6 nd nud\nset interface tunnel.1 ipv6 nd dad-count 0\n\n#set up the public interface\nset interface eth0\/0 ipv6 mode &quot;host&quot;\n#assign Your IPv6 address to this interface\nset interface eth0\/0 ipv6 ip 2001:6f8:001:001::2\/64\nset interface eth0\/0 ipv6 enable\nset interface ethernet0\/0 ipv6 nd nud<\/p><\/pre>\n<\/div>\n<p>Note : SixXS will attempt to ping your public interface in order to verify that it can still access your end of the tunnel. This means that you will need to allow incoming ping on your public interface.&#160; Add the IPv4 address of the broker to the list of manager-ip and enable ping on eth0\/0 :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">set admin manager-ip 212.100.184.146 255.255.255.255\nset interface ethernet0\/0 ip manageable\nset interface ethernet0\/0 manage ping<\/pre>\n<\/div>\n<p>The interfaces and tunnel are now ready. If you look at the tunnel.1 interface state, it should say \u201clink up\u201d<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">ssg5-1-<span style=\"color: #0000ff\">&gt;<\/span> get int tunnel.1\nInterface tunnel.1:\n  description tunnel.1\n  number 20, if_info 1768, if_index 1, mode route\n  link up\n  ipv6 is enable\/operable, host mode.\n  ipv6 operating mtu 1480, learned mtu 0\n  ipv6 Interface-ID: 000000004e157114\n  ipv6 fe80::4e15:7114\/64, link local, PREFIX\n  ipv6 ff02::1:ff15:7114, solicited-node scope\n  vsys Root, zone Public, vr trust-vr\n  admin mtu 1480, operating mtu 1480, default mtu 1500\n  *ip 0.0.0.0\/0  unnumbered, source interface ethernet0\/0\n  *manage ip 0.0.0.0\n  pmtu-v4 disabled, pmtu-v6 enabled(1480), \n  ping disabled, telnet disabled, SSH disabled, SNMP disabled\n  web disabled, ident-reset disabled, SSL disabled\n\n  OSPF disabled  BGP disabled  RIP disabled  RIPng disabled  mtrace disabled\n  PIM: not configured  IGMP not configured\n  NHRP disabled\n  bandwidth: physical 0kbps, configured egress [gbw 0kbps mbw 0kbps]\n             configured ingress mbw 0kbps, current bw 0kbps\n             total allocated gbw 0kbps\ntunnel: local ethernet0\/0, remote 212.100.184.146\n  encap: IP6IN4_MANUAL (2)\n  keep-alive: off, interval 10(using default), threshold 3(using default)\n      status: last send 0, last recv 0\nNumber of SW session: 8024, hw sess err cnt 0<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<h3>Route traffic towards the tunnel<\/h3>\n<p>Now you need to route your IPv6 traffic towards the tunnel. This will ensure your IPv6 hosts can use eth0\/4 as default gateway, and that IPv6 traffic is sent into the tunnel.<\/p>\n<p>We need 2 commands to do this : One for \u2018all traffic\u2019, and one specific host route, needed to reach the SixXS IPv6 IP address (the other end of the tunnel) :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">set route ::\/0 interface tunnel.1 gateway :: preference 20\nset route 2001:6f8:001:001::1\/128 interface tunnel.1 gateway :: preference 20<\/pre>\n<\/div>\n<p>On the firewall, you should now be able to ping the SixXS IPv6 address :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">ping 2001:6f8:001:001::1\nType escape sequence to abort\n\nSending 5, 100-byte ICMP Echos to 2001:6f8:001:001::1, timeout is 1 seconds \n!!!!!\nSuccess Rate is 100 percent (5\/5), round-trip time min\/avg\/max=18\/30\/73 ms<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<h3>Set up Windows clients behind the Juniper firewall : static IP<\/h3>\n<p>Both Windows 2008 and Vista seem to more or less support IPv6 out of the box, so I\u2019ll use these Operating Systems in this post as example. You can set up IPv6 on XP and 2003 as well, but you\u2019ll need to enable IPv6 first and use netsh CLI commands to set up the IP addresses.<\/p>\n<p>On 2008\/Vista, you can edit the IPv6 settings by editing the properties of the network connection, enabling IPv6 and editing the IP settings. <\/p>\n<p>The hosts that need to be able to be IPv6 enabled and need to be able to route to the IPv6 internet via the tunnel, need to be connected to eth0\/4. They will use the IPv6 address as default gateway. So if you want to set static IPv6 2001:6f8:1430::3 (\/64) to a Windows 2008 host, this is what you would have to do :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/11\/image7.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"170\" alt=\"image\" src=\"\/wp-content\/uploads\/2008\/11\/image-thumb7.png\" width=\"180\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/11\/image8.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"123\" alt=\"image\" src=\"\/wp-content\/uploads\/2008\/11\/image-thumb8.png\" width=\"393\" border=\"0\" \/><\/a> <\/p>\n<p>Don\u2019t worry about DNS yet. Save the settings and see if you can access other IPv6 hosts, and that other IPv6 hosts can reach you.<\/p>\n<p>You will need to create a new IPv6 policy. So if you want to allow ping from your subnet towards the internet, and to allow hosts on the internet to connect to you, this is what you need to to :<\/p>\n<p>eth0\/4 is in zone PublicIPv6, and the tunnel interface is in the Public zone (or \u201cUntrust\u201d in a default setup), so we need a policy between those 2 zones :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">#allow outbound traffic\nset policy from PublicIPv6 to Public any any ping permit\n#allow incoming traffic\nset policy from Public to PublicIPv6 any any ping permit<\/pre>\n<\/div>\n<p>From your windows host, try to ping the SixXS IPv6 tunnel IP address. This will ensure your tunnel works and IPv6 routing works as well :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">C:\\<span style=\"color: #0000ff\">&gt;<\/span>ping -6 2001:6f8:001:001::1\n\nPinging 2001:6f8:001:001::1 from 2001:6f8:1430::3 with 32 bytes of data:\nReply from 2001:6f8:001:001::1: time=27ms\nReply from 2001:6f8:001:001::1: time=19ms\nReply from 2001:6f8:001:001::1: time=18ms\nReply from 2001:6f8:001:001::1: time=18ms\n\nPing statistics for 2001:6f8:001:001::1:\n    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),\nApproximate round trip times in milli-seconds:\n    Minimum = 18ms, Maximum = 27ms, Average = 20ms<\/pre>\n<\/div>\n<p>See if hosts on the internet can ping you. On a regular IPv4 host, navigate to <a title=\"http:\/\/www.subnetonline.com\/pages\/ipv6-network-tools\/online-ipv6-ping.php\" href=\"http:\/\/www.subnetonline.com\/pages\/ipv6-network-tools\/online-ipv6-ping.php\">http:\/\/www.subnetonline.com\/pages\/ipv6-network-tools\/online-ipv6-ping.php<\/a>, enter the public IPv6 address of your Windows host (2001:6f8:1430::3) and hit the \u201cPing IPv6\u201d button<\/p>\n<p>You should get 4 replies :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/11\/image9.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"274\" alt=\"image\" src=\"\/wp-content\/uploads\/2008\/11\/image-thumb9.png\" width=\"477\" border=\"0\" \/><\/a> <\/p>\n<p>This proves that the tunnel works, and all traffic gets routed correctly.<\/p>\n<p>&#160;<\/p>\n<h3>Set up Windows clients behind the Juniper firewall : dynamic IP (RA or DHCP)<\/h3>\n<p>If you don\u2019t need\/want to assign static IPv6 addresses, you can use router advertisements (RA) or DHCP to configure your clients. <\/p>\n<p>The easiest way to set up dynamic assignment is to use RA<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">set interface ethernet0\/4 ipv6 ra link-mtu\nunset interface ethernet0\/4 ipv6 ra link-address\nset interface ethernet0\/4 ipv6 ra preference high\nset interface ethernet0\/4 ipv6 ra transmit<\/pre>\n<\/div>\n<p>Change the static IP of your windows host to \u201cdynamically assigned\u201d IP and you\u2019ll notice that it will have received a dynamic address within your subnet.<\/p>\n<p>Routing towards the internet should work right away.<\/p>\n<p>You can also using DHCPv6 if you want to, but RA will do the trick just fine.<\/p>\n<p>&#160;<\/p>\n<h3>Set up Linux client behind the Juniper firewall : dynamic IP using RA<\/h3>\n<p>On Linux (I\u2019ll use Fedora Core 9), this is what you need to do in order to set up IPv6 :<\/p>\n<p>\/etc\/sysconfig\/network<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">NETWORKING=yes\nNETWORKING_IPV6=yes\nHOSTNAME=mylinux<\/pre>\n<\/div>\n<p>\/etc\/sysconfig\/network-scripts\/ifcfg-eth0<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">DEVICE=eth0\nONBOOT=yes\nTYPE=Ethernet\nUSERCTL=no\nIPV6INIT=yes<\/pre>\n<\/div>\n<p>(make sure not to set BOOTPROTO to DHCP, or RA assignment won\u2019t work)<\/p>\n<p>Reboot the host and your Linux host should have received an IPv6 IP address from your own IP subnet<\/p>\n<p>&#160;<\/p>\n<h3>Set up Linux client behind the Juniper firewall : static IP<\/h3>\n<p>Make sure \/etc\/sysconfig\/network contains the \u201cNETWORKING_IPV6=yes\u201d statement<\/p>\n<p>Edit \/etc\/sysconfig\/network-scripts\/ifcfg-eth1 and use the following 2 statements to specify a static IPv6 IP :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">IPV6ADDR=&lt;IPv6-IP-Address&gt;\/&lt;prefix&gt;\nIPV6_DEFAULTGW=&lt;IPv6-IP-Gateway-Address&gt;<\/pre>\n<\/div>\n<div>Example :<\/div>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">DEVICE=eth0\nTYPE=Ethernet\nIPV6_DEFAULTGW=2001:6f8:1430::1\nBOOTPROTO=<span style=\"color: #0000ff\">static<\/span>\nIPV6ADDR=2001:6f8:1430::4\/64\nONBOOT=yes\nUSERCTL=no\nPEERDNS=no\nIPV6INIT=yes<\/pre>\n<\/div>\n<div>&#160;<\/div>\n<div>Show IPv6 routing table on Linux :<\/div>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">route -n -A inet6\n\nKernel IPv6 routing table\nDestination                                 Next Hop                                Flags Metric Ref    Use Iface\n2001:6f8:1430::\/64                          ::                                      U     256    1        0 eth0    \nfe80::\/64                                   ::                                      U     256    0        0 eth0 \n::\/0                                        2001:6f8:1430::1                        UG    1      50       0 eth0    \n::1\/128                                     ::                                      U     0      0        1 lo      \n2001:6f8:1430::\/128                         ::                                      U     0      0        1 lo      \n2001:6f8:1430::4\/128                        ::                                      U     0      21       1 lo      \nfe80::\/128                                  ::                                      U     0      0        1 lo      \nfe80::\/128                                  ::                                      U     0      0        1 lo      \nfe80::20c:29ff:fe94:6f4d\/128                ::                                      U     0      0        1 lo      \nfe80::20c:29ff:fe94:6f57\/128                ::                                      U     0      3        1 lo      \nff00::\/8                                    ::                                      U     256    0        0 eth0 <\/pre>\n<\/div>\n<div>&#160;<\/div>\n<p>&#160;<\/p>\n<h3>What about DNS ?<\/h3>\n<p>If you have hosts that are configured for both IPv6 and IPv4, then name resolution should work as long as the IPv4 DNS server can resolve hostnames into IPv6 addresses.&#160; This means that a DNS query for an AAAA record must resolve into an IPv6 address. Of course, there are not an awfull lot of IPv6 DNS entries available yet.&#160; You should be able, though, to resolve the following hostnames into IPv4 and IPv6 addresses :<\/p>\n<p>ipv6.google.com<br \/>\n  <br \/>www.corelan.be (that\u2019s right, this blog)<\/p>\n<p>You can test the resolution using nslookup (which should show both the A record and the AAAA record)<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">C:\\<span style=\"color: #0000ff\">&gt;<\/span>nslookup ipv6.google.com\n\nNon-authoritative answer:\nName:    ipv6.l.google.com\nAddresses:  2001:4860:0:1001::68\n          208.69.34.132\nAliases:  ipv6.google.com<\/pre>\n<\/div>\n<p>Your ISP should be able to handle this resolution. If not, perhaps you should consider using the opendns DNS servers.&#160; If you now connect with your multi-stack (IPv4 and IPv6) hosts to these websites, the browser\/OS should query for an A record (IPv4 host record); and if the record was found, it will attempt to find the AAAA record as well. If an AAAA record is found, the browser will attempt to connect to the Ipv6 address. If you connect to my blog, you should see your IPv6 IP address at the bottom of the homepage, indicating that you are using the IPv6 address<\/p>\n<p>So far so good, but what if you only use IPv6 on your hosts (and not both IPv4 and IPv6) ?&#160; You won\u2019t be able to connect to an IPv4 DNS server to resolve hostnames.<\/p>\n<p>You may try to use the IPv6 NS servers at ripe (but I\u2019m not sure if that is a good idea), or you can set up a multi-stack host in your own network, acting as DNS server, configured to forward all requests to your ISP (or opendns) DNS servers. That way, you can configure your local IPv6 only hosts to connect to the IPv6 IP address of your local DNS server (which will forward requests over IPv4 to the ISP or opendns), and name resolution will work as well.<\/p>\n<p>I have configured 2001:6f8:1430::3 as a DNS server, and this machine also has an IPv4 IP address and gateway. The DNS server will forward requests to opendns.<\/p>\n<p>When I try to use this server as DNS server in Linux, this is what you should get :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">[user@mylinux \/]# ifconfig eth0\neth0      Link encap:Ethernet  HWaddr 00:0C:29:C5:1E:1F  \n          inet6 addr: 2001:6f8:1430:0:20c:29ff:fec5:1e1f\/64 Scope:Global\n          inet6 addr: fe80::20c:29ff:fec5:1e1f\/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:26188 errors:1 dropped:2 overruns:0 frame:0\n          TX packets:20944 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000 \n          RX bytes:17151695 (16.3 MiB)  TX bytes:2237737 (2.1 MiB)\n          Interrupt:18 Base address:0x1400\n\n\n[user@mylinux \/]# nslookup\n<span style=\"color: #0000ff\">&gt;<\/span> set q=aaaa\n<span style=\"color: #0000ff\">&gt;<\/span> ipv6.google.com\nServer:         2001:6f8:1430::3\nAddress:        2001:6f8:1430::3#53\n\nNon-authoritative answer:\nipv6.google.com canonical name = ipv6.l.google.com.\nipv6.l.google.com       has AAAA address 2001:4860:0:1001::68<\/pre>\n<\/div>\n<p>You can configure DNS on Linux by editing \/etc\/sysconfig\/network-scripts\/ifcfg-eth0 <\/p>\n<p>add a line that says<\/p>\n<p>DNS1=ipv6_ip_of_your_DNS_server (so in my case, this is DNS1=2001:6f8:1430::3)<\/p>\n<p>Save the file, run \u201cservice network restart\u201d and it should work<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It started snowing today, so I guessed it would be the perfect timing to write a quick and dirty howto on getting connected to the internet over IPv6, using a Juniper ssg5.&#160; I\u2019ll also discuss the easy steps to configure Windows and Linux clients for IPv6 and access to the internet. Before looking at the &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Getting connected to the internet over IPv6 using Juniper\/screenos\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[554,64,164,26],"tags":[3742,3735,583],"class_list":["post-1100","post","type-post","status-publish","format-standard","hentry","category-juniper","category-linux","category-networking","category-windows-server","tag-networking","tag-juniper-netscreen-screenos","tag-vpn"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Getting connected to the internet over IPv6 using Juniper\/screenos - Corelan | Exploit Development &amp; Vulnerability Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting connected to the internet over IPv6 using Juniper\/screenos - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"It started snowing today, so I guessed it would be the perfect timing to write a quick and dirty howto on getting connected to the internet over IPv6, using a Juniper ssg5.&#160; I\u2019ll also discuss the easy steps to configure Windows and Linux clients for IPv6 and access to the internet. Before looking at the &hellip; Continue reading &quot;Getting connected to the internet over IPv6 using Juniper\/screenos&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2008-11-23T18:19:29+00:00\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Getting connected to the internet over IPv6 using Juniper\\\/screenos\",\"datePublished\":\"2008-11-23T18:19:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/\"},\"wordCount\":2375,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"networking\",\"juniper netscreen screenos\",\"vpn\"],\"articleSection\":[\"Juniper\",\"Linux and Unix\",\"Networking\",\"Windows Server\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/\",\"name\":\"Getting connected to the internet over IPv6 using Juniper\\\/screenos - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2008-11-23T18:19:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/11\\\/23\\\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting connected to the internet over IPv6 using Juniper\\\/screenos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting connected to the internet over IPv6 using Juniper\/screenos - Corelan | Exploit Development &amp; Vulnerability Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/","og_locale":"en_US","og_type":"article","og_title":"Getting connected to the internet over IPv6 using Juniper\/screenos - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"It started snowing today, so I guessed it would be the perfect timing to write a quick and dirty howto on getting connected to the internet over IPv6, using a Juniper ssg5.&#160; I\u2019ll also discuss the easy steps to configure Windows and Linux clients for IPv6 and access to the internet. Before looking at the &hellip; Continue reading \"Getting connected to the internet over IPv6 using Juniper\/screenos\"","og_url":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2008-11-23T18:19:29+00:00","author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Getting connected to the internet over IPv6 using Juniper\/screenos","datePublished":"2008-11-23T18:19:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/"},"wordCount":2375,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["networking","juniper netscreen screenos","vpn"],"articleSection":["Juniper","Linux and Unix","Networking","Windows Server"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/","url":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/","name":"Getting connected to the internet over IPv6 using Juniper\/screenos - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2008-11-23T18:19:29+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2008\/11\/23\/getting-connected-to-the-internet-over-ipv6-using-juniperscreenos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Getting connected to the internet over IPv6 using Juniper\/screenos"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":8729,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/1100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=1100"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/1100\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=1100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=1100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=1100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}