2019年8月21日水曜日

VoIPについて

概要

音声をパケット化して通信するVoIP(Voice over Internet Protocol)についての情報をまとめます。

要点

  • VoIP化のメリット
    • 電話とネットワークで使用する配線を共通化して設備を減らすことができる
    • 電話料金とネット料金を共通化できるので安くすることができる
    • スマホやパソコンではアプリケーションと連携することができる
  • VoIPでやりとりするデータ
  • VoIPを使うときの呼び出し音や通話中のデータを呼制御データと呼び、実際に話すときのデータを音声データと呼びます。

  • RTP(Realtime Transport Protocol)プロトコル
  • RTPは音声や動画などのデータを送信するためのプロトコルで、UDPでありながら番号管理をしてリアルタイム処理を実現します。

  • SIP(Session Initiation Protocol)
  • SIPはVoIPでの呼制御をするためのプロトコルで、以下の手順で端末間でのセッションの生成を行います。

    1. ユーザはSIPサーバに対してINVITEメッセージを送信する
    2. SIPサーバはデータベースから該当するIPを検索して通話要求を宛先に転送する
    3. 応答を返して通話を開始する
  • 音声の符号化
  • VoIPで使用するA/D変換は、アナログ信号をデジタル信号に変換することであり、標本化、量子化、符号化の3段階で処理をします。

    1. 標本化
    2. アナログ信号を数値化する事

    3. 量子化
    4. 小数をどこかで切り上げて値を決定する事

    5. 符号化
    6. 量子化で決めた値をディジタルデータにする事

  • 計算問題例
  • 160バイトの音声データに負荷されるヘッダはイーサネットヘッダが18バイト、IPヘッダが20バイト、UDPヘッダが8バイト、RTPヘッダが12バイトで、このパケットが20ミリ秒ごとに送出される。このパケットのデータサイズは218バイトで、このパケットを20ミリ秒ごとに送信する場合、1秒当たり50パケット送信する。この時必要な帯域は1通話当たり、87.2kバイト/秒 となる。

  • IP電話の通信品質
  • IP電話を使う際、音声の品質を示す指標として以下のようなものがあります。
    • MOS(Mean Opinion Score)値
    • 評価者に音を聞かせて5段階で評価し、その平均値をMOS値と呼びます。
    • R値
    • ノイズの影響を考慮した信号の大きさ、エコーや遅延などによる劣化から算出します。

2019年8月20日火曜日

プロキシサーバについて

概要

プロキシサーバはインターネットアクセスを行う際にPCの代理として使用します。

要点

  • プロキシサーバを導入するメリット
    1. クライアントPCから外部のネットワークに通信する際にセキュリティのチェックを行うことができ、FWの経由する通信を制限しやすくなる
    2. 一度閲覧したサーバをキャッシュとして残しておくことで同一サイトへのアクセスの速度を高速化できる

  • プロキシサーバの設定で自動設定ファイルを使う場合のメリット
  • プロキシサーバを設定する際に、プロキシサーバのアドレスを直接設定する方法と、PACファイルと呼ばれる自動設定ファイル(自動構成スクリプト)を読み込ませる方法があります。自動設定ファイルを使うと冗長化などの詳細な設定を臨機応変に行うことができるようになるので、大規模なネットワークではこの方法が採用されます。


  • プロキシを経由してHTTPSで通信する仕組み
  • HTTPSを使う場合、クライアントPCからWebサーバへのCONNECTメソッドによってサーバの証明書を入手して暗号化された通信路を確立し、その通信路を使ってWebサーバとの通信を行う。


  • リバースプロキシとフォワードプロキシ
  • リバースプロキシはWebサーバ側が身代わりとして使用するサーバの事を指し、
    フォワードプロキシはWebブラウザの身代わりとして使用するサーバの事を指します。 リバースプロキシを使うメリットは多数のリクエストに対する負荷分散、キャッシュによる負荷低減、暗号化や認証の代替などが考えられます。

FTPについて

概要

FTP(File Transfer Protocol)はファイルを転送するプロトコルです。制御用とデータ転送用で2つのコネクションが必要です。

