0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Coursera の Networking in Google Cloud: Defining and Implementing Networks を学んだ。

0
Last updated at Posted at 2021-06-12

個人的なメモです。

前書き

courseraのNetworking in Google Cloudは、以下のコースを含む

  1. Defining and Implementing Networks (このページでメモを取る)
  2. Hybrid Connectivity and Network Management
  3. Hands-On Labs in Google Cloud for Networking Engineers

[1]Basics

VPC network(以下network)とsubnet

  • 1つのプロジェクトは複数のネットワークを持ちうる。ネットワークはregionをまたげる。同一ネットワーク内なら、internal IPアドレス指定でやりとりできる
    • ネットワークを跨いだとしても、GCP間の通信なら(実はインターネットを経由せず)google edge router経由で external IPアドレス指定でやりとりしている。
  • デフォでsubnetは、regionごとに1つ作られる(subnetはregionをまたげない)。
  • subenet同士はWANで繋がっている。
  • subnet内で、x.x.x.0はネットワーク用に、x.x.x.1はゲートウェイ用に、あと2つなんらかのために確保される。

IPアドレス

internalIPとexternal IPのマッピングは、VPCでlookup tableによって行われる。

internal IP

  • インスタンスのOSは自分のinternal ipがなにかを知っている。(see: /sbin/config)

  • DHCPによってsubnetのレンジの中からIPアドレスが1つがVMに与えられる。ドメイン名(FQDNは[hostname].c.c[project-id].internal)とIPの組み合わせがnetwork-scoped DNSに登録される。

  • IPアドレスはephemeralだが、ドメイン名はインスタンスをstopしても不変である。

  • alias ip rangesを使うことで一つのインスタンス上で動く複数のサーバに異なるIPアドレスを振ることができる。(もちろんsubnetのレンジ内のものを使用可能)

external IP

  • インスタンスのOSは自分のexternal ipがなにかを知らない。
  • 基本ephemeralだが、自分でreserveしているものを使い、staticにすることも可能。
  • adminは自分で、Cloud DNSにpublic dnsレコードを登録する必要がある。

routing

  • cloud routesがルーティングテーブルを持っており、これはネットワークやサブネットが作られたときに作られる。
  • ルーティングテーブルは、以下の情報を含む。
    • (1)各サブネット(のインスタンス??)へのルーティング
    • (2)デフォルトゲートウェイ(0.0.0.0)へのルーティング

firewall

インスタンスごとに付与される。in/out X from/destination X protocol

デフォで以下が許可される。(以下のネットワークとはサブネットではない!っぽい)

  • 同一ネットワーク内(=10.128.0.0/9)の全てのincoming TCP, UDP, ICMP
  • 外部ネットワークからの(=デフォルトゲートウェイ0.0.0.0/0からの)incoming ICMP, RDP, SSH

優先度下がって、

  • deny-all-ingress rule
  • allow-all-egress rule

[2]VPCネットワークをまたいでinternal IPアドレスでやりとりする

VPCネットワークをまたいでinternal IPアドレスでやりとりするためには、VPC peeringかVPNという方法を使う必要がある。

Network Interfaces

  • インスタンスは、デフォルトのnetwork interfaceを持っており、さらに特定のnetworkに接続するためのnetwork interfaceを追加することができる。これにはNIC(= network interface controllers)を用いる。(subnetのレンジは全てユニークである必要がある)

  • 一つのインスタンスはnetwork interfaceを最大8つもつことができる。それぞれのinterfaceに、繋ぎ先のsubnetのIPアドレスのレンジ内のinternal IPアドレスが一つ紐づけられている。

    • 8つと書いたが、インスタンスのcpuのコア数などによって左右される。
  • network interfaceは、インスタンス作成時にしか設定できない。インスタンスを削除する以外に消す方法はない。

Network Peering

  • orgを跨ぐことすらできる。
  • external IP addressでやりとりするよりも、Network Latency低い, Network Security高い, Network Cost低いという利点がある。
  • subnetのrangeが被ったらダメ
  • ネットワークAとBをpeeringするためには、peering-A-Bとpeering-B-Aの二つの設定が必要である

Shared VPC

  • 同じOrgの別プロジェクトでVPC Networkを共有(することでinternal IPアドレスを指定してやりとり)したい。 このために、一つのHost Projectに、他のService Projectsをattachする。これによって、shared VPC network(xpnとも)を作成する。このために、host projectに???必要なのは
    • Organization admin role (多分userに対して??)
    • Shared VPC admin (hostにもserviceにも??) = Compute Nework Admin roleに含められて付与される
    • Service Project admin role

GCP Load Balancer

以下の6種類。

  • Global
    • HTTP(S)
    • SSL Proxy
    • TCP Proxy
  • Regional
    • Internal TCP/UDP (powered by Andromeda)
    • Network TCP/UDP (powered by Maglev)
    • Internal HTTP(S) (using proxy-based Layer 7ロードバランサ)

HTTP(S) load balancer

以下まとめて一つのバランサ。BackendServiceとBackendは異なることに注意。

  1. global forwarding rule経由でリクエストがHTTP target proxyに到達
  2. target proxyはurl mapを見て、リクエストを然るべきBackendService(こういう名前)にわりふる
  3. backend serviceから、同一region(がいっぱいだったらclosest region)のBackend(インスタンス)にリクエストを転送する

image.png

  • HTTPSロードバランサだと、 target HTTPS proxyを使う。このproxyは、最低1つ(最高10)のSSL証明書を持っている必要がある。
  • Cloud Armorを導入することで、「特定のIPを弾く」などのsecurity policyを作成できる。作成時に、backend serviceに紐づけられる。
  • Backendとして、Cloud Storageを使用することもできる。load balancerでbackendとしてこれを選択するときに、Enable Cloud CDN.を選択するだけで、CDNを使ったキャッシュが有効になる!(初回のリクエスト時は「まずCDNにリクエストし、キャッシュミスが発覚して、ロードバランサに転送される」という流れ。)

ちなみに、同一region内の、同一ネットワークからのinternalなインスタンスからリクエストは以下のように裁いている。
(同一のregion)

image.png

Managed instance groups

一つのテンプレ(設計図)をもとに、複数のコピーとなるインスタンスを立ち上げられる。ローリングアップデートや、ロードバランシングの負荷調整の際に使用される。

IAM

(新たに記事作るのもアレなのでここに入れてしまう)

  • IAM policyでは、階層の下に行くほど、権限が足し算されていく。(ので、上の回想で権限を与えすぎるな)

  • IAM roleは、

    • Basic Roles = Owner > Editor > Viewer (順に包含される) / BillingAdminstrator
    • Predefined Roles = list of permissionsで、名前がついている (Network viewerとか、network adminとか、security adminとかshared VPCとか)
    • Custom Roles
  • Security admin roleはfirewallを含む全てのネットワークリソースのlistとCRUDが、Network admin roleはfirewallを含まないリソースのlistのみができる

雑多なメモ

  • pingはICMPプロトコル(@インターネット層)を使用している。
  • DNSサーバ = DNSキャッシュサーバ + DNSコンテンツサーバ
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?