hana_shinのLinux技術ブログ

Linuxの技術情報を掲載しています。特にネットワークをメインに掲載していきます。

virshコマンドの使い方(snapshot編)

1 virsh snapshotコマンドとは? 2 検証環境 3 オプション一覧 4 スナップショットを作成する方法(snapshot-create-as) 5 スナップショットを削除する方法(snapshot-delete) 6 スナップショットを切り替える方法(snapshot-revert) 6.1 事前準備 6.2 スナップ…

grubbyコマンドの使い方

1 grubbyコマンドとは? 2 検証環境 3 オプション一覧 4 事前準備 5 エントリを表示する方法 5.1 全エントリを表示する方法(--info=ALL) 5.2 特定のエントリを表示する方法(--info=パス名) 6 デフォルトカーネルの情報を表示する方法 6.1 インデックス番号を…

SystemTapの使い方(User-Space Probing)

1 User-Space Probingとは? 2 検証環境 3 debuginfoパッケージのインストール 4 ユーザプログラムにプローブを設定する方法 4.1 テストプログラムの作成 4.2 関数の入り口にプローブを設定する方法 4.3 関数から復帰する場所にプローブを設定する方法 4.4 フ…

SystemTapの使い方

1 SystemTapとは? 2 検証環境 3 事前準備 4 プローブの設定方法 4.1 カーネルにプローブを設定する方法 4.1.1 カーネル関数の入り口にプローブを設定する方法 4.1.2 カーネル関数から復帰する場所にプローブを設定する方法 4.1.3 ファイルの指定した場所にプ…

iptables-extensionsの使い方

1 iptables-extensionsとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 macモジュールの使い方 5 icmpモジュールの使い方 5.1 ICMP echoパケットの指定方法(type=8) 5.2 ICMP network unreachableパケットの指定方法(type=3,code=0) 6 length…

iptablesコマンドの使い方(ターゲットの使い方)

1 はじめに 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 LOGターゲット 5 DROP/REJECTターゲット 5.1 DROPとREJECTの違い 5.2 DROPターゲットの動作確認 5.3 REJECTターゲットの動作確認 6 RETURNターゲット 6.1 RETURNターゲットを使用した場合…

iptablesコマンドの使い方

1 iptablesコマンドとは 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 チェインとは? 5 ルールの表示方法(-L) 5.1 INPUTチェインのルールの表示方法 5.2 OUTPUTチェインのルールの表示方法 5.3 FORWARDチェインのルールの表示方法 5.4 PREROUTING…

ltraceコマンドの使い方