要点

  • FTPで使用するポート番号
  • FTPではコマンドのやり取りを行う制御用のポート(21番)とデータ転送用のポート(20番)を使ってファイルの転送をします。

  • SFTP(SSH File Transfer Protocol)
  • FTPは認証情報や通信データは平文で流れるので、盗聴の危険があります。FTPの通信をSSHで暗号化したプロトコルとしてSFTPがあります。

  • TFTP(Trivial FTP)
  • 簡易的なFTPとしてTFTPがあります。TFTPはユーザ認証が不要でUDPを使って通信をします。

  • FTPのモードについて
  • FTPにはアクティブモードとパッシブモードの二つの転送方式があります。

    アクティブモードではサーバ側からクライアント側に接続する方式で、ポート番号は制御用に21番、データ転送用に20番を使用します。

    ファイアウォールなどでサーバ側からクライアント側への通信を許可していない場合にはパッシブモードを使います。パッシブモードはFTPクライアント側からサーバ側に接続する方式で、ポート番号は制御用に21番、データ転送用にはランダムな番号を割り当てます。

2019年8月18日日曜日

メール関連のプロトコル POP、SNTP、IMAP


概要

電子メールのやりとりに使用する、POP(Post Office Protocol)や、SMTP(Simple Mail Transfer Protocol)、IMAP(Interactive Mail Access System)情報をまとめます。

関連するプロトコル
名称 説明 ポート番号
POP3 受信の時に使うプロトコル 110
SMTP 送信の時に使うプロトコル 25
SMTP-AUTH 認証つきの送信プロトコル 589
IMAP4 サーバ上にあるメールを受信するためのプロトコル 114

要点


  • 電子メールのプロトコル
    • 送信プロトコル
      • SMTP
      • メールを転送するプロトコルです。認証がないのでセキュリティに課題があります。SMTPにはコマンドがあり、以下の流れで処理が行われます。
        1. HELO/EHLOコマンド(通信の開始)
        2. MAIL FORMコマンド(送信元メールアドレスの通知)
        3. RCPT TOコマンド(宛先メールアドレスの通知)
        4. DATAコマンド(メール本文の送信)
        5. QUITコマンド(切断)
      • POP before SMTP
      • SMTPの前にPOPをすることで認証し、その後一定時間だけSMTPの通信を許可する方式です。
      • SMTP AUTH
      • ユーザ名とパスワードの認証があるSMTPです。
    • 受信プロトコル
      • POP3
      • メールを受信するときに使用するプロトコルです。有名なプロトコルですが以下のような課題があります。
        ・複数のPCで同じメールアカウントを使用するときに同じメールの内容を読むことができない。
        ・パスワードが平文で流れるのでネットワークが盗聴されるとアカウントが乗っ取られる可能性がある。
      • APOP
      • POP3のパスワードを暗号化したプロトコルですが、対応していないメールソフトが多いので普及してないらしいです。
      • POP3S
      • POP3をSSLで暗号化して通信する方式で、ポート番号は995番を使用します。
      • IMAP4
      • サーバ上にメールを保管して、クライアントソフトで内容を閲覧するので複数のPCでメールの内容を見ることができます。一般的に普及している方式で、データを移行する際にも便利なプロトコルです。

  • 電子メールの送信に必要なサーバ
  • メールサーバは通常、セキュリティを高める為にDMZに設置される外部メールサーバと内部メールサーバで構成されます。構成の中に内部メールサーバを置く理由はメールデータを外部メールサーバに蓄積するのではなく、内部メールサーバに蓄積するのがセキュリティ上適切だからです。
    社内PCから社内あてのメールを送信する場合は、内部メールサーバを介して送信されます。社内PCから社外あてのメールを送信する場合は内部メールサーバから外部メールサーバを経て、相手のメールサーバから相手のPCにメールが送信されます。

  • 電子メールのセキュリティ
    1. 送信元の詐称の対策
      • SPF(Sender Policy Framework)
      • 送信元のドメインで使用しているDNSサーバのゾーンファイルにSPFレコードを追加して、SMTP転送が発生した時にSPFレコードの問い合わせを行うことで、IPアドレスの妥当性を確認することで詐称の有無を確認する方法
      • DKIM(DomainKeys Identified Mail)
      • 送信側メールサーバでディジタル署名を発行し、電子メールのヘッダ部分に付与して、受信側メールサーバでその内容を検証する方法
    2. 迷惑メールの対策
    3. 迷惑メールの対策はいくつかの技術があるので対策を施す場所別に記載します。
      • 送信メールサーバ
      • メール送信時に、SMTP-AUTHやPOPbeforeSMTPを使ったユーザ認証を行うことで、不正なメールが送信されないようにします。
      • プロバイダ
      • OP25B(Outbound Port25 Block)を使うと動的IPアドレスからの管理外ネットワークに対するSMTPを禁止して、不正なメールの通信を拒否することができます。
        プロバイダ以外のクラウドサービスなどのメールサーバに送信をする場合には、認証をする必要があるので、SNMP-AUTHを587番のサブミッションポートを使って行う必要があります。
      • SPAM対策機
      • メールのヘッダ部分や本文を解析して、ブラックリストなどを作成して、迷惑メールをブロックする。
      • 受信メールサーバ
      • 受信メールサバでSPFやDKIMを使って送信者認証をすることで、迷惑メールを受け取らない。

2019年8月17日土曜日

DNSについて

概要

DNS(Domain Name System)はIPアドレスからURLを参照するためのプロトコルであり、DNSサーバはその機能を実現するサーバです。

要点

  • FQDN、ホスト名、ドメイン名、URLについて
  • https://www.yahoo.co.jp/の例で説明すると、
    「www」がホスト名、
    「yahoo.co.jp」がドメイン名、
    「www.yahoo.co.jp」がFQDN(Full Qualified Domain Name)、
    「https://www.yahoo.co.jp/」がURLとなります。


  • DNSのレコード名について
  • 名称 説明
    SOAレコード 自信が管理するDNSに関する設定が管理されているレコード
    A(Address)レコード ホスト名に対するIPアドレスを設定するレコード
    MX(Mail eXchanger)レコード メールサーバを指定するレコード
    NS(Name server)レコード ネームサーバを指定するレコードです

    MXレコードとNSレコードは、サーバのFQDNで設定するので、IPアドレスと紐づける為に、Aレコードの設定とセットで必要になります。

    Aレコードに一つのホスト目に対して複数のIPアドレスを設定することで、接続先を順次変えていくDNSラウンドロビンという仕組みがあります。

  • DNSの設定ファイル
  • DNSの設定は、Linux上の/etc/named.conf、/var/named/seeeko.com に定義されている


  • リゾルバ
  • 端末側からDNSサーバに対して問い合わせをするプログラムをリゾルバといい、DNSサーバが端末側に通知するIPアドレスの情報をゾーン情報といいます

  • DNSが行う問い合わせ
  • 近くにあるDNSサーバに問い合わせをする事を再帰問い合わせといい、名前解決を行う際にルートネームサーバから階層的に問い合わせすることを反復問い合わせという。

  • ゾーン転送
  • DNSサーバを冗長化するために2台以上設置する場合があり、その時にプライマリDNSのゾーン情報を定期的にセカンダリDNSに対して転送することをゾーン転送という。

  • DNSキャッシュサーバ
  • DNSサーバの情報をキャッシュ情報として保持しておくことによりDNSの反復問い合わせを効率化を実現するサーバです。このサーバを設置することにより、高速化を実現するだけではなくDNSパケットを限定することができ、セキュリティも向上します。しかし、その一方でDNSのキャッシュを不正に書き換えるDNSキャッシュポイズニングというセキュリティ攻撃も存在します。

  • ダイナミックDNS
  • クライアント側のIPアドレスをDNSサーバに通知することで、DNSサーバがその情報を元にゾーン情報を使い分けることができる仕組み

2019年8月15日木曜日

アプリケーション層の基礎技術

■HTTP
・HTTPには、OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECTのメソッドがある。
・GETとPOSTはWebサーバからコンテンツを取得するメソッド。GETは主にWeb閲覧、POSTは掲示板の投稿などに使われる。
・CONNECTはプロキシサーバと接続する際に使われるメソッド。

■DHCP
・DHCPサーバはIPアドレスなどの情報を払い出すサーバ
・DHCPサーバを活用することで設定作業を簡略化し、IPアドレスを有効活用することができる。
・DHCPサーバがダウンするとネットワークに接続できなくなるデメリットもある。
1,DHCPクライアントはDHCPサーバを探すためにDHCPディスカバーを送信する。
2,IPの払い出しが可能な場合、DHCPサーバはDHCPクライアントに対してDHCPオファーを送信する。
3,その後、DHCPクライアントからDHCPリクエストを送信して、DHCPサーバからDHCPアックを応答する。
・DHCPのパケットは同一セグメントにブロードキャストされるので、違うネットワークにDHCPパケットを送信する場合にはDHCPリレーエージェントが必要になる。








2019年8月11日日曜日

ネットワーク層、トランスポート層の基礎技術

■NAT
・プライベートIPをグローバルIPに変換してインターネットに接続する機能
・基本的に1対1の変換をする
・NATテーブルでは、変換前IP、変換後IPを管理する。

