1. Home
  2. Technical User Guide
  3. Tips and Tricks
  4. Reaching IPv4-only resources like GitHub or Docker Hub from IPv6 FABRIC sites

Reaching IPv4-only resources like GitHub or Docker Hub from IPv6 FABRIC sites

Overview

It is 2021 and yet some major Internet services to this day do not have a presence in IPv6. Given that a number of FABRIC sites are only reachable via IPv6, a question arises how to communicate with those major services from those sites. The answer is relatively simple – SSH proxying. SSH software installed on end-user hosts and on FABRIC resources is enough to make this work. What follows is a step-by-step explanation.

From here on out we make an assumption that you already know how to login to your VM via a bastion host.

Using cURL with SSH proxy

In this scenario a user has a laptop, there is a FABRIC bastion host bastion and a remote sliver VM which needs access to GitHub vm. We will show how to set up an SSH proxy so you can reach IPv4 resources via cURL, git and docker tools.

  1. Start a proxy on the laptop:
laptop$ ssh -N -D localhost:5678 localhost

2. Start the reverse tunnel from vm:

laptop$ ssh -J bastion-1.fabric-testbed.net -R localhost:4567:localhost:5678 <vm IPv6 address>

3. Verify the proxy is listening:

vm$ netstat -ntl | grep 4567
tcp        0      0 127.0.0.1:4567          0.0.0.0:*               LISTEN
tcp6       0      0 ::1:4567        

4. Use cURL with socks5h proxy type (to ensure DNS resolution is done proxy-side). Note using -x instead of –proxy option – seems to work more reliably:

vm$ curl -x socks5h://localhost:4567 https://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>

Using GitHub via proxy

Verify steps 1-4 above work. To enable git to use the proxy:

vm$ git config --global http.proxy 'socks5h://localhost:4567'

Now you can clone from github:

vm$ git clone https://github.com/fabric-testbed/InformationModel.git

Using Docker Hub via proxy

Verify steps 1-4 above work. For Docker hub edit ~/.docker/config.json (but also see below – Docker Hub now has beta IPv6 capability):

{
        "proxies":
        {
            "default":
            {
                "httpProxy": "socks5h://127.0.0.1:4567",
                "httpsProxy": "socks5h://127.0.0.1:4567",
                "noProxy": ""
            }
        }
    }

Resources in transition to IPv6

Some resources until recently available only via IPv4 are starting to get native IPv6 capability. The list of those with instructions is below:

Updated on June 13, 2022

Was this article helpful?

Related Articles

Need Help?
Can't find the answer you're looking for? Search and ask questions in the forum!
Go to FORUM

Leave a Comment