network
ネットワーク関連のPage
日本ネットワークインフォメーションセンターJPNIC(network講座)
ipアドレスを確認できるサイト
総務省(情報通信)
AWSで作成するネットワーク依存関係
ネットワークとインターネットの違い
ネットワークはコンピューター同士の接続。
インターネットは世界中のネットワークの集まり、家や会社でネッとワークを作ることでネットワーク上のそれぞれのスマホ同士で接続が可能
ネットワーク原因調査
- ネットワーク原因調査
ネットワーク疎通コマンド
ping
pingはICMPのエコー要求/応答機能を使った診断コマンド。
ち なみにICMPはL3のプロトコルなのでポートは関係ない。portを指定するとerrorになる。
pingはICMPを使っているため、途中経路でICMPを許可していない場合は疎通が確認できない。
たとえばAWSはデフォルトではICMPが使えません。
nc(netcat)
Linuxでポートの疎通確認を行う際によく使う。tcpとudpどちらも対応している。
- nc(listener version) ncコマンドはサーバとして使うこともできる。疎通先でサーバとして起動し、クライアントから確認することでネットワーク自体が繋がっているか確認するケースもある。
traceroute
どんな経路を辿っているか知りたい時に使います。ICMP/UDP/TCPを使うことができます。
認証と認可
認証 : ある個人を特定すること パスワードとユーザIDなどでログインできるかの判断
認可 : 行動やリソースの許可をすること 認証を許可したものがどこまでのアクセス権限があるかの判断
上り・下り
-
上り パソコンや携帯電話からインターネット上へファイルを転送する際の通信 (例)ブログに写真を載せる際の通信。メールの送信。
-
下り インターネット上からファイルをパソコンや携帯電話に受け取る際の通信。 (例)インターネットから音楽や画像をダウンロードする。メールの受信。
VNC(Virtual Network Computing)
VNCとは、ネットワークを通じて別のコンピューターに接続しそのデスクトップ画面を呼び出して操作できるリモートデスクトップソフトのひとつ。また、オリジナルのVNCを元に開発された派生ソフトウェア群の総称。さまざまな環境に移植され、相互に接続可能なため、異なるOSで操作するコンピューターの画面を呼び出して操作できる。
ネットワーク スパイクについて(各ベンダー)
クラウドサービスの場合
AWS(EC2) 急激なアクセス増加に対してはELBのスケールアウトが間に合わずにサービス断へ繋がる。 その場合には事前の暖機申請を行う必要がある。
GCP(ComputeEngine) 事前の暖機とか不要でこなせる。
127.0.0.1とlocalhostと0.0.0.0の違い
127.0.0.1 127.0.0.1はループバックアドレスのひとつであり、同時に127.0.0.1に対応する仮想的なネットワーク・インターフェースを表す。 ループバックアドレスは自分自身を表す特別なIPアドレスのことです。 ループバックアドレスは同一ホスト内でしか通信を行わない。
localhost 127.0.0.1を表すホスト名のことです。 127.0.0.1とほぼイコールなので当たり前ですが、こちらも同一ホスト内でしか通信を行いません。 何らかの開発用サーバを立ち上げた際に、ブラウザにlocalhost:8080といったアドレスを入力することがあるかと思いますが、それはこのlocalhostです。
0.0.0.0 前者2つとだいぶ異なり、すべてのネットワーク・インターフェースを表す。 ワイルドカードのようなもので、すべての通信を表す。 こちらは別ホストからでもアクセスすることが可能です。
ペイロード
さまざまな意味のペイロード ペイロードとは、IT用語としては、パケット通信においてパケットに含まれるヘッダーやトレーラーなどの付加的情報を除いたデータ本体のこと。 パケットにはデータの転送先や転送経路などを制御するための情報を含むヘッダーや、データの破損などを検査するトレーラーなどの情報が、データそのもののほかに付加されて送られる。
ping
pingはパケットを送って宛先が送り返すシンプルな動作。 つまりPingで確認できるレベルはIPレベルまでなのです。 OSI参照モデルでいうところの、「ネットワーク層」までの 確認になります。
さらにその上の層、「トランスポート層」や 「アプリケーション層」レベルの確認はできません。
「なんだPingって万能じゃないのね…」
いやいやその分シンプルで使いやすいし、 Pingだけでもある程度の切り分けは可能なんです。
たとえば、Pingは通るけどWebが見れないなんて時。
つまりIPレベルでの疎通はOKなのですから、ネットワーク的には 到達性を確保しているわけです。
そうなるとさらにその上のレベル、Webサーバーに問題が あるんじゃあないの? なんて切り分けができるわけです。
通信方式
TCPソケット(HTTPリクエスト)
UNIXドメインソケットとは
ローカルで開かれたソケットファイルを通じて、サーバー側とクライアント側とで通信を行う方法です。
Node.jsでは適用されていませんが、一般的には unix://
でURLが始まる。
TCPで行う通信と異なり、ローカルファイルを指定して通信を行うため、ドメインの解決や外部通信をしない。
そのためTCPに比べ速い。
このUNIXドメインソケットはローカルマシン内で、プロセス間で通信を行う場合に効果を発揮する。 たとえば、KubernetesのPod内の コンテナー間で通信を行う場合に使うことができます。 ボリュームを共有してマウントすることで通信ができるので、ドメインの名前解決に縛られることが無くなります。 ポートで通信を行う場合と比べて制限を受けない部分もあるので、一度使ってみてはどうですか?
CIDR(Classless Inter-Domain Routing)
Ingress(イングレス)
コンピューターネットワークにおいて、外部から内部ネットワークへのアクセスを許可するための方法のひとつ。
具体的には、Ingressコントローラーを使用して、外部のHTTP(S)リクエストを内部のKubernetesサービスにルーティングすることが可能。
Ingressは、ネットワークレベルでの負荷分散やTLS終端、ルーティングルールの定義など、多数の機能を提供するために使用されます。Ingressは、Kubernetesのオーケストレーションシステムであるコンテナーオーケストレーションシステムでよく使用されます。
サブネット
サブネット(Subnet)は、コンピュータネットワークにおいて、大きなネットワークをより小さな論理的なネットワークに分割するために使用される概念です。ネットワークのIPアドレス範囲を細分化し、異なる部分ネットワークに割り当てることで、トラフィックを制御したり、セキュリティを強化したりすることが可能になります。
サブネットは、通常、同じ物理的なネットワーク内にあるコンピューターやデバイスのグループを含みます。サブネットは以下のような特徴を持ちます:
IPアドレス範囲: サブネットは、ネットワーク全体のIPアドレス範囲内の特定の範囲を割り当てられます。たとえば、192.168.1.0/24のネットワークをサブネットに分割する場合、それぞれのサブネットには192.168.1.0から192.168.1.255までのIPアドレスが割り当てられることになります。
ルーティング: サブネットは、自身の範囲内のIPアドレスに対する通信を制御することが可能。サブネット内のデバイスは、同じサブネット内のデバイスとは直接通信できますが、他のサブネット内のデバイスとはルーターを介して通信する必要があります。
セキュリティ: サブネットは、セキュリティグループやアクセス制御リスト(ACL)と組み合わせて、ネットワーク内のリソースに対するアクセスを制限することが可能。セキュリティの要件に合わせて、異なるサブネットに異なるセキュリティポリシーを適用することが可能です。
サブネットは、特定のネットワーク管理の目的に応じて、より小さなネットワークを作成するために広く使用されています。たとえば、オフィス内の異なる部署や、クラウドプロバイダーの仮想ネッ トワーク内の複数のアプリケーションを個別に管理するためにサブネットを使用することが一般的です。
サブネット同士の接続
サブネット同士の接続は、一般的にデフォルトではできません。サブネットはそれぞれ独立したネットワークとして扱われるため、デフォルトでは他のサブネットと直接通信することはできません。
しかし、サブネット同士を接続する方法はいくつか存在します。
-
ルーターを介した接続: サブネット同士を接続するためには、ルーターを使用することが一般的です。ルーターは、異なるネットワークを接続し、通信を中継する役割を果たします。ルーターを使用してサブネット同士を接続することで、通信が可能になります。
-
VPC Peering: クラウドプロバイダーの仮想プライベートクラウド(VPC)の場合、VPC Peeringを使用して異なるVPC(=サブネットを含む)同士を接続できます。VPC Peeringは、異なるVPC間で直接通信を確立し、セキュリティグループやネットワークACLを適用してセキュリティを確保できる機能です。
-
VPN (Virtual Private Network): オンプレミスネットワークとクラウド上のVPCや異なるクラウドのVPCを接続する場合、VPNを使用することがあります。VPNは、暗号化されたトンネルを通じて異なるネットワークを接続し、セキュアな通信を提供します。