■NAPT
・変換前後のIPアドレスに加えてポート番号も認識して変換する機能
・1対多の変換も可能
・NAPTテーブルでは変換前IPとポート番号、変換後IPとポート番号を管理する。

■CGN(NAT444)
・IPSなどの通信キャリアで使用されるNAT機能。
・アクセスのたびにIPアドレスが変わるとオンラインゲームなどで不都合がはっせいするので、クライアントが同一のIPアドレスを使い続けるようになっている。

■IPアドレス
・1~255の数字を4つ組み合わせた4バイトの情報
・自分自身の端末を指定するアドレスとしてループバックアドレスを使える。
 →IPは127.0.0.0/8(127.0.0.1~127.255.255.254)の範囲で使うことができる。
 →自分向けの通信をする処理がある場合、ループバックアドレス利用することで外部からの不正利用を避けることができる。

■ICMP
・ICMPはプロトコル番号が1でTCPでもUDPでもない。
・ICMPにはTypeの領域があり、例えばpingの正常応答の場合はTypeには0が設定され、ルータが知らないネットワークのping応答の場合はTypeには3が設定される。
・ICMPを使った通信で現在の経路よりもよい経路がある場合にはそれを通知するICMPリダイレクトがType5で送信される。

■traceroute
・TTL(生存時間)のパラメータを持ち、目的のIPに到達するまでに経由した装置のIPを要求基に返すようになっているので、目的のIPまでの経路がない状態でも途中までの経路がわかる。

■IPv6
・2バイトの情報を8つに区切って、合計16バイトで装置の宛先を示すことができる。
・表記ルールとして、
 ・0で始まる場合、0を省略する
 ・すべて0の場合は:0:で省略する
 ・連続する:0:は::で省略可能
・IPv4のヘッダは20バイトだが、IPv6のヘッダは40バイト
・拡張ヘッダを使うことで機能を追加することができる。
・IPv6アドレスには以下の種類がある
 ・グローバルユニキャストアドレス(グローバルアドレス)
     →200::/3 200で始まる
 ・ユニークローカルユニキャストアドレス(プライベートアドレス)
  →fd::/8 fdで始まる
 ・リンクローカルアドレス
  →fe80::/10 が自由に使える

■マルチキャストアドレス
・マルチキャスト通信ではデータを受け取りたいPCをマルチキャストIPアドレス(224.0.0.0~239.255.255.255)でグループ化する。受信側にも受信するマルチキャストIPが設定されていて、該当するものだけを受信する。

・マルチキャストを実現するためにIGMPというプロトコルが存在しており、PCがマルチキャストグループに所属する際にはIGMP joinが送信され、離脱するときはIGMP leaveを送信する。
・通常、L2SWはマルチキャストフレームを接続しているすべての端末に転送してしまうが、IGMPスヌーピングが有効になっている場合、IGMPメッセージの内容を元にマルチキャストグループが存在するポートを認識し、ふようなパケットを送信しないようにする機能がある。

■TCP
・スライディングウインドウ
 →コネクションが成立した端末同士でデータの受け渡しをする際に、応答を待たずにデータを送信する仕組み。

■ルーティング
・静的ルーティングでは設計した通りの経路選択を行うことができるが、障害発生時などに自動で経路が切り替えられないデメリットがある。
・ルーティングプロトコルにはIGP(RIP,OSPF)とEGP(BGP)の2種類がある。

・RIPは動的ルーティングを行うプロトコルだが、経路情報の更新が30秒周期で行われるため即時性がなく、ホップ数でネットワークを判断するので回線速度を考慮できない。
・RIP2では更新情報を受けとる際の認証機能が追加になっている。IPvに対応したRIPngというものもある。
・OSPFはIFの情報変化をチェックして経路情報を制御する。経路情報は回線情報から求めたコストの値を参考にして選択する。
・コストが同一の場合は負荷分散をして経路を選択する。
・ネットワークが大規模になると動的ルーティングの負荷が大きくなる。それを防ぐためにルータ30台程度で1つのエリアにして、動的ルーティングを行う。
・OSPFではルータ間で経路情報のやり取りの為にLSAと呼ばれる情報を広告する。
・OSPFを扱うルータの中でエリアの代表となる物を代表ルータと呼び、他のエリアや他のプロトコルのエリアの境界に置かれるルータをエリア境界ルータ、AS境界ルータと呼びます。

・BGPはそれぞれのルータが経路情報を持つことによってループを抑止して経路を決定する