Skip to content
Intermediate 15 minutes

Create a Megaport Internet VXC

Provision a Megaport Internet connection — turn any Port, MCR, or MVE into a public internet upstream using a TRANSIT VXC

Prerequisites

  • Active Megaport Port, MCR, or MVE (the A-End)
  • Megaport CLI installed and authenticated

Megaport Internet is a scalable, on-demand public-internet upstream delivered as a VXC. Instead of buying transit from an ISP at every site, you connect any Port, MCR, or MVE to a Megaport-operated internet router via a TRANSIT-type VXC. Megaport handles the upstream peering and announces a default route (or a full table on request) to your service.

What you'll provision

🏢A-EndPort / MCR / MVE
VXCconnectType: TRANSIT
🌐Megaport Internettransit router
☁️Public internet

How it works

The Megaport network includes dedicated transit routers in each region, exposed as partner ports with connectType=TRANSIT. You buy a VXC from your A-End to one of these routers, and Megaport announces a default route (and optionally accepts your prefixes) over BGP.

  • Up to 100 Megaport Internet connections per Port (25 per MCR or MVE).
  • Available in every country where Megaport has transit infrastructure.
  • Diversity zones are enabled on the transit routers — pick blue or red if you're building a redundant pair.
ℹ️

Different from the public internet over a VXC

A Megaport Internet VXC delivers transit from the Megaport fabric — it's an outbound on-ramp to the public internet, not a private interconnect to another customer. Use it for SD-WAN registration, SaaS access, public-services consumption, or as a backup path to cloud control planes.


Step 1 — Get your A-End UID

The A-End is whatever Megaport service you want to attach the internet connection to.

bash
# From a Port
megaport-cli ports list

# From an MCR
megaport-cli mcr list

# From an MVE
megaport-cli mve list

Copy the UID of the service you want as the A-End.


Step 2 — Find a TRANSIT partner port

Megaport Internet uses partner ports filtered by connect type TRANSIT. Find one in the same data centre as your A-End.

bash
# All TRANSIT partner ports
megaport-cli partners list --connect-type "TRANSIT"

# Filter to a specific location
megaport-cli partners list --connect-type "TRANSIT" --location-id 3

# Filter by diversity zone for a redundant pair
megaport-cli partners list --connect-type "TRANSIT" --diversity-zone blue

Example output:

text
PRODUCT NAME       COMPANY    LOCATION ID  DIVERSITY ZONE  UID
Megaport Internet  Megaport   3            blue            874dbcff-a1f9-4328-9c08-112cd87c20f6
Megaport Internet  Megaport   3            red             a91e83b2-1c58-4f9e-9d3a-742b8cf91021
Megaport Internet  Megaport   10           blue            b4f8a9d2-6e51-4c0a-8f2d-9a3c7e4b1f8d
Megaport Internet  Megaport   67           blue            c19fa3d4-5e72-4c0a-8f2d-1a3c7e4b1f8d

Copy the UID of the transit router you want as the B-End.

⚠️

Resolving location IDs

The partners list output identifies each transit router by numeric location ID only — there's no DC name or city in the response. The two common ways to bridge that gap:

Most common — match the location of your A-End:

bash
# Get your existing service's location ID
megaport-cli ports get <PORT-UID> --output json | jq '.locationId'
# → 3

# Filter transit partners to that exact DC
megaport-cli partners list --connect-type "TRANSIT" --location-id 3

Discovery — show every transit DC by name:

bash
megaport-cli partners list --connect-type "TRANSIT" --output json \
  | jq --slurpfile locs <(megaport-cli locations list --output json) '
      map(. + {dc: ($locs[0][] | select(.id == .location_id)
              | "\(.name), \(.metro), \(.country)")})
      | map({dc, location_id, diversity_zone, uid})'

Sample output:

json
[
  { "dc": "NextDC S1, Sydney, Australia",  "location_id": 3,  "diversity_zone": "blue" },
  { "dc": "Equinix SY3, Sydney, Australia", "location_id": 10, "diversity_zone": "red" }
]

You can also browse the canonical ID ↔ DC mapping at docs.megaport.com/locations.

💡

Pick the closest router

Latency to your transit router matters for real-time traffic. Choose a router in the same metro as your A-End where possible. The CLI returns transit routers globally — pass --location-id to scope to a specific DC.


Step 3 — Create the VXC

Interactive mode

bash
megaport-cli vxc buy --interactive

The CLI prompts for A-End / B-End UIDs, VLAN, rate limit, and term. When asked "Do you want to configure A-End partner?" answer No — your Port, MCR, or MVE doesn't need a partner block. When asked "Do you want to configure B-End partner?" answer Yes and choose TRANSIT as the connect type. See Partner Configurations for why only the B-End needs a config block.

