インストールしようとしています。霧職場での学習練習としてDocker(Windows用boot2docker経由)を使用します。 FOGにはすべてをインストールし、Ubuntuサーバーでうまく動作する便利な小さなスクリプトがありますが、Dockerで実行するのに問題があります。
FOGが推奨するバージョンであるUbuntu 12.04を使用しました。すべてがうまくいくようです。tftp localhost
コンテナ内のファイルが利用可能で、Windows 8.1ホスト(たとえば)でtftpを使用してコンテナからファイルをインポートget
できますが、別のシステムで同じ操作を実行しようとすると、今後の時間です。get
tftp 127.0.0.1 GET boot.txt
私は以下を試しました:
- boot2docker で UDP ポート 69 を開きます (VirtualBox >
boot2docker-vm
> 設定 > ネットワーク > ポート転送 > UDP ポート 69 を追加する)しかし、これはシステムのIPアドレスです))- また、Wiresharkを見ると、TFTPデータから見た58162、43595、および59037を含む複数のUDPポートが追加されました。結論として、私はWindows 8.1で昇格された権限と昇格されていない権限でこれを試しました。
- Windows 8.1 の両端でファイアウォールを完全に無効にします。
- VirtualBoxのネットワークタイプをブリッジモードに設定します(以前と同じようにNAtに戻ります)。
- Docker内でtcpdumpを使用して、パケットがリモートシステムから着信していることを確認します。 (しかし、サーバーは応答を送信していますが、パケットはコンテナから出ません。)
- Wiresharkを使用してWindows 8.1でトラフィックを見つけます。リモートコンピュータからのTFTPデータを表示できますが、リモートコンピュータに応答が返されません。
- Ubuntuにファイアウォールがあることを確認してください(いいえ、Dockerの非常にシンプルなバージョンです)。
- 別のコンピュータからFOGのWebインターフェイスにアクセスしてみました。 (うまくいきます。FOGに新しい画像を追加できます。)
- Dockerの空のUbuntuインストールにTFTPサーバーをインストールしてみてください(例:FOGインストールスクリプトを実行しない)。または
- 私のイメージを実行して
-p 69:69/udp
ポートのパススルーを明示的に許可します。 - UDP ポート 69 を明示的に公開するには、iptables をインストールします。
- ポート69がブロックされていることを確認するために、作業ネットワークのファイアウォールとスイッチを確認しました。ブロックされていません(TFTPトラフィックがDockerホストに到達したため)。
- 私は所有者から走った
tftp <ip address of another machine on the network running Wireshark> GET boot.txt
。 TFTPトラフィックが着信していることを確認します(ただし、TFTPサーバーを実行していないためエラーを返します)。 - 以前はFOGをサーバー上で実行していましたが、後で電子メールサーバーなどにさらにリソースを提供するために廃棄されました。
- Ubuntu 14.04ラップトップでDockerイメージを試してみました(したがって14.04をホストとして使用し、Dockerコンテナをゲストとして使用)、うまくいったので、問題はWindowsにあるようです。ここでどこに行くべきかわからない。
したがって、問題はTFTPパケットがWindowsをエスケープできないようです(ただしHTTPトラフィックはエスケープします)。
どんな提案がありますか?
ベストアンサー1
最後に、Dockerイメージを近くのUbuntuノートブックに移動しました。今私のTFTPサーバーは修正なしで完全に実行されるので、問題はVirtualbox、Windows、またはboot2dockerに関連していることがほとんど確実です(最後の問題はわかりませんが)。
私の質問をより関連性の高いstackexchangeに投稿する予定です(これはDockerの問題ではないことを知っています)、答えを得たら、他の人が恩恵を受けるようにこの質問を更新します。