INTEGRITY Dokumentace

Použití BYOIP s Magic Transit a CDN

Magic Transit zákazníci využívající BYOIP mohou také těžit z výkonu, spolehlivosti a zabezpečení, které Cloudflare nabízí pro aplikace založené na HTTP. Service bindings umožňují zákazníkům BYOIP směrovat provoz selektivně podle jednotlivých IP adres do CDN pipeline (která zahrnuje Cache, Web Application Firewall (WAF), a další).

Tento návod popisuje použití Cloudflare API ke konfiguraci Magic Transit s CDN. Provoz lze také volitelně směrovat do Spectrum pipeline pomocí definování Service Bindings. Přečtěte si rozsah pro úplný seznam možných konfigurací a další dostupné návody.

Provoz směrovaný do CDN pipeline je chráněn na vrstvách 3 a 4 díky vestavěné ochraně proti DDoS útokům, kterou CDN pipeline nativně poskytuje.

Než začnete

1. Získání informací o účtu

  1. Přihlaste se ke svému účtu Cloudflare a získejte své ID účtu a ověřovací klíč nebo token. Pokud používáte API token, oprávnění by měla zahrnovat Account - IP Prefixes - Edit.
  2. Vytvořte GET požadavek na List Services endpoint a poznamenejte si id spojené se službou CDN.
  3. Použijte List Prefixes endpoint a poznamenejte si id spojené s prefixem (cidr) kterou nakonfigurujete.

V tomto okamžiku pokračování příklad, měli byste mít mapování podobné následujícímu:

Proměnné Popis
{service_id} ID služby CDN v rámci Cloudflare.

Příklad: 969xxxxxxxx000xxx0000000x00001bf
{prefix_id} ID prefixu Magic Transit (203.0.113.0/24) kterou chcete nakonfigurovat.

Příklad: 6b25xxxxxxx000xxx0000000x0000cfc
  1. Chcete-li potvrdit, že máte aktuálně nastavený Magic Transit Service Binding, který pokrývá celý váš prefix, proveďte GET požadavek na List Service Bindings endpoint. Nahraďte {prefix_id} v cestě URI skutečným ID prefixu, které jste získali v předchozím kroku.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • IP Prefixes: Write
  • IP Prefixes: Read
List Service Bindings
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
	--request GET \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY"

2. Vytvoření vazeb služeb

  1. Vytvořte POST požadavek na Vytvoření vazby na službu endpoint a uveďte IP adresu, kterou chcete navázat na CDN. Zadejte odpovídající síťová maska podle potřeby.

Pokud budeme pokračovat v příkladu, 203.0.113.100/32 označuje IP adresu, která spadá do prefixu Magic Transit 203.0.113.0/24.

Nahraďte {prefix_id} v URI vaším ID prefixu z předchozích kroků. V těle požadavku pak cidr hodnota by měla odpovídat IP adrese nebo podsíti, kterou konfigurujete pro použití s CDN.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • IP Prefixes: Write
Create Service Binding
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
	--request POST \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
	--json '{
		"cidr": "203.0.113.100/32",
		"service_id": "<SERVICE_ID>"
	}'

V těle odpovědi by měl být počáteční stav zřizování provisioning.

{
  "errors": [],
  "messages": [],
  "success": true,
  "result": {
    "cidr": "203.0.113.100/32",
    "id": "<SERVICE_BINDING_ID>",
    "provisioning": {
      "state": "provisioning"
      },
    "service_id": "<SERVICE_ID>",
    "service_name": "<SERVICE_NAME>"
  }
}

Stav vazby služby můžete pravidelně kontrolovat pomocí List Service Bindings koncový bod.

3. Vytvoření map adres

Jakmile nakonfigurujete své IP adresy tak, aby používaly službu CDN, můžete použít mapy adres a určete, které IP adresy má Cloudflare použít v odpovědích DNS, když je záznam proxováno.

Můžete si vybrat mezi dvěma rozsahy:

  1. V dashboardu Cloudflare přejděte na Address Maps stránce.

    Přejděte na Mapy adres ↗
  2. Vyberte Vytvoření mapy adres.

  3. Zvolte rozsah platnosti mapy adres.

  4. Přidejte zóny a IP adresy, které chcete namapovat.

  5. Pojmenujte svou address map.

  6. Zkontrolujte informace a vyberte Save and Deploy.

Použijte Create Address Map koncový bod.

Zkontrolujte, zda máte správný klíč/token a oprávnění.

4. Vytvoření DNS záznamů

Chcete-li vytvořit DNS záznam v dashboardu:

  1. V dashboardu Cloudflare přejděte na DNS záznamy stránce.

    Přejděte na Záznamy ↗
  2. Vyberte Přidat záznam.

  3. Vyberte adresu (A/AAAA) typ záznamu.

  4. Vyplňte povinná pole a nastavte Stav proxy na proxováno.

  5. Vyberte Save.

Chcete-li vytvářet záznamy pomocí API, použijte Požadavek POST. Definice polí najdete po výběru typu záznamu ve specifikaci těla požadavku.

Zatímco stav proxy u DNS záznamu a mapa adres určují, jak autoritativní DNS Cloudflare odpovídá na požadavky pro vaše hostname, IP adresy uvedené v A/AAAA záznamy určí jak se Cloudflare připojuje ke konfigurovanému originu.

Příklad

Typ Název IP adresa Stav proxy TTL
A www 203.0.113.150 Proxied Auto

Pokud v tomto okamžiku mapa adres pro zónu example.com určuje, že Cloudflare má použít 203.0.113.100 pro proxied záznamy a výše uvedený záznam existuje ve stejné zóně, můžete očekávat následující:

  1. Cloudflare odpovídá na požadavky DNS pomocí 203.0.113.100.

  2. Cloudflare předává požadavky přes CDN a poté je směruje prostřednictvím GRE nebo CNI na origin server 203.0.113.150 (která spadá do prefixu chráněného službou Magic Transit).

  3. V závislosti na tom, zda je Magic Transit implementován s model přímého navrácení serverem (direct server return) nebo s Magic Transit egress, origin server odpoví Cloudflare jedním z těchto způsobů:

    • Přímo přes internet v modelu Direct Server Return (DSR) služby Magic Transit
    • Zpět přes tunel(y) Magic GRE v modelu odchozího provozu Magic Transit
  4. Když HTTP odpověď opouští síť Cloudflare zpět ke klientovi, zdrojová IP adresa odpovědi se stává 203.0.113.100 (IP adresa, na kterou HTTP požadavek původně dorazil).

Příklad

Za předpokladu, že 203.0.113.100 byla zároveň origin IP adresou, DNS záznam by vypadal následovně:

Typ Název IP adresa Stav proxy TTL
A www 203.0.113.100 Proxied Auto

5. (Volitelné) Přidání funkcionality vrstvy 7

Podle svých potřeb využijte další funkce, například: