本文へジャンプします。

初心者によるニフクラ講座:SSHログイン~DNATを添えて~/前編

はじめまして、富士通クラウドテクノロジーズの成田颯(なりた はやて)です。
関東生まれ関東育ち、好きな食べ物は粉物とエビチリです。
昨年の12月に初めてニフティクラウドに触れてから、はや3ヶ月。
[ifconfig] しかわからなかったLinuxも、基本的なコマンドは打てるくらいに進化を遂げました。

そんな進化を遂げた成田がSSHログインについて、
自分自身が初心者ということを最大限に活かし、初心者目線でわかりやすく用語の解説も含めてご紹介いたします!

ブログサムネ_前編

今回の目標

グローバルIPを持たないサーバーを、ルーターのDNAT機能を使ってインターネットからアクセスできるようにするための環境を構築する。

・DNAT
Destination Network Address Translationの略。
プライベートにしか接続されていないサーバーに、SSHログインできるようになる優れもの。
宛先アドレスを変換する(例 → グローバルIPをプライベートIPに変換)

目標の背景

IPアドレスを外部に公開したくない…等の理由でサーバーにグローバルIPを持たせないことがあると思います。
グローバルIPを持たないサーバーにSSHログインをしたいときに、

「え、、、SSHログインできないんだけど、、、」

という風に、詰まってしまったことが自分にもあり、
同じような経験をしてほしくない!と思ったので記事にしました。

今回の構成

今回の構成は上記目標にあるとおり、「グローバルIPを持たないサーバーを、ルーターのDNAT機能を使ってインターネットからアクセスできるようにする」ためのシンプルな構成となっております。
自分も同じような構成でNATの学習をしていて、とてもシンプルでわかりやすい構成だったので今回紹介いたします。

以下が今回の構成図です。

構成図

上記の構成図と同じ構成になるようにコントロールパネル(以下コンパネ)から、
[サーバー] [ルーター] [プライベートLAN] を作成してみましょう!

※今回ファイアウォールについては触れないので、個別で作成・設定を行ってください。

POINT:作成する順番

今回のように作成すべき構成がわかっている場合は、以下の順番で作成するとGOODです。

  1. プライベートLAN
  2. ルーター
  3. サーバー

今回作成するルーターはグローバルとプライベートLANに接続されているため、最初にプライベートLANを作成します。
ルーターがないとサーバーにIPアドレスが割り当てられないので、サーバーより前にルーターを作成し、最後にサーバーを作成します。

作成する順番は結構大事で、ルーターがない状態でサーバーを作成すると、時間がかかった挙句、「異常あり」ステータスになってしまいます。

プライベートLANを作ろう

ここで登場する用語

・クラス
アドレスクラスともいう。クラスA~Eの5つのクラスがある。
各クラスごとにIPアドレスの割り当てられる数が決まっている。
各クラスごとの割り当てられる数については紹介しませんが、クラスCだと少なすぎる、クラスAだと多すぎる
という問題があり、最近ではCIDR(以下で説明)が主流になっています。

・CIDR
アドレスクラスの概念がなく、IPアドレスを割り当てられる数をちょうどいいサイズに指定できる。
そのため、アドレスクラスのように枠が少なすぎ、多すぎという問題が発生しない。
[xxx.xxx.xxx.xxx/XX]というフォーマットで入力し、[/XX]の数値を変えることで
サブネットマスクの範囲(IPアドレスの割り当てられる数)を変えることができます。

文章だけではわかりづらいと思うので、図で説明いたします。
以下の図では「アメ=IP」「アメ袋=クラス」という認識でご覧ください。

CIDR説明

上の図ではペティちゃんが欲しがっているアメの個数に対して、コンビニで売られているアメ袋の内容量に差があることがわかります。
IPアドレスにはクラスという概念がありますが、CIDRにはクラスの概念がないのです。どういう効果があるのか、以下の図で説明いたします。

CIDR説明2

