技術について調べるブログ

技術について調べるブログです

日本ものづくりワールドに行ってきました

はじめに

すっかり前回の更新から日が空いてしまいました。
就職してから3ヶ月が経とうとしており、当初は「週4更新!勉強するぞ!」みたいな感じだったのが、相次ぐ飲み会によって時間がなくなったり、疲れから体調不良担ってしまったりでもう「無理ィマジ無理ンゴォお」という感じになってしまっておりました。

そもそも、このブログでは資格や業務に向けて自分が勉強したことについて書いていくつもりだったのですが、やはり記事にするとなるとそれなりにまとまった時間をとって勉強する必要があります。
しかし、徐々にそのような時間を取れなくなってきており、ましてやブログの記事を作成する時間をとることは更に難しくなってしまっています。
なので、勉強したことだけでなく、自分が業務の中で体験したことや参加したイベントなどについて、少しライトな感じの記事を書く様に方針を変えたいと思っています。
早速、今回は6/20に開催された「日本ものづくりワールド」に参加しましたので、簡単にまとめてみたいと思います。

日本ものづくりワールドとは

本展は、世界最大級の「ものづくり専門展」です。東京、大阪、名古屋で合わせて年3回開催されます。 世界中から出展社が集まり、多数の製造業ユーザーとの間で活発な商談が行われます。

