学習記録#26 250703

562ページから

584ページまで

IPアドレス(IPv6):
IPv4が32ビットなのに対し、こちらは128ビット
無限と言っても過言ではない数のIPアドレスを使用できる
IPv6のIPアドレスは : によって 16ビットずつ8つのブロック に区切られた 16進数 で表す

例
2001:0db8:0000:0000:0001:2345:6789:abcd
この表記だと長くなるので、省略することもできる
省略ルール
①各ブロックの先頭が0なら省略できる
②0が連続するブロックは::に置き換えらえる(1箇所だけ)
例のIPアドレスの省略形は、
2001:0db8:0000:0000:0001:2345:6789:abcd
↓
2001:db8::1:2345:6789:abcd

IPv6のIPアドレスは以下の3つに分類できる
ユニキャストアドレス:
1つのネットワークインターフェースを識別するアドレス
エニーキャストアドレス:
エニーキャストアドレスは、複数のホストの集合に割り当てられるアドレス
マルチキャストアドレス:
IPv4のブロードキャストアドレスに相当するもの
※ ブロードキャストアドレスについて→ https://zenn.dev/link/comments/33a68adee4917b

IPv6では、IPv4のネットワーク部に相当する部分をプレフィックス、ホスト部に相当する部分をインターフェースIDという
IPv4ではネットワーク部とホスト部の区分にサブネットマスクを使っていたが、IPv6ではプレフィックス、インターフェースIDともに64ビットになる
どういうことかというと、IPv4ではネットワーク部とホスト部の境界が可変なのでサブネットマスクでどこまでがどっちなのか見分ける必要があるが、IPv6は固定で64ビットずつなのでそういうのが要らないよって話

ウェルノウンポート:
既知のポートのこと
1023番までが予約されている

IPv6の表記だと、ポート番号を「:80」のように指定するとどこまでがポート番号なのか分かりにくいので、IPアドレス部分を「[]」で囲むように定められている
2001:db8::1:2345:6789:abcd:80
↓
[2001:db8::1:2345:6789:abcd]:80

ポート番号とサービスの対応付は、/etc/servicesに記述される
cat /etc/servicesでいっぱい出てくる

ネットワークの設定をする方法
コマンドを使う:一時的な保存になるので、システムやネットを再起動すると設定が失われる
ファイルに記述する:/etc以下のファイルに記述する。永続的に保存できる。設定ファイルはディストリビューションによって異なることがある

/etc/hostname:
ホスト名が記述される
/etc/hosts:
ホスト名とIPアドレスとの対応を記述する
小規模なネットワークならこのファイルに全部書いて配布するだけでいけることもあるが、何か変更があったときに配布した全部を書き換える必要が出てくるので、規模が大きくなると運用が難しくなる

nmcliコマンド:
NetworkManagerが導入されているシステムでは、nmcliコマンドを使ってネットワークの設定、接続の管理、状態の確認などを行う
ipコマンド:
ネットワークインターフェースやルーティングテーブル、ARPテーブル等を管理するコマンド
routeコマンドやifconfigコマンドなどを合わせたような挙動になる
ifconfig:
IPアドレスを確認するときによく使われる
ネットワークインターフェースの状態を表示したり、設定を行ったりする
ifup、ifdown:
指定したネットワークインターフェースを有効にする、無効にする、といった操作に利用できる

ネットワークの設定を確認・変更したり、ネットワークの状態を表示するコマンド
pingコマンド:
指定されたホストにICMPパケットを送り、その反応を表示する
使用例)WebサーバーにアクセスしてもWebページが表示されない時、Webサーバーソフトウェアがダウンしているのか、ホスト自身がダウンしているのかを確かめるために利用する
→Webサーバー側がダウンしてても、ホストが生きてたら反応は帰ってくる
IPv6ではping6を使う

tracerouteコマンド:
指定されたホストまでパケットが伝わる経路を示す
宛先までのルーターやホストが順に表示されるため、どこで障害があったかの位置を特定できる可能性がある
IPv6ではtraceroute6を使う

tracepathコマンド:
tracerouteと同様、指定されたホストまでパケットが伝わる経路を示す
IPv6ではtracepath6を使う

hostnameコマンド:
ホスト名を指定しなかった場合、現在のホスト名を表示する
ホスト名を指定した場合、ホスト名を変更する。変更できるのはrootユーザーのみ

netstatコマンド:
ネットワーク機能に関する様々な情報を表示する
用途は、開いているポートの確認など
開いているポートから、どのようなサービスが動作しているか確認できる

ssコマンド:
最近のディストリビューションでは、netstatに代わって利用される

ncコマンド:
テキストストリームにおけるcatコマンドと同様の働き
ネットワークの通信の確認などに利用できる

ディストリビューションってなんだっけ?

配布とか流通って意味らしい

Linuxディストリビューションっていうと、カーネルとそれをとりまくソフトウェアたち(カーネルモジュール?)のことを指す

テキストストリームとかのストリームってなんだっけ?

データの流れを示す概念
主にデータの入出力や処理を連続的に行うことを意味する

分かりやすかった