CIDRの説明は以上です、早速プライベートLANを作ってみましょう。

作ってみよう

コンパネの [ネットワークタブ > プライベートLAN作成] でプライベートLAN作成画面を開きましょう。
プライベートLAN名、CIDRに適切な値を入力して作成してください。

今回は以下のような設定でプライベートLANを作成しました。

PVLAN作成

ルーターを作ろう

作ってみよう

コンパネの [ネットワークタブ > ルーター作成] でルーター作成画面を開きましょう。

今回作成するルーターには、共通グローバルと先ほど作成したプライベートLANが接続します。
ルーター作成画面のネットワーク設定にて、共通グローバルとプライベートLANに接続されるように設定をしてください。

また、ネットワーク設定の「プライベートLAN」の「DHCP」は有効に設定してください。
有効にしないとサーバーにIPアドレスが割り当てられず、サーバーのステータスが「異常あり」になってしまいます。

今回は以下のような設定でルーターを作成しました。

ルータ作成

サーバーを作ろう

ここで登場する用語

・SSHキー
サーバーにSSHログインする際に使用します。作成したらローカルに保存してください。
パスワードはSSHログインをするときに使用するので、忘れないようにしてください。

作ってみよう

コンパネの [ネットワークタブ > サーバー作成] でサーバー作成画面を開きましょう。
最初にOSイメージを聞かれるので、今回は「CentOS7.1」を選択します。

今回のサーバー作成で重要なのはネットワーク設定とSSHキーです。
共通グローバルには接続せず、初めに作成したプライベートLANにのみ接続します。
(共通グローバルに接続するとDNATのありがたみが伝わらないのである)
また、IPアドレスは必ず「自動割り当て」、もしくは「指定する」を選択し、適切なIPアドレスを設定してください。

また、SSHキーを作成したらローカルに保存してください。
前編では使いませんが、後編でSSHログインする際に使用します。

はじめに紹介した構成図の通り、今回はサーバーを2つ作成します。
同じようにサーバーをもう1つ作成してみてください。

今回は以下のような設定でサーバーを作成しました(もう1つのサーバーも同じ設定)

サーバ作成01

楽しかった環境構築も、あっという間に終わりが近づいてきましたね。
ただ、サーバー等を作成しただけでは、まだSSHログインはできないのです。
それでは今から、SSHログインをできるようにするための設定をしていきましょう

NATテーブルの作成・設定

ここで登場する用語

・NAT
Network Address Translationの略。
IPアドレスを変換してくれる優れもので、SNATとDNATなどの種類がある。

・NAPT
Network Address Port Translationの略。
NATにあったIPアドレス変換機能に、ポートを変換する機能が加わった素晴らしいもの。
ポートが変換できることによって、1つのグローバルIPを複数のプライベートIPに変換することができる。

・SNAT(今回は使用しません)
Source Network Address Translationの略。
プライベートにしか接続されていないサーバが、インターネットに接続できるようになる優れもの。
送信元IPを変換する(例 → プライベートIPをグローバルIPに変換)

・アウトバウンドネットワーク(今回は使用しません)
イメージ的には外に出ていく通信。
SNATの場合、プライベートIPがグローバルIPに変換されて外に出ていくため、
グローバルIPがアウトバウンドネットワークになる。

・インバウンドネットワーク
イメージ的には中に入ってくる通信。
DNATの場合、グローバルIPがプライベートIPに変換されて中に入ってくるため、
プライベートIPがインバウンドネットワークになる。

作ってみよう

コンパネの [NATテーブルタブ > NATテーブル作成] でNATテーブル作成画面を開きましょう。
今回はDNATのみ使用しますので、DNATルールを追加します。

先程サーバーを2つ作成したので、NAPT が最大限に活かせますね!!!
それでは、以下の点を踏まえてNATテーブルを作成してみましょう。