Flag mode

bash
megaport-cli vxc buy \
  --name "Megaport Internet - Sydney" \
  --a-end-uid <A-END-UID> \
  --a-end-vlan 100 \
  --b-end-uid <TRANSIT-PARTNER-PORT-UID> \
  --b-end-vlan 0 \
  --rate-limit 1000 \
  --term 12 \
  --b-end-partner-config '{"connectType":"TRANSIT"}'
bash
megaport-cli vxc buy --json-file ./megaport-internet.json

Example megaport-internet.json:

json
{
  "vxcName": "Megaport Internet - Sydney",
  "rateLimit": 1000,
  "term": 12,
  "portUid": "<A-END-UID>",
  "aEndConfiguration": {
    "vlan": 100
  },
  "bEndConfiguration": {
    "productUID": "<TRANSIT-PARTNER-PORT-UID>",
    "partnerConfig": {
      "connectType": "TRANSIT"
    }
  },
  "costCentre": "NET-INTERNET",
  "resourceTags": {
    "environment": "production",
    "purpose": "internet-upstream"
  }
}

From an MVE A-End

When the A-End is an MVE, specify which vNIC index the VXC attaches to:

bash
megaport-cli vxc buy \
  --name "MVE Internet - Sydney" \
  --a-end-uid <MVE-UID> \
  --a-end-vnic-index 0 \
  --a-end-vlan 100 \
  --b-end-uid <TRANSIT-PARTNER-PORT-UID> \
  --b-end-vlan 0 \
  --rate-limit 1000 \
  --term 12 \
  --b-end-partner-config '{"connectType":"TRANSIT"}'

Required fields

FlagJSON keyNotes
--namevxcNameDisplay name in the Portal
--a-end-uidportUidUID of your Port, MCR, or MVE
--a-end-vlanaEndConfiguration.vlanVLAN on your A-End side (0–4093, except 1)
--b-end-uidbEndConfiguration.productUIDUID of the TRANSIT partner port
--b-end-vlanbEndConfiguration.vlanUsually 0 (untagged on the transit router)
--rate-limitrateLimitBandwidth in Mbps
--termterm1, 12, 24, 36 months
--b-end-partner-configbEndConfiguration.partnerConfig{"connectType":"TRANSIT"}

MVE-only fields

FlagJSON keyNotes
--a-end-vnic-indexaEndConfiguration.vNicIndexvNIC slot on the MVE (0-indexed)

Step 4 — Verify the VXC is live

bash
# Full details
megaport-cli vxc get <VXC-UID>

# Status only (transitions CONFIGURED → LIVE)
megaport-cli vxc status <VXC-UID>

# Watch until LIVE
megaport-cli vxc status <VXC-UID> --watch

Once LIVE, the transit router begins peering with your A-End. Megaport announces a default route automatically — no BGP configuration is required from your side for basic outbound transit.


Step 5 — Configure routing on the A-End

What happens next depends on the A-End type:

Port A-End

Your customer router (CPE) connected to the Port establishes BGP toward the Megaport Internet router. Megaport advertises a default route; you advertise your prefixes (or none, if you only need outbound NAT).

MCR A-End

Add a BGP peer on the MCR pointing at the Megaport Internet router's peer IP. The CLI surfaces peer details via:

bash
megaport-cli vxc get <VXC-UID> --output json | jq '.bEndConfiguration.partnerConfig'

Configure the BGP session in the MCR — Megaport publishes its peer ASN and IP in the partner config response.

MVE A-End

For SD-WAN appliances, the Megaport Internet VXC is typically the WAN-side underlay. The vendor's WAN interface DHCPs an address from the transit router, after which the appliance can reach its vendor orchestrator (vManage, FortiManager, Panorama). See your vendor's MVE deployment guide on docs.megaport.com/mve/ for interface-specific steps.

💡

Public IP allocation

Megaport Internet routers issue public IPv4 (and IPv6 where supported) to the connected service. Confirm in the Megaport Portal under the VXC details — the assigned /30 subnet shows once the VXC is LIVE.


Clean up (optional)

bash
# Soft delete — removes at end of billing period
megaport-cli vxc delete <VXC-UID>

# Immediate deletion — irreversible
megaport-cli vxc delete <VXC-UID> --now

What's next?

  • Create an MVE — pair Megaport Internet with a virtual SD-WAN appliance
  • MCR Routing — use Megaport Internet as a public path alongside private cloud connections
  • Multi-Cloud Connectivity — combine private cloud VXCs with Megaport Internet for SaaS access
💡

For Sales demos

Most customers think of Megaport for private cloud connectivity, but the same fabric delivers public internet transit on-demand. Showing a Port → Megaport Internet provisioning live demonstrates that Megaport is the single network underpinning every connectivity need — private and public.