1 ltraceコマンドとは? 2 検証環境 3 インストール方法 4 オプション一覧 5 テストプログラム(以降TP)の作成 6 ライブラリ関数の実行順序を表示する方法 7 時刻情報を表示する方法 7.1 関数の実行時刻(秒単位)の表示方法(-t) 7.2 関数の実行時刻(マイク…

ソケットオプションの使い方(SO_REUSEPORT)

1 はじめに 1.1 ncコマンドの場合(SO_REUSEPORTを使用する) 1.2 iperf3コマンドの場合(SO_REUSEPORTを使用しない) 1.3 その他 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 動作確認 Z 参考情報 1 はじめに SO_REUSEPORTは、同じ名前(ローカ…

ncコマンドの使い方(ネットワーク実験の幅が広がるなぁ~)

0 はじめに 1 ncコマンドとは 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 インストール方法 4 オプション一覧 5 事前準備 6 IPv4オプションの使い方 6.1 TCPソケットの使い方 6.2 UDPソケットの使い方 6.3 送信元ポート番号を指定する方法(-p) 7 IPv6オプ…

ufwコマンドの使い方

0 はじめに 1 ufwコマンドとは? 2 検証環境 3 オプション一覧 4 ufwの起動、停止方法 4.1 起動方法 4.2 停止方法 5 ロギングについて 6 ルールの追加、削除方法 6.1 TCPポート番号の追加、削除方法 6.2 UDPポート番号の追加、削除方法 6.3 範囲指定したポー…

ソケットオプションの使い方(TCP_NODELAY編)

1 はじめに 2 TCP_NODELAYオプションとは? 3 検証環境 3.1 ネットワーク構成 3.2 版数 4 テストプログラム(TP)作成 4.1 サーバ側 4.2 クライアント側 4.3 コンパイル 5 事前準備 6 動作確認 6.1 TCP_NODELAY無効の場合 6.2 TCP_NODELAY有効の場合 7 まとめ Z…

ソケットオプションの使い方(TCP_CORK編)

1 TCP_CORKオプションとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 2.3 MTUの確認 3 テストプログラム(TP)作成 3.1 テストプログラム 3.2 コンパイル 4 事前準備 5 動作確認 5.1 TCP_CORKオプションが有効の場合 5.2 TCP_CORKオプションが無効の場合 6 …

ssコマンドのRecv-Q,Send-Qの意味について(LISTEN状態のとき)

1 はじめに 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 テストプログラム(以降TP)の作成 4.1 サーバ側 4.2 クライアント側 5 Send-Qの確認 5.1 TPの引数に1を指定した場合 5.2 TPの引数に2を指定した場合 5.3 TPの引数に256を指定した場合 6 …

ソケットオプションの使い方(SO_REUSEADDR編)

1 SO_REUSEADDRソケットオプションとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 テストプログラム(以降TP)の作成 4.1 サーバ側 4.2 クライアント側 4.3 シーケンス 5 検証結果 5.1 SO_REUSEADDRを指定しない場合 5.2 SO_REUSEADDRを指定…

ソケットオプションの使い方(SO_SNDBUF編)

1 はじめに 2 ソースコードの説明 3 検証環境 3.1 ネットワーク構成 3.2 版数 3.3 カーネルパラメータのデフォルト値 4 事前準備 5 テストプログラム(以降TP)の作成 6 検証結果 Z 参考情報 1 はじめに SO_SNDBUF,SO_RCVBUFは、ソケットの送受信バッファの…

ソケットオプションの使い方(SO_SNDTIMEO編)

1 SO_SNDTIMEOとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 テストプログラム(以降TP)の作成 4 検証結果 4.1 TPの引数に1を指定した場合 4.2 TPの引数に2を指定した場合 4.3 TPの引数に0を指定した場合 Z 参考情報 1 SO_SNDTIMEOとは? SO_SNDTIMEOは…

ソケットオプションの使い方(SO_RCVTIMEO編)

1 SO_RCVTIMEOとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 テストプログラム(以降TP)の作成 4 動作確認 4.1 TPの引数に1を指定した場合 4.2 TPの引数に2を指定した場合 4.3 TPの引数に0を指定した場合 Z 参考情報 1 SO_RCVTIMEOとは? SO_RCVTIMEOは…

ssコマンドのRecv-Q,Send-Qの意味について(ESTABLISHED状態のとき)

1 はじめに 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 Recv-Qの確認 5 Send-Qの確認 Z 参考情報 1 はじめに ssコマンドを実行すると、Recv-QとSend-Q という項目が表示されます。本記事では、Recv-QとSend-Qの意味について説明します。なお、s…

カーネルパラメータの使い方(tcp_tw_reuse編)

1 tcp_tw_reuseとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 tcp_tw_reuseが2の場合(デフォルト時)の動作確認 5 tcp_tw_reuseが1の場合の動作確認 Z 参考情報 1 tcp_tw_reuseとは? tcp_tw_reuseは、TCPコネクション確立時に使用していた…

ソケットオプションの使い方(SO_KEEPALIVE編)

1 TCP Keep-Aliveとは? 1.1 概要 1.2 ソケットオプション 1.3 シーケンス 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 テストプログラム 3.1 サーバ側TP 3.2 クライアント側TP 3.3 コンパイル 4 動作確認 4.1 相手から応答がない場合 4.2 相手から応答があ…

httpstatコマンドの使い方

1 httpstatコマンドとは? 2 検証環境 3 インストール方法 4 オプション一覧 5 基本的な使い方 6 転送スピードを表示する方法(HTTPSTAT_SHOW_SPEED=true) Z 参考情報 1 httpstatコマンドとは? Webサイトに接続するとき、そのWebサイトを表示するまでの時間を…

カーネルパラメータの使い方(tcp_fin_timeout編)

1 tcp_fin_timeoutとは? 1.1 正常シーケンス(パッシブクローズ側がclose()を実行する場合) 1.2 異常シーケンス(パッシブクローズ側がclose()を実行できない場合) 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 デフォルトの動作確認 4 カーネルパラメータ…

TCPの各種状態の作り方

1 はじめに 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 TCPの状態遷移 4 LISTEN状態の作り方 5 ESTABLISHED状態の作り方 6 SYN-SENT状態の作り方 6.1 作成手順 6.2 後始末(iptablesの設定削除) 7 SYN-RECEIVED状態の作り方 7.1 作成手順 7.2 後始末(iptabl…

coredumpctlコマンドの使い方

1 coredumpctlコマンドとは 2 環境 3 オプション一覧 4 事前準備 4.1 ユニット定義ファイル編集 5 core一覧をする方法(list) 6 core出力したプロセスの情報を表示する方法(info) 7 coreをファイルに出力する方法(dump) 8 特定のcoreを絞り込む方法 8.1 事前…

SELinuxコマンド概要

1 はじめに 2 環境 3 コマンド一覧 3.1 libselinux-utilsパッケージ 3.2 setools-consoleパッケージ 3.3 policycoreutilsパッケージ 3.4 policycoreutils-python-utilsパッケージ 3.5 policycoreutils-develパッケージ 3.6 policycoreutils-newroleパッケー…

コンテナーのネットワークについて

1 はじめに 1.1 コンテナ生成前 1.2 コンテナ生成後 2 検証環境 3 検証結果 Z 参考情報 1 はじめに podmanコマンドを使ってコンテナを生成した際のネットワークについて説明します。なお、podmanコマンドの基本的な使い方は、podmanコマンドの使い方 - hana_…

debuginfoパッケージのインストール方法

1 はじめに 2 検証環境 3 カーネルのdebuginfoパッケージのインストール方法 4 httpdのdebuginfoパッケージのインストール方法 Z 参考情報 1 はじめに カーネルやユーザアプリのdebuginfoパッケージをインストールしてみます。debuginfoパッケージをインスト…

podmanコマンドの使い方

1 podmanコマンドとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 インストール方法 4 オプション一覧 5 イメージを取得/削除する方法(pull/rmi) 5.1 AlmaLinuxのイメージ取得(最新版) 5.2 AlmaLinuxのイメージ取得(版数指定) 5.3 SUSE のイメージ取得(…

curlコマンドの使い方

1 curlコマンドとは? 2 環境 2.1 ネットワーク構成 2.2 版数 3 基本的な使い方 4 ファイルを保存する方法 4.1 リモートのファイル名で保存する方法(-O) 4.2 任意の名前を付けて保存する方法(-o) 4.3 複数ファイルをダウンロードする方法 5 HTTPヘッダのみ表…