・「192.168.0.1」と「192.168.0.2」の両方にSSHログインできるようにしたいなぁ、、、
・ルーターのグローバルIPを指定して、SSHログインする(グローバルIPをプライベートIPに変換させるには?)

今回は以下のようにNATテーブルを作成しました。
以下では、SSHログインする際に、ルータのグローバルIPを指定した上で、
「ポート22」を指定した時に「192.168.0.1」、「ポート10022」を指定した時に「192.168.0.2」
のサーバーにSSHログインするように設定してあります。

NAPTテーブル作成

設定してみよう

コンパネのネットワークタブに表示されているNATテーブルを設定したいルーターをクリックします。
表示されたウインドウの左下にある、「ルーターの操作」から「NATテーブル設定変更」を選択すると
以下のような画面が表示されるので、「変更するNATテーブルID」に作成したNATテーブルを設定します。

NATテーブル設定

設定が完了したら、NATテーブルを設定したルーターをクリックして設定が反映されてるか確認しましょう。

NAT確認

POINT:NATに慣れるコツ

自分がNATを初めて使ったときはなんとなくやったら出来てしまったという感じでした。
そんなNATに慣れるために、理解すると良いポイントが2つあります。

・プライベートLANのみに接続されているサーバーは、
 NAT設定をしないとSSHログインもインターネット接続もできないことを理解する。

・SNAT、DNATの流れを把握することがとても大事。
 SNAT → プライベートLANのみに接続されているサーバーからインターネットに出ていく。
  DNAT → インターネットからプライベートLANのみに接続されているサーバーに入る。

あくまでも自分なりの理解するといいと思ったポイントなので、
皆さんも自分なりのポイントを見つけ出せるとGOODです!

DHCPオプションの作成・設定

ここで登場する用語

・デフォルトゲートウェイ
通信相手までの経路がわからないときに、とりあえず中継させるIPアドレス。

デフォルトゲートウェイはかなり重要なので、図で説明します。
下の図では、ペティちゃん(2度目の登場)がデフォルトゲートウェイ役になっています。宛先がわからないときにとりあえずペティちゃんに居場所を聞いてみるのです。

DHCP説明

宛先(C君の居場所)がわからない状況で、デフォルトゲートウェイが設定されていないと通信ができません。
プライベートLANしか接続されていないサーバーにSSHログインしたい場合は必ず設定してください。設定しなかった場合SSHログインができません。

作ってみよう

コンパネの [DHCPオプションタブ > DHCPオプション作成] でDHCPオプション作成画面を開きましょう。

DHCPオプション作成画面には7つの入力項目があります。
今回は一番上の「default-router」のみ入力します。
「default-router」にはデフォルトゲートウェイとして使用するIPアドレスを入力します。
今回はルーターのプライベートIPを「default-router」に設定しました。

DHCPオプション作成

設定してみよう

コンパネの[ネットワークタブ]からDHCPオプションを設定したいルーターをクリックします。
表示されたウィンドウの左下にある、「ルーターの操作」から「ネットワーク設定変更」を選択すると
以下のような画面が表示されるので、「プライベートLAN」の「DHCPオプション」に作成したDHCPオプションを設定します。

ルータNW変更

これでDNATを利用してSSHログインするための環境構築が完了しました!

まとめ

・環境構築において、作成したい構成が見えている場合は、作成する順番を意識して効率化を図ろう
・CIDRはクラスの概念がなく、無駄なくIPアドレス割り当て空間を指定できる
・DNAT、SNATは流れを把握することで、どちらを設定すればよいか簡単に判断できるようになる
・プライベートLANにしか接続されていないサーバーがあるときは、DHCPオプションの設定を忘れずに行う
 設定しなかった場合、SSHログインができない

先生用画像

「後編では、今回作成したサーバーにSSHクライアントを利用して、実際にSSHログインをしてみましょう!!!」

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

福澤真

福澤真

ニフティクラウドのコンパネ開発、運用をしています。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。

世良迪夫

世良迪夫

ニフティクラウドのRDBなどを担当しています