Dockerのデフォルトネットワークセグメントの正しい変更手順

Dockerのデフォルトネットワークセグメントの正しい変更手順

背景

同僚がセキュリティ プロジェクトに取り組んでおり、AWS サーバーに秘密兵器を展開する必要があります。秘密兵器は Docker を通じて展開されます。展開前は、ジャンプ サーバーのイントラネットおよびエクストラネット SSH 経由でサーバーにログインできます。展開後は、エクストラネット SSH 経由でのみサーバーにログインできます。症状はまさにこのとおりで、薬の処方方法は医療スキルに依存します。

心臓の旅をチェック

1.秘密兵器を展開する前は、内部ネットワークと外部ネットワークで使用できますが、展開後は外部ネットワークでのみ使用できます。この症状を見ると、ネットワークファイアウォールの問題です。

1) iptables -F

2) 強制0を設定する

3) AWS 上で、このサーバーのセキュリティグループを inbound 0.0.0.0 に設定します (これは純粋にテスト用なので、正式な環境では行わないでください~~~)

2. SSH が失敗する原因は SSH 設定ファイルが変更されたことにありますか? ポートが変更されたため、SSH 設定ファイルに内部および外部ネットワークがログインできるかどうかを制御する設定がありますか?だから〜〜〜

vim /etc/ssh/sshd_config を実行して、いくつかランダムな変更を加えます (これは、私が ssh について十分に理解しておらず、設定ファイルに精通していないことを示しています。そのため、学習する必要があります)

3. これは一体何なのでしょう。ネットワークは正常で、セキュリティグループも問題ありません。なぜか、ルーティングについて考えました。route -n を使って調べてみました。すごい、こんなに多くのルートがあります。これらのルートを見ると、そのうちの 1 つは 172.29.0.0 でした (ジャンプ サーバーのネットワーク セグメントはこれによく似ています)。漠然と、ここに問題があると感じました (女性の直感は、彼氏が外で犬を飼っているかどうかだけでなく、彼氏が自分を愛しているかどうかも判断します。彼女の直感はここでもかなり正確です、笑)。それで~~~

 ルート -n
 ルート del -net 172.22.32.0 ネットマスク 255.255.255.0
 ルート del -net 172.23.32.0 ネットマスク 255.255.255.0
 ......

コンテナに関連するすべてのルートを強制終了し、ジャンプサーバーからイントラネットに ssh で接続すると、わお~~~わお~~~動作する、とても興奮する~~~~

4.そのルートの問題であることが確認されました。このコンテナが割り当てたネットワークセグメントがジャンプサーバーのネットワークセグメントと競合していたため、~~~~

 ルートを追加 -net 172.22.32.0 ネットマスク 255.255.255.0
 ......

競合するルートを除いて、削除したすべてのルートを追加します。これで、この問題を解決できます。

当時の解決策

考えてみると、競合があるので、このコンテナのネットワーク セグメントを変更する必要があります。どのように変更するのでしょうか? 私は非常に愚かな方法を使用しました。このコンテナを停止して削除し、docker-compose で再起動しました。新しいネットワーク セグメントが再割り当てされ、競合は発生しませんでした。

根本的な解決策

コンテナを起動する前に、Docker ネットワーク全体を、独自のネットワーク セグメントと競合しないものに変更します。これにより、Docker は常に、設定したネットワーク セグメントのみを割り当てるようになります。

操作手順: docker.json を変更して、docker 全体のネットワーク セグメントを変更します。元のネットワーク セグメントは 172 でしたが、これを 192 に変更します。

1) vim /etc/docker/daemon.json (このファイルが存在しない場合は自分で作成してください)

{
 "bip":"192.168.0.1/24"
}

2) Dockerを再起動する

systemctl dockerを再起動します

3) ネットワークセグメントを再確認する

注: Docker コンテナの使用を最初に計画するときには、この点を考慮して、使用するネットワーク セグメントを計画する必要があります。上記の方法では、Docker とコンテナを再起動する必要があります。

疑い

コンテナを停止または削除せずにネットワーク セグメントを変更するより良い方法はありますか? (調査が終わったらさらに追加します)

要約する

1: ssh 設定ファイルについてよく知らない (いつか体系的に調べる必要がある)

2: ネットワーク、特にルーティングに精通していること。正直に言うと、ルーティングの具体的な役割はまだ説明できません。直感的にしか理解できません。ルーティングなしではやっていけないとわかっているだけです (この期間中に PMP 試験を終えたら、シスコに関する本を読み始めます。認定については話しませんが、まずはネットワークを強化するために、それらの本を注意深く読みます)

3: Docker ネットワーク モードに慣れていない (今後は Docker ネットワークの公式ドキュメントを注意深く読んでください)

さて、今回の記事は以上です。この記事の内容が皆さんの勉強や仕事に少しでも参考になれば幸いです。123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker で Docker0 ブリッジのデフォルトのネットワーク セグメントを変更する方法
  • Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明
  • Dockerは同じIPネットワークセグメントとの接続を実現する
  • Docker は、ホストと同じネットワーク セグメントにある IP アドレスを指定します。
  • Docker はホスト ネットワーク セグメント IP をどのように割り当てますか?
  • Dockerコンテナはカスタムネットワークセグメントで固定IP/静的IPアドレスを指定します
  • Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

<<:  mysql5.7.19 zip 詳細なインストールプロセスと構成

>>:  Vueで複数の添付ファイルをアップロードする実装例

推薦する

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...

Linuxのdateコマンドの使用

1. コマンドの紹介date コマンドは、現在の時刻または指定された時刻を指定された形式で表示するた...

Linux deb パッケージの解凍、変更、その他の操作方法のコード例

さまざまな理由により、debパッケージ内のさまざまなファイルの内容を直接変更する必要がある場合があり...

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...

Docker で MySQL マスター スレーブ レプリケーションを実装するためのサンプル コード

目次1. 概要1. 原則2. 実装3. スレーブインスタンスを作成する4. マスタースレーブ構成要約...

Vue2.0の双方向データバインディング原則を手動で実装する

一言で言えば: データハイジャック (Object.defineProperty) + パブリッシュ...

JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明

JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明MySQL データベースを使用して、...

MySQL データベースのマスター スレーブ分離のサンプル コード

導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...

HTML 要素 noscript の使用の紹介

noscript の定義と使用法noscript 要素は、スクリプトが実行されない場合の代替コンテン...

CentOS7 インストール GUI インターフェースとリモート接続の実装

ブラウザ (Web ドライバー) ベースの Selenium テクノロジを使用してデータをクロールす...

Linux サーバーと Windows システム間でファイルをアップロードおよびダウンロードする方法

背景: Linux サーバーのファイルのアップロードとダウンロード。 XShell+Xftp インス...

Linux クラウド サーバーに新しいディスクをマウントする方法

背景社内に新しいサーバーが追加され、2Tのハードディスクがマウントされました。sshでログイン後、マ...

CSS はこのように使用できますか?気まぐれなグラデーションの芸術

前回の記事「1行のCSSコードの魅力」では、たった1行のCSSコードで生成できる美しい(奇妙な感じと...

固定、流動的、柔軟なウェブページレイアウトの長所と短所の分析

ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...

HTML マークアップ言語 - フォーム

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...