---
title: Sítě
description: Privátní sítě, které propojují vaše služby napříč servery – s názvy, vlastními podsítěmi a šifrovanými tunely.
---

## Úvod

**Síť** je privátní adresní prostor, který sdílí vaše služby. Serverlety připojené ke stejné síti dostanou uvnitř ní privátní IP adresu a mohou se navzájem oslovovat přímo – IP adresou i názvem – aniž by provoz procházel veřejným internetem. Síť funguje jako VPC: nic v ní není vystavené ven, dokud před ni nepostavíte [proxy](/cs/docs/proxy/).

Síť žije v jednom [regionu](/cs/docs/regions/) a zahrnuje všechny [servery](/cs/docs/servers/) v něm. Dva serverlety na různých serverech, nebo na různých strojích ve vašem soukromém regionu, se přesto vidí, jako by byly na jedné lokální síti.

## Vytvoření sítě

Na stránce **Sítě** klikněte na **Vytvořit** a vyplňte:

| Pole | Význam |
| --- | --- |
| Název | Krátký popisek, například `backend`. Podle něj se sítě připojují k serverletům z CLI i API. |
| IPv4 podsíť | **Auto** vygeneruje volnou podsíť za vás, **Vypnuto** IPv4 vypne, **Vlastní** přijme CIDR, například `10.100.0.0/24`. |
| IPv6 podsíť | Stejné volby, s CIDR například `fd00:10:85:1::/64`. |
| Interní | Je-li zapnuto, síť nemá odchozí přístup na internet. |
| Region | Kde síť běží. Výchozí je region projektu a později ho nelze změnit. |

IPv4 i IPv6 jsou ve výchozím stavu zapnuté a alespoň jedna z nich musí zůstat povolená. Pokud nepotřebujete konkrétní rozsah, nechte podsítě na **Auto** – Futrou vybere takovou, která nekoliduje s žádnou jinou sítí v regionu ani s vlastními rozhraními serveru.

### Pravidla pro podsítě

Vlastní podsítě musí pocházet z privátního adresního prostoru:

- IPv4: `10.0.0.0/8`, `172.16.0.0/12` nebo `192.168.0.0/16`
- IPv6: `fd00::/8`

Veřejné rozsahy, loopback, link-local, multicast a rozsahy carrier-grade NAT se odmítnou. Podsíť může obsahovat nejvýše 4096 adres (`/20`), nesmí se překrývat s jinou sítí v regionu a nesmí kolidovat s adresním rozsahem, který už server používá (například s Docker sítí).

U existující sítě můžete podsíť přepnout na **Auto** nebo **Vypnuto**, ale zadat jiný vlastní rozsah mohou jen zaměstnanci Futrou – pokud takový potřebujete, vytvořte novou síť.

## Připojení serverletů

Serverlet se k sítím připojuje přes nastavení **Sítě**, které přijímá názvy nebo ID sítí. Serverlet může být v několika sítích najednou a v každé z nich dostane adresu.

Serverlet bez vybrané sítě automaticky dostane vlastní privátní síť, která vzniká a zaniká spolu s ním. Sítě, které vytvoříte sami, se nikdy automaticky nemažou.

[Proxy](/cs/docs/proxy/) lze také omezit na jednu síť – pak předává provoz jen na instance serverletů, jejichž adresy leží uvnitř ní.

## Oslovování služeb názvem

Uvnitř sítě je serverlet dostupný pod svým názvem, stejně jako služby v Docker Compose. Serverlet pojmenovaný `db` je z kteréhokoli jiného serverletu ve stejné síti dostupný pod hostitelským jménem `db`:

```bash
psql -h db -U app
```

Název se přeloží na všechny zdravé instance daného serverletu, při každém dotazu v jiném pořadí, takže se spojení rozkládají mezi instance. Každý serverlet je navíc dostupný jako `serverlet-<id>`. Nezdravé a zastavené instance se z odpovědi vynechávají.

