Uživatelské nástroje

Nástroje pro tento web


navody:server:gre

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
navody:server:gre [2015/11/04 10:46] krcmarnavody:server:gre [2026/08/16 18:56] (aktuální) – Přirozenější znění návodů, lokalizace ukázek a doplnění týdenního vyzkoušení VPS aither
Řádek 1: Řádek 1:
-====== GRE tunely ======+<page>manuals:server:gre</page>
  
-Pokud potřebujete propojit jednoduše dva různé servery (virtuální nebo fyzické), je nejjednodušší použít [[https://en.wikipedia.org/wiki/Generic_Routing_Encapsulation|GRE]]Jedná se o tunelovací protokol původně vyvinutý v Cisco. Máte možnost si tvořit nová síťová rozhraní propojená tunelem.+<kb-managed 
 +  source="https://github.com/vpsfreecz/vpsfree-kb-contracts/blob/master/contract/pages/navody-server-gre.txt" 
 +  test="https://github.com/vpsfreecz/vpsfree-kb-contracts/blob/master/tests/suite/kb/gre.nix" 
 +/>
  
-Na prvním serveru (185.8.165.156) provedete následující konfiguraci:+====== GRE tunel ======
  
-<code>[root@185.8.165.156]# ip tunnel add tunnel0 mode gre local 185.8.165.156 remote  37.205.10.152 +GRE propojí dvě zařízení tunelem přes IPv4Hodí se například pro směrování 
-[root@185.8.165.156]# ip a add 192.168.1.1/24 dev tunnel0 +privátní sítě mezi dvěma VPS v důvěryhodné interní síti vpsFreeNíže je 
-[root@185.8.165.156]# ip link set up dev tunnel0</code>+jednoduchý tunel mezi těmito ukázkovými adresami:
  
-Na tom druhém (37.205.10.152) pak analogicky:+^  ^ VPS A ^ VPS B ^ 
 +| vnější adresa VPS | ''185.8.164.10/32'' | ''185.8.164.20/32''
 +| adresa uvnitř tunelu | ''10.0.0.1'' | ''10.0.0.2'' |
  
-<code>[root@37.205.10.152]# ip tunnel add tunnel0 mode gre remote 185.8.165.156 local 37.205.10.152 +Vnější adresy jsou příklady z playground rozsahu vpsFreeNahraď je adresami 
-[root@37.205.10.152]# ip a add 192.168.1.2/24 dev tunnel0 +''/32'', které máš skutečně přidělené ke svým VPSPrivátní adresy tunelu můžeš 
-[root@37.205.10.152]# ip link set up dev tunnel0</code>+ponechat, pokud se nekříží s jinou sítí, kterou používáš.
  
-Teď už by vám měl fungovat:+===== Než začneš =====
  
-<code>[root@37.205.10.152]# ping 192.168.1.1</code>+GRE používá **IP protokol 47**, nikoliv TCP nebo UDP port 47Pokud na VPS 
 +filtruješ provoz, povol protokol 47 z vnější adresy druhého konce.
  
-===== Statická konfigurace RHEL/CentOS =====+Tento postup používej jen přes důvěryhodnou interní síť vpsFree, kde je 
 +vynuceno vlastnictví zdrojových adres. Samotné GRE provoz **nešifruje ani 
 +neověřuje protistranu**, proto jej neposílej přes veřejný internet. Pro spojení 
 +přes veřejný internet použij [[navody:server:wireguard|WireGuard]].
  
-<code>[root@185.8.165.156]# cat /etc/sysconfig/network-scripts/ifcfg-tun0  +===== Okamžité nastavení =====
-DEVICE=tunnel0 +
-BOOTPROTO=none +
-ONBOOT=no +
-TYPE=GRE +
-PEER_OUTER_IPADDR=37.205.10.152 +
-PEER_INNER_IPADDR=185.8.165.156 +
-MY_INNER_IPADDR=192.168.1.1</code>+
  
-<code>[root@37.205.10.152]# cat /etc/sysconfig/network-scripts/ifcfg-tun0  +Na VPS A spusť:
-DEVICE=tunnel0 +
-BOOTPROTO=none +
-ONBOOT=no +
-TYPE=GRE +
-PEER_OUTER_IPADDR=185.8.165.156 +
-PEER_INNER_IPADDR=37.205.10.152 +
-MY_INNER_IPADDR=192.168.1.2</code>+
  
-Poté na obou stranách tunel nahodíme:+<code bash> 
 +#!/usr/bin/env bash 
 +set -eu
  
-<code># ifup tunnel0</code>+ip tunnel add gre1 mode gre \ 
 +  local 185.8.164.10 remote 185.8.164.20 ttl 255 
 +ip address add 10.0.0.1/30 dev gre1 
 +ip link set dev gre1 mtu 1476 up 
 +</code>
  
-===== Statická konfigurace Debian/Ubuntu =====+Na VPS B spusť:
  
-<code> +<code bash
-[root@37.205.10.152]cat /etc/network/interfaces+#!/usr/bin/env bash 
 +set -eu
  
-auto tunnel0 +ip tunnel add gre1 mode gre \ 
-iface tunnel0 inet tunnel+  local 185.8.164.20 remote 185.8.164.10 ttl 255 
 +ip address add 10.0.0.2/30 dev gre1 
 +ip link set dev gre1 mtu 1476 up 
 +</code> 
 + 
 +Spojení ověř z obou stran: 
 + 
 +<code bash> 
 +#!/usr/bin/env bash 
 +# Na VPS A 
 +ping -c 3 10.0.0.2 
 +</code> 
 + 
 +<code bash> 
 +#!/usr/bin/env bash 
 +# Na VPS B 
 +ping -c 3 10.0.0.1 
 +</code> 
 + 
 +Tyto příkazy platí jen do restartu. Rozhraní můžeš odstranit příkazem 
 +''ip tunnel del gre1''. Další volby popisuje 
 +[[https://manpages.debian.org/trixie/iproute2/ip-tunnel.8.en.html|manuál ip-tunnel(8)]]. 
 + 
 +===== Trvalé nastavení v Debianu ===== 
 + 
 +Výchozí šablona Debianu používá ifupdown. Na VPS A ulož do 
 +''/etc/network/interfaces.d/gre1'' tuto konfiguraci: 
 + 
 +<code bash> 
 +auto gre1 
 +iface gre1 inet tunnel
   mode gre   mode gre
-  netmask 255.255.255.255 +  address 10.0.0.1 
-  address 37.205.10.15 +  netmask 255.255.255.252 
-  dstaddr 185.8.165.156 +  dstaddr 10.0.0.2 
-  endpoint 192.168.1.+  local 185.8.164.10 
-  local 192.168.1.1 +  endpoint 185.8.164.20 
-  ttl 255</code> +  ttl 255 
-   +  mtu 1476 
-<code> +</code>
-[root@185.8.165.156]# cat /etc/network/interfaces+
  
-auto tunnel0 +Na VPS B použij: 
-iface tunnel0 inet tunnel+ 
 +<code bash> 
 +auto gre1 
 +iface gre1 inet tunnel
   mode gre   mode gre
-  netmask 255.255.255.255 +  address 10.0.0.2 
-  address 185.8.165.156 +  netmask 255.255.255.252 
-  dstaddr 37.205.10.15 +  dstaddr 10.0.0.1 
-  endpoint 192.168.1.1 +  local 185.8.164.20 
-  local 192.168.1.2 +  endpoint 185.8.164.10 
-  ttl 255</code> +  ttl 255 
-   +  mtu 1476 
-Poté na obou stranách tunel nahodíme:+</code> 
 + 
 +''address'' a ''dstaddr'' jsou adresy **uvnitř** tunelu. ''local''
 +''endpoint'' jsou naopak jeho **vnější** konce. Na obou VPS pak rozhraní 
 +aktivuj: 
 + 
 +<code bash> 
 +ifup gre1 
 +</code> 
 + 
 +Podporované volby najdeš v 
 +[[https://manpages.debian.org/trixie/ifupdown/interfaces.5.en.html#THE_TUNNEL_METHOD|manuálu interfaces(5)]]. 
 + 
 +===== Jiné správce sítě ===== 
 + 
 +Pokud tvoje distribuce nepoužívá ifupdown, vytvoř stejný GRE tunel správcem 
 +sítě dané distribuce. Aktuální volby popisuje dokumentace 
 +[[https://networkmanager.pages.freedesktop.org/NetworkManager/NetworkManager/settings-ip-tunnel.html|NetworkManageru]] 
 +a [[https://www.freedesktop.org/software/systemd/man/latest/systemd.netdev.html|systemd-networkd]]. 
 + 
 +===== MTU a řešení problémů ===== 
 + 
 +Základní GRE přes IPv4 přidává režii, proto příklad používá MTU 1476 místo 
 +běžných 1500 bajtů. Pokud má vnější cesta nižší MTU nebo se větší přenosy 
 +zasekávají, MTU na obou koncích dál sniž. 
 + 
 +Když tunel nefunguje, ověř vnější adresy příkazem ''ip address'', povolení IP 
 +protokolu 47 ve firewallu a stav příkazem ''ip -details tunnel show gre1''
 +Pak zkontroluj, že se ''local'' na každé straně rovná její vnější adrese a 
 +''remote'' nebo ''endpoint'' vnější adrese protistrany.
  
-<code># ifup tunnel0</code> 
navody/server/gre.txt · Poslední úprava: autor: aither