def METHOD_NAME():
    "Execute this test script"
    # output info level logs
    setLogLevel('info')
    # start up our network
    net = Network()
    def execPrint(node, cmd):
        "helper - prints a command and runs it printing the output"
        p('%s: %s' % (node.IP(), cmd))
        p(node.cmd(cmd))
    def exitCode(node, cmd):
        "helper - prints a command - runs it with no output - returns exit code"
        p('%s: %s' % (node.IP(), cmd))
        cmd = '%s > /dev/null 2>&1; echo $?' % cmd
        return int(node.cmd(cmd))
    # uncomment if you want to mess with the containernet REPL cli
    #CLI(net.net)
    # run our test script
    try:
        # make sure we can ping from LAN node 1 to public host
        res = exitCode(net.d1, 'ping -c1 %s' % net.h0.IP())
        p('GOT EXIT CODE: %d' % res)
        # make sure we can ping from LAN node 2 to public host
        res = exitCode(net.d2, 'ping -c1 %s' % net.h0.IP())
        p('GOT EXIT CODE: %d' % res)
        # make sure we CANNOT ping between LAN nodes
        res = exitCode(net.d1, 'ping -c1 %s' % net.d2.IP())
        p('GOT EXIT CODE: %d' % res)
        # Startup kitsune proxy server on the public host
        p('Starting Proxy Server')
        net.h0.cmd('kitsune-p2p-proxy --bind-to kitsune-quic://10.0.0.100:0 > proxy-output 2>&1 &')
        time.sleep(1)
        addr = net.h0.cmd('cat proxy-output').strip()
        p('PROXY ADDR: %s' % addr)
        # run the proxy-cli utility from LAN nodes to public proxy server
        execPrint(net.d1, 'proxy-cli %s' % addr)
        execPrint(net.d2, 'proxy-cli %s' % addr)
    except:
        p('ERROR: %s', sys.exc_info())
    # stop / cleanup the network simulation
    net.stop()