Patří-li serverlet do více sítí, název se hledá postupně v každé z nich. Názvy jsou vidět jen uvnitř sítě – z internetu se nikdy nepřeloží. Zatím pouze IPv4.

## Napříč servery

Když má síť serverlety na více než jednom serveru, Futrou servery propojí **šifrovanými tunely WireGuard**. Každý server vlastní část podsítě sítě a adresy přiděluje jen z ní, takže se adresy nikdy nepotkají; provoz do části jiného serveru se do tunelu směruje automaticky.

Každá síť má vlastní náhodný klíč, který se vkládá do handshaku tunelu, navíc k páru klíčů každého serveru, který server nikdy neopustí. Do sítě se mohou připojit jen servery, které do ní patří, a klíč se nikdy nezobrazuje v dashboardu ani v API.

Co je dobré vědět:

- Propojení napříč servery funguje přes IPv4. IPv6 adresy fungují jen mezi serverlety na stejném serveru.
- Servery s veřejnou adresou se připojují ke všem ostatním serverům přímo. Servery za NATem spojení jen navazují směrem ven, takže nepotřebují otevřený příchozí port, a ostatní privátní servery dosáhnou přes veřejný server. Pro to je potřeba alespoň jeden veřejný server.
- Tunel přenáší provoz dál i během aktualizace Nasua, takže aktualizace nepřeruší spojení mezi službami.

## Interní sítě

Zapnutí **Interní** odřízne síť od internetu: serverlety spolu mohou komunikovat, ale nemohou navazovat odchozí spojení a názvy, které nepatří do sítě, se nepřekládají. Hodí se pro databáze, fronty a další služby, které mají komunikovat jen s vaším kódem.

Docker tento příznak u běžící sítě změnit neumí, takže přepnutí **Interní** restartuje serverlety v ní.

## Zařízení

Stránka sítě zobrazuje její **zařízení** – běžící instance serverletů, které jsou k ní právě připojené, od nejnovějších. U každé uvidíte hostname (`<název serverletu>-<číslo instance>`), IPv4 a IPv6 adresu, MAC adresu a čas připojení.

## Metriky a logy

Stránka sítě ukazuje provoz v čase – přijaté a odeslané bajty, pakety, chyby a zahozené pakety, spolu s průměrnou a špičkovou rychlostí v bitech za sekundu – za 30 sekund, 1 hodinu, 24 hodin, 7 dní a 30 dní, sečtený přes všechny servery. Nečinné sítě nic nezaznamenávají.

Log sítě zaznamenává její vytvoření, změny a připojování či odpojování serverů. Co dalšího Futrou uchovává, popisuje [Logy](/cs/docs/logs/).

## Změna a smazání sítě

Přejmenování sítě je okamžité. Změna podsítě nebo příznaku **Interní** znovu vytvoří most sítě na každém serveru, čímž se připojené serverlety zastaví a spustí se náhrady s adresami z nové definice – počítejte s krátkým přerušením. Vypnutí adresní rodiny nic nerestartuje a pozdější zapnutí stejné podsítě je zdarma.

Síť nelze smazat, dokud ji používá serverlet nebo proxy; nejdřív ji odpojte. Smazáním sítě zaniknou její tunely i metriky.

## Použití CLI

```bash
futrou network create --name backend
futrou network create --name db --ipv4 10.100.0.0/24 --internal
futrou network ls
futrou network devices <id>
futrou network metrics <id>
futrou network update <id> --internal
futrou network rm <id>
```

Sítě lze také deklarovat v `futrou.json` / `futrou.yaml` a připojit k serverletům přímo tam; viz [CLI](/cs/docs/cli/).

## Oprávnění

Zobrazení sítě vyžaduje alespoň roli **Viewer**. Vytvoření vyžaduje oprávnění vytvářet sítě v projektu a změna či smazání oprávnění je spravovat. Co která role umí, popisují [Role](/cs/docs/members/).