(tpu-networking)=
# Networking and access for Cloud TPU VMs
Choose the network, subnetwork and IP addressing for a TPU VM, and decide how it reaches Google APIs.
(tpu-networking__custom-network)=
## Custom network and subnetwork
By default a TPU VM uses the default network. Specify a custom network and subnetwork when you create the VM to place it in your own VPC.
(tpu-networking__ip-addresses)=
## External and internal IP addresses
A TPU VM gets an external IP address by default. To create one without an external IP address, use the `--internal-ips` flag with `gcloud compute tpus queued-resources create` or `gcloud compute tpus tpu-vm create`. With the REST API, set `enable_external_ips` to `false` in the `network_config` of the request body.
(tpu-networking__private-google-access)=
## Private Google Access
A TPU VM without an external IP address can reach Google APIs and services through Private Google Access on its subnetwork. SSH access needs either an external IP address or Private Google Access.
:::::{container} manifest-nav
- **[Optical transceiver modules \(illustrative\)](../topics/osfp-transceiver.md)**
A pluggable optical transceiver turns the electrical signals on a host board into light for a fiber link, and back. This topic uses an original 3D model of an OSFP-style module to show its parts.
:::::
:::::{container} manifest-nav
**Related information**
[TPU software versions](../topics/tpu-software-versions.md)
[Create a TPU VM](../topics/tpu-create-vm.md)
:::::
```{toctree}
:maxdepth: 2
:hidden:
osfp-transceiver
```