---
description: Use swarm mode overlay networking features
keywords: swarm, networking, ingress, overlay, service discovery
title: Manage swarm service networks
toc_max: 3
---
This page describes networking for swarm services.
## Swarm and types of traffic
A Docker swarm generates two different kinds of traffic:
- Control and management plane traffic: This includes swarm management
messages, such as requests to join or leave the swarm. This traffic is
always encrypted.
- Application data plane traffic: This includes container traffic and
traffic to and from external clients.
## Key network concepts
The following three network concepts are important to swarm services:
- Overlay networks manage communications among the Docker daemons
participating in the swarm. You can create overlay networks, in the same way
as user-defined networks for standalone containers. You can attach a service
to one or more existing overlay networks as well, to enable service-to-service
communication. Overlay networks are Docker networks that use the `overlay`
network driver.
- The ingress network is a special overlay network that facilitates
load balancing among a service's nodes. When any swarm node receives a
request on a published port, it hands that request off to a module called
`IPVS`. `IPVS` keeps track of all the IP addresses participating in that
service, selects one of them, and routes the request to it, over the
`ingress` network.
The `ingress` network is created automatically when you initialize or join a
swarm. Most users do not need to customize its configuration, but Docker allows
you to do so.
- The docker_gwbridge is a bridge network that connects the overlay
networks (including the `ingress` network) to an individual Docker daemon's
physical network. By default, each container a service is running is connected
to its local Docker daemon host's `docker_gwbridge` network.
The `docker_gwbridge` network is created automatically when you initialize or
join a swarm. Most users do not need to customize its configuration, but
Docker allows you to do so.
> [!TIP]
>
> See also [Networking overview](/manuals/engine/network/_index.md) for more details about Swarm networking in general.
## Firewall considerations
Docker daemons participating in a swarm need the ability to communicate with
each other over the following ports:
* Port `7946` TCP/UDP for container network discovery.
* Port `4789` UDP (configurable) for the overlay network (including ingress) data path.
When setting up networking in a Swarm, special care should be taken. Consult
the [tutorial](swarm-tutorial/_index.md#open-protocols-and-ports-between-the-hosts)
for an overview.
## Overlay networking
When you initialize a swarm or join a Docker host to an existing swarm, two
new networks are created on that Docker host:
- An overlay network called `ingress`, which handles the control and data traffic
related to swarm services. When you create a swarm service and do not
connect it to a user-defined overlay network, it connects to the `ingress`
network by default.
- A bridge network called `docker_gwbridge`, which connects the individual
Docker daemon to the other daemons participating in the swarm.
### Create an overlay network
To create an overlay network, specify the `overlay` driver when using the
`docker network create` command:
```console
$ docker network create \
--driver overlay \
my-network
```
The above command doesn't specify any custom options, so Docker assigns a
subnet and uses default options. You can see information about the network using
`docker network inspect`.
When no containers are connected to the overlay network, its configuration is
not very exciting:
```console
$ docker network inspect my-network
[
{
"Name": "my-network",
"Id": "fsf1dmx3i9q75an49z36jycxd",
"Created": "0001-01-01T00:00:00Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,