日本ものづくりワールド公式サイト(http://www.japan-mfg.jp/sokuho/)からの引用です。
年3回東京、大阪、名古屋で開かれるイベントの総称で、それぞれ日本ものづくりワールド、関西ものづくりワールド、名古屋ものづくりワールドと名前がついています。東京だけ地域名ではなく日本と名乗っているあたり、東京人の驕り昂ぶりが見て取れますね()。

端的に、"製造系企業の製品展示会"といった感じのイベントで、日本の大企業はもちろん、中小企業や中国、タイなどアジア系の製造系企業もブースをだしています。

基本的に参加者は各々気になるブースを見て回り、気になる展示があればそのブースにいる社員から説明を受けます。場合によっては後日会社訪問をするアポを取り付けたり、その場で商談に発展したりすることになり、それが本イベントの出展企業の目的となります。
なので自分みたいな下っ端のペーペーにも展示企業の方々は優しく丁寧に企業や製品について教えてくれます。情報収集にはもってこいのイベントです。

今回ものづくりワールドは4つのゾーンに分かれていました。

  • 設計・製造ソリューション展
  • 機械要素技術展
  • ヘルスケア・医療機器 開発展
  • 3D & バーチャル リアリティ展

今回私は、個人的な興味から3D & バーチャルリアリティ展を目的にはるばる東京ビッグサイトに向かったのですが...。

少し寂しい3D & バーチャル リアリティ展

意気揚々と会場に向かったもののなんだか思ったより混んでいない...。
VRといえば2018年はVR元年のはずだ(1年ぶり3回目)、おかしいなぁ~こんなはずでは...。」
と思いながら地図を見てみると...

f:id:bonity:20180621003000j:plain

どこだ? 3DVR展は...?

ココ!

f:id:bonity:20180621002902j:plain
左端っこの上の方!

なんか小さくねぇ??すごく端っこに追いやられてしまっている印象をうけました。

去年までどれくらいの規模で開催されていたかはわかりませんが、今注目の技術に関する国内最大級の展示会がこの規模ということで、少し寂しさを感じました。

ただ、今回のイベントは製造業向けのイベントなので、ゲームやエンタメ系の企業がほとんど出展していなかったということを考慮しなければなりません。 逆に言えばエンタメ系以外の企業ではまだまだVRの普及が進んでいないということでもあります。

何故盛り上がらないのか?

これはあくまで個人的な感想なのですが、VRが今ひとつ盛り上がらない原因として、

VRバイスがまだまだこなれていない

という点が最も大きいのではないかと考えています。

工事現場を3Dモデルで再現してVRで入り込んでみたり、危険な研修をVRで安全にやらせるソリューションを作ってみたりということには各社取り組んでいましたが、 VRバイスそのものの操作性や取り回しづらさが実業務に取り入れるにあたってのネックとなっているようです。
実際、デバイスがデカくて重い点や移動が中々スムーズにできない点は、ゲームでもストレスに感じることがあると思いますし、業務で使うとなるとより重大な問題になるのでしょう。改善が待たれます。

ゲーム分野ではVRChatやねこあつめVRなど新しく魅力的なアプリがどんどん出てきていますが、それ以外の分野での普及はもう少し先になりそうですね。

最後に

"線路の点検をVRで体験できる!"という展示があったので、体験してきました。
スタッフの指示通りにしゃがんで線路をジロジロ見ていたら突然電車が走ってきて轢かれてしまい、「オオットォ」とクソキモボイスで叫ぶ羽目になってしまいました。
実際は"線路点検中に電車に轢かれるケースを再現した"展示であり、鉄道会社の新入社員研修などで活用し、作業中の危機意識を養うことを目的としたものだったようです。
よくも騙したな。許さねぇ。

f:id:bonity:20180621011058j:plain
新幹線を受け止めるテリーマンの画像です

QoSについて

QoS (Quality of Service)とは

ネットワーク上で提供するサービス品質のことで、QoSを実装することで帯域を確保したり(帯域制御)や、特定通信を優先して伝送させたり(優先制御)することができる。

通信を行う際、ネットワーク構成によっては通信の遅延やパケットドロップが発生する可能性がある。遅延やドロップが起きたプロトコルが例えば音声通信であった場合、音質が低下したり音が途切れたりすることが考えられる。 f:id:bonity:20180528232741p:plain

この場合、

  • 遅延やパケットロスの影響を受けやすい音声通信を比較的影響を受けにくいSSHよりの優先して送出する
  • 帯域幅が狭くなるポイントでSSH通信の使用する帯域を制限したりする

といったQoS制御を行うことで音声通信の品質を損なわずにNWを構成することができる。 f:id:bonity:20180528233918p:plain

QoSのモデル

QoSのモデルとしてIntServ, DiffServ, ベストエフォートの3つがある。主に使用されるのはDiffServとベストエフォートの2つである。

DiffServではパケットを分類、優先度付け(マーキング)、キューイング(トラフィックのキュー振り分け)、スケジューリング(キューの優先度に応じたパケットの送出)をネットワーク機器毎に行う。

ベストエフォートでは単に先着順にパケットを送出していく(FIFO)。QoSデフォルトの動作である。

参考

www.infraexpert.com

インターネットブレイクアウトについて

インターネットブレイクアウトとは?

従来の企業内ネットワークでは一旦プロキシサーバを介して外に出ていく構成が一般的だった。 f:id:bonity:20180521224129p:plain

しかし、SaaSの利用が増えるに連れてこの構成ではプロキシやFW, UTM, 回線を圧迫してしまうという問題が起きるようになった。 f:id:bonity:20180521225042p:plain

そこで、特定の通信、たとえばあるSaaSにアクセスするトラフィックだけをプロキシサーバーを経由せずに拠点から直接インターネットに出すことでプロキシや回線の負荷を軽減するという方法が編み出された。 これをインターネットブレイクアウトと呼ぶ。 f:id:bonity:20180521230021p:plain

インターネットブレイクアウトの仕組み

DPI (Deep Packet Inspection)

インターネットに出ていく通信全てをブレイクアウトするのにはセキュリティ面から不安が残る。よって特定のSaaSに対しての通信だけをブレイクアウトしたい。

SaaSを限定するためには流れるパケットがどのサービスによるものなのかが分かる必要がある。このアプリケーション識別を行うための仕組みがDPIである。

Split DNS

拠点から直接インターネットに通信を出すことで、プロキシなどを経由せず最短経路でSaaSのサーバにたどり着くことができる。この利点を最大化するのがSplit DNSである。

SaaSを使用する際、関連するDNSクエリに対する通信を拠点でインターセプトし、名前解決を拠点で行うようにする仕組みである。 もしこうしなければ、DNSクエリがプロキシを経由することでSaaSのアクセス先サーバがデータセンターの近くになってしまう。 海外拠点からのアクセスを国内のプロキシーを介して外にだすような構成になっている時、これはとても非効率的である。

Split DNSを使うことで、拠点近くのSaaSサーバにアクセスすることができる。

QoE (Quality of Experience)

拠点から直接インターネットにアクセスすることが効率とはいえ、インターネット回線が常に安定しているとは限らない。 回線がダウンした時にDCや他の拠点にインターネットへの出口を切り替えることは重要だが、 回線状況が悪化したときにも同様によりパフォーマンスのいい出口に切り替えることでユーザーはSaaSを快適に使用できる(=QoEを保証できる!)。

インターネットブレイクアウトを実現するSD-WAN

上記の機能を実現するとして注目されているのがSD-WANと呼ばれる技術である。

SD-WANに対応したルータと、SD-WANコントローラを用いて回線切替やDPI機能によるトラフィックの振り分けなどを効率的に行うことによって、 企業の海外展開を支えるとして注目されている。

参考

qiita.com

Master's ONE Cloud WAN - NTT PC コミュニケーションズ https://cloudwan.nttpc.co.jp/service/internet_breakout.html

MPLSについて

MPLSとは

MPLS(Multi Protocol Label Switching)とは、パケットの前方にラベルと呼ばれる識別子を付加して転送を行う技術。
生まれた当初はラベルを使ってルーティングを行うことで、IPヘッダをみてルーティングを行う場合と比べて処理を高速化させることを意図した技術だった。
しかし、現在ではルータ等の情報機器の性能が向上したため、高速化目的で使われることは少なく、 もっぱらIPネットワークに明示的なルートを提供するトラフィック・エンジニアリングの機能や、VPNサービスを提供する際に使用される。

MPLSの仕組み

MPLS網はMPLS機能を持ったルータLSR(Label Switch Router)で構成される。特にMPLS網の入り口に当たる部分を構成するルーターLER(Label Edge Router)と呼ぶ。 特にMPLS網利用者側の入り口端末をCE(Customer Edge router)、MPLS網提供者側の入り口端末をPE(Provider Edge router)と呼ぶ。

MPLSではラベルをパケットに張替えながら通信を行う。MPLS網内で同じ宛先のパケットの集まりをFEC(Forwarding Equivalence Class)と呼び、 ラベルの付けられたパケットの道筋をLSP(Label Switched Path)と呼ぶ。 ラベルは次にどのLSRにパケットを転送するかという経路情報を持っている。 パケットにラベルを貼ることをPush、ラベルを張り替えることをSwap、ラベルを取り外すことをPopと呼ぶ。
まず送信側のPEでパケットにラベルがPushされ、ラベルの情報にしたがって宛先LSRに送信する。パケットを受け取ったLSRはラベルをSwapし、次のLSRへ送信する。 これを繰り返して宛先がのPEにパケットが到着した時、ラベルをPopし、宛先へパケットをフォワードする。(以下図参照) f:id:bonity:20180517000023p:plain

MPLSではラベルをみて経路を決定するが、そのラベル情報をLSRを配布する手順をLDP(Label Distribution Protocol)と呼ぶ。LDPには2種類存在する。
まず1つはDU(Downstream Unsolicited)という方法であり、FEC情報を持っているLSRから順に隣のLSRにラベル情報を伝えていく方式である。 上記図でいうと、宛先側のPEから順に隣接するLSRにラベル情報を伝えていく。この場合LSPはIGPの示す経路情報をそのまま反映したものとなる。
もう一つはDoD(Downstream on Demand)と呼ばれる方法である。DoDではLSRがラベル情報の要求が受けた場合、FECに対応したラベルを配布する。DUに比べて必要最低限のラベル情報を配布する事が出来る。

また、TE(Traffic Engineering)機能を用いることで明示的な経路選択を行い、自由に経路を設定することができる。

MPLSの用途

MPLSはIP-VPNサービスを提供するのに利用されている。通信キャリアの持つ閉域網を使うためセキュリティ性が高く、専用回線を引くよりもコストが安くすむ。

IPsecについて その3

おさらい

IPsecはセキュアな通信の為にコネクションを確立する技術。
送信側と受信側でパケットをセキュア化する為の同意されたパラメータを使って仮想的な通信路(SA)を確立し、その通信路を用いて通信を行う技術。
SA構築のためのパラメータはSADと呼ばれるデータベースに入っており、SADを検索することでパラメータを決定する。

パラメータの合意を行う方法

静的な方法

送信ホストと受信ホストで事前に手動で同じパラメータを設定しておく。
この方法をとった場合、

  • 暗号化・メッセージ認証で使用する鍵を変更する事ができない(厳密にはできるが、手動で行う必要がある)
  • リプレイアタックに対する防御が有効にならない

といった欠点がある。

動的な方法

IKE(Internet Key Exchange)を用いてパケット送信の際に設定を行う。
具体的にはSPDを検索した結果、PROTECTでかつSAD内にセレクタに対応するエントリがない場合、IKEを使って送信側と受信側で使用するパラメータを決定し、双方のSADに書き込む
といった形になる。

f:id:bonity:20180514235937p:plain
図が今ひとつなので時間がある時に修正します()

IKE

IKEの一種であるIKEについて説明する。IPsecでは、IKEは相手認証SAの交渉と管理の2つのことを行う。
また、500/udpポートを用いて

  • IKEのためのパラメータ交換 : IKE_SA_INIT
  • 相手認証 : IKE_AUTH
  • IPsecのためのパラメータ交換 : CREATE_CHILD_SA

の3つの交換を行う。
実際の使われ方は以下の図のようになる。 f:id:bonity:20180515222637p:plain

IPsecについて その2

IPsecとは

セキュアなIP通信の為にコネクションを設定する技術。 セキュリティプロトコル(AH/ESP)、鍵管理(IKE)、セキュリティアソシエーション(SA)、認証・暗号化アルゴリズム の4つの技術で成り立っている。 SAによって確立された仮想的な通信路の中をAH/ESPによってセキュア化されたデータグラムが流れるイメージ。

では、「SAによって仮想的な通信路を確立する」というのはどういうことなのか?

セキュリティポリシー

GWでは、

  • パケットをそのまま通す : BYPASS
  • パケットを破棄する : DISCARD
  • パケットをセキュア化する : PROTECT

のいずれかを行う仕組みがあり、それをセキュリティポリシーという。 上記のどれを行うか判断するためにパケットの一部を確認する。確認する部分のことをセレクタと呼ぶ。

セレクタとしては以下のものが存在する。

セレクタ 内容
ローカルIPアドレス GWの内側IPアドレス(送信側なら送信元、受信側なら宛先)
リモートIPアドレス GWの外側IPアドレス(送信側なら宛先、受信側なら送信元)
ローカルポート番号 GWの内側ポート番号
リモートポート番号 GWの外側ポート番号
プロトコル IPヘッダの上位プロトコル番号
IPv6モビリティヘッダ IPv6で次ヘッダがモビリティヘッダだった場合、そのタイプ(MHタイプ)
ICMPタイプ/コード 上位プロトコルがICMPの場合、そのタイプとコード
名前 主にIKEで交換されるID

引用 : 3 Minutes Networking Supplement No.22

トンネルモードの場合、IPアドレスとして参照されるのはAH/ESPヘッダでカプセル化される前の値(元々のIPアドレス)である。

これらのセキュリティポリシーを集めて登録したものをSPD(Security Policy Database)と呼ぶ。 SPDには以下の3つとSPDキャッシュが存在する

  • SPD-O : 送信(Outbound方向の通信)の際に使用するポリシー、各ポリシーにBYPASSまたはDISCARDの値を持つ
  • SPD-I : 受信(Inbound方向の通信)の際に使用するポリシー、各ポリシーにBYPASSまたはDISCARDの値を持つ
  • SPD-S : パケットのセキュア化に使用するポリシー、各ポリシーにPROTECTの値を持つ

SPDに記載される内容の例を以下に示す。

セレクタ処理
ローカルIPリモートIPプロトコルその他
192.168.0.0/2410.1.1.0/24ANYANYBYPASS
192.168.0.0/2410.1.2.0/24ANYANYDISCARD
192.168.0.0/24
PFP:オフ
172.16.1.0/24
PFP:オフ
ANY
PFP:オフ
ANY
PFP:オフ
PROTECTESPトランスポートモード
ESP暗号化:AES-CBC
ESP認証:HMAC-SHA1-96

引用 : 3 Minutes Networking Supplement No.22

表の上2行はSPD-OまたはSPD-Iの記述であり、例えば1行目のルールは
SPD-Oに記載されているのであれば
192.168.0.0/24が送信元で、10.1.1.5/32が宛先であるパケットはそのまま通す(BYPASS)ことを示している。
SPD-Iに記載されているのであれば
192.168.0.0/24が宛先で、10.1.1.5/32が送信元であるパケットはそのまま通す(BYPASS)ことを示している。

実際にSPDが使用される様子は以下の図のようになる。 f:id:bonity:20180512221229p:plain

SAとSAD

SPD-SがPROTECTであった場合、
送信側ではセキュリティパラメータに従ってパケットをセキュア化する。
受信側では送信側と同じセキュリティパラメータを持っていればパケットのセキュア化を解除できる。
送信側と受信側のセキュリティパラメータが一致する時、送信側と受信側で仮想的な通信路ができているとみなせる。
このセキュリティパラメータの一致(つまり仮想的な通信路)のことをSAと呼ぶ。

セキュリティパラメータはSAD(Security Association Database)と呼ばれるデータベースに格納されている。 SADの例を以下の図に示す。 f:id:bonity:20180512215431p:plain

SPI(Security Parameter Index)はSAを識別するIDの様なものである。
送信側と受信側で同一のパラメータを持つ = SPIが一致するパラメータが送信側SADと受信側SADの両方に存在するということである。

SADは以下の図の様に使われる。 f:id:bonity:20180512222650p:plain

SPDがPROTECTであった場合、送信側ではSADからセレクタを使ってセキュリティパラメータを検索し、パラメータに従ってセキュア化する。 受信側ではセキュア化されたパケットを受け取るとSPIを使ってパラメータを検索し、パラメータに従ってパケットのセキュア化を解除する。

送信側と受信側で同じパラメータを持つ方法として、静的と動的の2つの方法がある。
静的な方法では双方のGW(ホスト)に同じパラメータを手動で設定しておく。
動的な方法ではそSA構築の前にIKE(Internet Key Exchange)による交渉によってパラメータが決定する。 SADに対応するエントリがない場合もIKEで自動設定することになる。

まとめ

SAとは、セキュリティポリシーによるアクセス制御セキュリティパラメータを使った、
送信側と受信側の合意(=パラメータの一致)によるセキュアな仮想通信路の構築である。

同じパラメータを持っているホスト同士でしか解読できないパケットをやり取りすることで仮想的な通信路を構築したとみなせるということである。

参考

3 Minutes Networking Supplement No.22

『マスタリングIPsec』サポートページ

IPsecについて

IPsec(Security Architecture for the Internet Protocol)とは

直訳 : IPのためのセキュリティ設計
セキュアなIP通信の為にコネクションを設定する技術。
以下の4つの技術で成り立っている。

技術
セキュリティプロトコル IP認証ヘッダ AH [IP Authentication Header]
IP暗号化ペイロード ESP [IP Encapsulating Security Payload]
鍵管理 インターネット鍵交換 IKE [Internet Key Exchange]
セキュリティアソシエーション SA [Security Association]
認証・暗号化アルゴリズム

SAによって確立された仮想的な通信路の中をAH/ESPによってセキュア化されたデータグラムが流れるイメージ。 IPsecでは2種類のセキュリティプロトコルが利用でき、 AHは改ざん防止(メッセージ認証)、ESPは機密性保護(暗号化)とできることが異なる。

トランスポートモードとトンネルモード

IPSecにはトランスポートモードとトンネルモードという2つのモードがある。

トランスポートモード

トランスポートモードでは端末間でIPsecによる通信を行う。 端末間で通信路を作り、その中にセキュア化したパケットを流す。 f:id:bonity:20180512001641p:plain

トンネルモード

トンネルモードではセキュリティゲートウェイという中継機器間でIPsecによる通信を行う。 セキュリティゲートウェイとしてIPsecに対応した機器を使用する必要があり、通常はルータやファイアウォール等が使用される。 GW間で通信路を作り、その中にセキュア化したパケットを流す。 f:id:bonity:20180512000735p:plain

トンネルモードはVPN(Virtual Private Network)を構築する為の技術として広く利用されている。 一方トランスポートモードは機器ごとに設定をしなければならないという煩雑さから現在はあまり使われていない。

参考

3 Minutes Networking Supplement No.21

sc.seeeko.com