Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オーバーレイネットワークにおける一般ノードをサポートする CYPHONIC アダプタの研究

Ren
October 15, 2023

オーバーレイネットワークにおける一般ノードをサポートする CYPHONIC アダプタの研究

Ren

October 15, 2023
Tweet

More Decks by Ren

Other Decks in Technology

Transcript

  1. オーバーレイネットワークにおける
    ⼀般ノードをサポートする
    CYPHONICアダプタの研究
    研究者 後藤廉 指導教員 内藤克浩
    愛知⼯業⼤学 情報科学部 情報科学科
    令和3年度 学⼠論⽂発表会
    2022年 2⽉ 14⽇ (⽉)

    View full-size slide

  2. ‹#›
    CYPHONIC 概要
    セキュアなエンド間通信を
    実現する通信フレームワーク
    • 端末をクラウドで認証
    • エンド間で直接通信
    • 送受信データの暗号化
    1. クラウドサービスと連携して
    相⼿ノードへの通信経路を取得
    3. 送受信データを暗号化して
    エンド間で直接通信
    2. 暗号鍵を⽣成して相⼿ノードと
    交換することでトンネルを構築
    CYPHONICノードの処理
    • シグナリングの実⾏
    • DNSパケットの処理
    • 仮想IPパケットの処理
    CYPHONIC Daemon
    CYPHONIC
    ノード
    CYPHONIC
    ノード
    仮想IP
    FQDN
    仮想IP
    FQDN
    CYPHONICクラウド
    連携 連携
    暗号化
    エンド間通信
    AS NMS TRS
    AS: Authentication Service
    TRS: Tunnel Relay Service
    NMS: Node Management Service 2

    View full-size slide

  3. ‹#›
    IoT機器・組込み機器
    マスクROMは⼯場出荷後に
    プログラムの変更が極めて困難
    特定のサービスを提供する専⽤サーバ
    サービス安定性への影響を懸念して
    追加プログラムの導⼊を避ける傾向
    CYPHONIC 課題
    既存の端末やサービスに変更を
    加えることなくCYPHONICの機能を
    提供可能な仕組みが必要
    CYPHONIC Daemon
    既存サービス


    ⼀般ノード
    ⼀般ノード
    CYPHONIC Daemon
    通信機能提供端末
    既存サービス
    端末に改良を加えることが
    困難な端末が存在
    3

    View full-size slide

  4. ‹#›
    研究⽬的
    CYPHONICにおける通信処理を代⾏する
    CYPHONICアダプタの提案
    CYPHONIC通信機能
    CYPHONIC Daemonの既存機能を活⽤
    ⼀般ノード管理機能
    アダプタの機能として追加実装
    4

    View full-size slide

  5. ‹#›
    CYPHONICアダプタ 機能概要
    CYPHONIC
    通信機能
    インターネット
    ネットワーク接続
    CYPHONIC通信機能 (既存機能)
    ⼀般ノード管理機能 (追加機能)
    ⼀般ノード
    管理機能
    既存
    サービス
    ⼀般ノード
    CYPHONICアダプタ
    ブリッジ接続
    eth1
    eth0
    シグナリング機能
    クラウドから通信に必要な情報を取得
    パケット処理機能
    カプセル化処理および暗号化処理
    ⼀般ノード情報管理機能
    通信に必要な情報を管理
    ・仮想IPアドレス
    ・MACアドレス
    仮想IPアドレス割り当て機能
    DHCPを使⽤したアドレス割り当て
    仮想IPパケット取得機能
    ⼀般ノードから仮想IPパケットを取得
    ・FQDN
    ・暗号鍵
    5

    View full-size slide

  6. ‹#›
    6
    処理シーケンス
    CNのFQDN を
    指定して通信開始
    仮想IPアドレス付与



    |


    ⼿

    |

    代理で相⼿ノードとの
    トンネルを構築
    CNの仮想IPを取得
    CN : Correspondent Node
    GN :General Node
    CYPHONICクラウド
    CYPHONICアダプタ
    CYPHONICアダプタ認証 ⼀般ノード情報取得
    ・仮想IPアドレス
    ・FQDN
    ・MACアドレス
    ⼀般ノード情報
    ・暗号鍵
    CNの仮想IPを通知
    仮想IPパケットを送信
    VIPGN Data
    VIPGN Data
    CYP
    CYP : CYPHONIC
    アダプタが代⾏送信
    VIPGN Data
    CYP
    RIPAdapter

    View full-size slide

  7. ‹#›
    7
    動作検証及び性能評価
    NAPT
    AS NMS
    CYPHONICアダプタ ⼀般ノード
    クラウド / アダプタ / ノード
    Machine Raspberry Pi 4 Model B
    OS Raspbian GNU/Linux 10.0
    CPU
    Quad Core 1.5GHz
    Broadcom BCM2711
    Memory 4GB RAM
    ⼀般ノード
    OS macOS BigSur Ver 11.5
    CPU
    Dual Core 2.20GHz
    Intel(R) Core i7-5650U
    Memory 8GB RAM
    1 Gbps
    • 通信遅延時間の測定
    → ping を使⽤
    • 通信スループットの測定
    → iperf を使⽤
    • ⼀般ノードに対して
    通信機能を提供可能か確認
    動作検証
    性能評価
    CYPHONICノード

    View full-size slide

  8. ‹#›
    8
    結果
    Round-trip time 3.272 ms
    ⼀般ノード ⇒ CYPHONICノード
    Throughput 49.8 Mbits/sec
    Loss rate 0.22 %
    CYPHONICノード ⇒ ⼀般ノード
    Throughput 49.5 Mbits/sec
    Loss rate 0.46 %
    性能評価
    複数⼈でフルHD通信が
    可能な性能を発揮
    50 Mbits/sec 程度の
    処理性能を確認
    ⼤きなオーバーヘッドが
    発⽣しないことを確認
    ⼀般ノードは提案するアダプタを⽤いて
    CYPHONIC上で通信可能であることを確認
    動作検証
    n 通信遅延
    n 通信性能

    View full-size slide

  9. ‹#›
    9
    まとめ
    ⼀般ノードをサポートする
    CYPHONICアダプタを提案
    CYPHONIC Daemonの通信機能を活⽤し
    ⼀般ノードの管理機能を追加実装することで
    CYPHONICアダプタを実現
    ⼤きなオーバーヘッドを発⽣させることなく
    通信機能の提供が可能であることを確認

    View full-size slide

  10. 以下、予備スライド

    View full-size slide

  11. ‹#›
    評価対象の通信シグナリング
    DNS
    応答時間
    ARP
    応答時間
    DNS Req.
    データ通信
    応答時間
    経路選択処理
    トンネル確⽴処理
    データ通信処理
    DNS Res.
    ARP Req.
    ARP Res.
    Direction Req.
    Route Direction
    Confirmation
    Tunnel Req.
    Tunnel Res.
    アダプタ
    ⼀般ノード NMS CYPHONICノード
    Route Direction
    11

    View full-size slide

  12. ‹#›
    各処理に伴う実⾏時間の⽐較
    CYPHONICアダプタ CYPHONICノード
    経路選択処理 19.74 ms 16.20 ms
    ARP実⾏処理 0.32 ms
    トンネル確⽴処理 2.75 ms 2.23 ms
    データ通信処理 3.01 ms 2.27 ms
    暗号化処理
    (AES-128-CBC)
    0.53 ms 0.49 ms
    復号処理 :
    (AES-128-CBC)
    0.20 ms 0.12 ms
    CYPHONICノード
    CYPHONICアダプタ
    0.32
    16.20
    19.74
    2.23
    2.75 3.01
    2.27
    25.82 ms
    20.70 ms
    経路選択処理
    ARP実⾏時間
    トンネル確⽴処理
    データ通信処理 12

    View full-size slide

  13. ‹#›
    初回通信に伴う遅延時間の⽐較
    ⼀般ノード CYPHONICノード
    DNS応答時間 37.00 ms 21.40 ms
    ARP応答時間 1.00 ms
    データ通信時
    応答時間
    3.272 ms 3.271 ms
    CYPHONICノード
    ⼀般ノード
    DNS応答時間
    ARP応答時間
    データ通信時応答時間
    21.40
    37.00
    3.271
    3.272
    1.00
    24.67ms
    41.27ms
    13

    View full-size slide

  14. ‹#›
    UDPスループット測定値
    ⼀般ノード ⇒ CYPHONICノード
    Traffic Throughput Jitter Loss rate
    10 Mbps 10.0 Mbits/sec 0.729 ms 0 %
    20 Mbps 20.0 Mbits/sec 0.652 ms 0 %
    30 Mbps 30.0 Mbits/sec 0.398 ms 0 %
    40 Mbps 40.0 Mbits/sec 0.300 ms 0 %
    50 Mbps 49.8 Mbits/sec 0.203 ms 0.22 %
    CYPHONICノード ⇒ ⼀般ノード
    Traffic Throughput Jitter Loss rate
    10 Mbps 10.0 Mbits/sec 0.787 ms 0 %
    20 Mbps 20.0 Mbits/sec 0.680 ms 0 %
    30 Mbps 30.0 Mbits/sec 0.395 ms 0 %
    40 Mbps 39.8 Mbits/sec 0.326 ms 0.28 %
    50 Mbps 49.5 Mbits/sec 0.266 ms 0.46 %
    14

    View full-size slide

  15. ‹#›
    UDPスループット測定値
    CYPHONICノード ⇒ CYPHONICノード
    Traffic Throughput Jitter Loss rate
    10 Mbps 10.0 Mbits/sec 0.529 ms 0 %
    20 Mbps 20.0 Mbits/sec 0.664 ms 0 %
    30 Mbps 30.0 Mbits/sec 0.556 ms 0 %
    40 Mbps 40.0 Mbits/sec 0.297 ms 0 %
    50 Mbps 50.0 Mbits/sec 0.275 ms 0 %
    15

    View full-size slide

  16. ‹#›
    TCPスループットにおける課題
    CYPHONICノード ⇒ ⼀般ノード
    Transfer 437 Mbytes
    Throughput 74.2 Mbits/sec
    ⼀般ノード ⇒ CYPHONICノード
    Transfer 6.01 Mbytes
    Throughput 1.68 Mbits/sec
    CYPHONICアダプタを介した通信
    CYPHONICノード間の通信
    CYPHONICノード ⇔ CYPHONICノード
    Transfer 563 Mbytes
    Throughput 78.7 Mbits/sec
    既存のCYPHONICノードは
    78 Mbits/sec 程度を処理可能
    既存のCYPHONICノードと
    同程度のトラフィックを処理可能
    TCPスループットが極端に
    低下することを確認
    パケットの受信から処理までを単⼀スレッドで実⾏
    (なお, 暗号化処理および復号処理はマルチスレッド化)
    16

    View full-size slide

  17. ‹#›
    データ通信処理における関数呼び出し
    RoutineReadFrom
    AdapterInterface
    AdapterRoutine
    SequentialSender
    SendStaged
    Packets
    GN CN
    RoutineReceive
    Incoming
    AdapterRoutine
    SequentialReceiver
    Routine
    Decryption
    GN
    CN
    syscall.read eth1, Finding Peer WriteUDP eth0
    CapusuleMsg creatin,
    Packet encryption
    ReadFrom eth0
    Packet decryption,
    ReplyPacket Creation
    syscall.write eth1
    暗号化・復号処理以外は単⼀スレッドで実⾏ 17

    View full-size slide

  18. ‹#›
    Goroutine の処理モデル
    Hyper-threading Kernel(Threads)
    • M 個 の物理コアに対して同時に N 個 の処理が可能な M:N スケジューラ
    GoRuntime(Goroutines)
    • M 個 の論理コアに対して同時に N 個 の処理が可能な M:N スケジューラ

    View full-size slide

  19. ‹#›
    スレッド分離による改善の検討
    RoutineReadFrom
    AdapterInterface
    SendStaged
    Packets
    GN CN
    Send and Receive Thread
    Receive
    Thread
    Send
    Thread
    AdapterRoutine
    SequentialSender
    RoutineReceive
    Incoming
    Routine
    Decryption
    Receive
    Thread
    Send
    Thread
    AdapterRoutine
    SequentialReceiver
    CN GN
    Adapter Processing Thread
    CYPHONIC Encryption Thread
    Send and Receive Threaad
    Adapter Processing Thread
    CYPHONIC Decryption Thread
    専⽤のスレッドを⽤いて受信キューに格納 19

    View full-size slide

  20. ‹#›
    ⼀般ノードのパケットフロー
    Datalink
    Layer
    Transport
    Layer
    Network
    Layer
    Application
    Layer
    Virtual IP
    Header
    TCP/UDP
    Header
    TCP/UDP
    Header
    Application Real I/F (Real IPv4/IPv6)
    CYPHONIC
    Header
    UDP
    Header
    Virtual IP
    Header
    TCP/UDP
    Header
    App
    Data
    Real IP
    Header
    CYPHONIC
    Header
    UDP
    Header
    Virtual IP
    Header
    TCP/UDP
    Header
    App
    Data
    Real I/F 1 (Real IPv4/IPv6)
    CYPHONIC Daemon
    Real I/F 0 (Real IPv4/IPv6)
    Real I/F (Real IPv4/IPv6)
    CYPHONIC
    Header
    UDP
    Header
    Virtual IP
    Header
    TCP/UDP
    Header
    App
    Data
    Real IP
    Header
    CYPHONIC
    Header
    UDP
    Header
    Virtual IP
    Header
    TCP/UDP
    Header
    App
    Data
    CYPHONIC Daemon
    Virtual I/F (Real IPv4/IPv6)
    GN
    CA
    CN
    Link Layer
    Communication
    Overlay Network
    Communication
    GN: General Node CA: CYPHONIC Adapter CN: Correspondent Node
    App
    Data
    App
    Data
    Virtual IP
    Header
    TCP/UDP
    Header
    TCP/UDP
    Header
    Application App
    Data
    App
    Data
    20

    View full-size slide

  21. ‹#›
    セキュリティモデルの変化
    インターネット利⽤形態の多様化に伴い
    セキュリティモデルも変化
    今後の利⽤形態
    Firewall
    信頼ゾーン
    Internet
    不信ゾーン
    Cloud Service Internet
    会社や⾃宅 外出先
    クラウド
    社内
    従来の利⽤形態 境界型モデル
    ゼロトラストモデル
    21

    View full-size slide

  22. ‹#›
    エンド間通信に伴う課題
    1
    2
    Cellular
    Network
    IPv4アドレス枯渇対策のためNAPTとIPv6を導⼊
    課題1︓NAPTによる通信の遮断
    課題2︓IPv4とIPv6の⾮互換性
    IPは端末の移動について考慮されていない
    課題3︓ネットワーク移動による通信切断
    Global IPv4
    Network
    Global IPv6
    Network
    Private IPv4
    Network
    Private IPv4
    Network
    NAPT
    3
    移動
    NAPT
    エンド間での直接通信を実現する技術が必要
    22

    View full-size slide

  23. ‹#›
    既存技術と課題
    通信接続性 移動透過性
    NAPTやIPバージョンの差異
    依らず通信接続可能
    ネットワーク移動時も
    通信継続可能
    Hole Punching /
    STUN
    ● ☓
    ICE ● ☓
    Mobile IP ☓ ●
    DSMIPv6 ☓ ●
    ・既存技術にはそれぞれ課題が存在
    ・概念実証の評価やセキュア通信に関する検討が不⼗分
    端末間でのセキュアなエンド間通信を実現するために
    通信接続性と移動透過性を確保する技術が必要
    23

    View full-size slide

  24. ‹#›
    CYPHONIC
    セキュアなエンド間接続を実現する
    オーバーレイネットワークプロトコル
    CYber PHysical Overlay Network over Internet Communication
    ■ 端末間でのセキュアな通信を実現
    ・サービス利⽤端末の認証と送受信データの暗号化
    ・端末間でのエンドツーエンド通信を提供
    ■ 通信接続性を実現
    ・NAPTの配下に存在する端末への通信を提供
    ・IPバージョンの互換性を提供
    ■ 移動透過性を実現
    ・端末の移動時も継続した通信を提供
    ・仮想IPアドレスによる通信で実ネットワークの影響を隠蔽
    24

    View full-size slide

  25. ‹#›
    CYPHONICの構成要素
    CYPHONICノード
    ・CYPHONICを⽤いた通信を⾏う端末
    ・クラウドサービスと連携することで相⼿端末と直接通信
    Authentication Service (AS)
    ・CYPHONICノ ードを認証
    ・CYPHONICノードの識別⼦としてFQDNを付与
    Node Management Service (NMS)
    ・CYPHONICノードのネットワーク情報管理と通信経路の指⽰
    ・CYPHONICノードが通信に⽤いる仮想IPアドレスを付与
    Tunnel Relay Service (TRS)
    ・NAPTを跨いだ通信とIPv4/IPv6間の通信を中継
    CYPHONICクラウド
    TRS
    NMS
    AS
    仮想IPアドレスを⽤いたオーバーレイネットワーク通信
    CYPHONICノード CYPHONICノード
    連携 連携
    25

    View full-size slide

  26. ‹#›
    Global
    IPv6 Network
    CYPHONIC 全体概要
    Initiator
    Node
    Private
    IPv4 Network
    NAPT
    仮想IP Responder
    アプリケーション通信
    仮想IP Initiator
    1 1
    2
    Overlay Network
    AS
    NMS
    TRS
    2
    3
    3 中継指⽰
    4 4
    FQDN Responder
    3
    3
    経路指⽰
    経路指⽰
    1. 認証処理︓端末の認証 2. 位置情報登録処理︓ネットワーク情報登録
    3. 経路選択処理︓通信経路決定 4. トンネル確⽴処理︓エンド間トンネル構築
    5. データ通信処理︓オーバーレイネットワーク上の通信
    Dual Stack
    Network
    Responder
    Node
    AS: Authentication Service
    NMS: Node Management Service
    TRS: Tunnel Relay Service
    NAPT: Network Address Port Translation
    FQDN: Fully Qualified Domain Name
    5 5
    26

    View full-size slide

  27. ‹#›
    1. 認証処理︓端末の認証 2. 位置情報登録処理︓ネットワーク情報登録
    3. 経路選択処理︓通信経路決定 4. トンネル確⽴処理︓エンド間トンネル構築
    5. データ通信処理︓オーバーレイネットワーク上の通信 27
    Global
    IPv6 Network
    CYPHONIC 全体概要
    Initiator
    Node
    Private
    IPv4 Network
    NAPT
    仮想IP Responder
    アプリケーション通信
    仮想IP Initiator
    1 1
    2
    Overlay Network
    AS
    NMS
    TRS
    2
    3
    3 中継指⽰
    4 4
    FQDN Responder
    3
    3
    経路指⽰
    経路指⽰
    Dual Stack
    Network
    Responder
    Node
    AS: Authentication Service
    NMS: Node Management Service
    TRS: Tunnel Relay Service
    NAPT: Network Address Port Translation
    FQDN: Fully Qualified Domain Name
    5 5
    CYPHIO
    仮想IPアドレスを⽤いた
    オーバーレイネットワーク通信
    CYPHONIC Layer
    Application Layer
    Transport Layer
    Network Layer
    Application
    Real IPv4/IPv6
    Virtual IP
    TCP/UDP
    Virtual IP
    Application
    Real IPv4/IPv6
    Virtual IP
    TCP/UDP
    Virtual IP
    CYPHONIC独⾃のヘッダを付与することで
    オーバーレイネットワークを実現

    View full-size slide

  28. ‹#›
    認証処理
    MN NAPTMN
    Login Request
    Common Key Creation
    Authentication
    AS
    SSL/TLS Communication
    SSL/TLS Communication
    Login Response
    Save Common Key to DB
    NMS
    MN
    DB Server
    : Common Key
    MN: Mobile Node AS: Authentication Service
    28

    View full-size slide

  29. ‹#›
    位置情報登録処理
    MN NAPTMN
    Registration Request
    Registration Response
    Registration Network Information
    NMS
    (MN-NMS) (MN-NMS)
    Keep Alive
    ɾ
    ɾ
    ɾ
    : Common Key : Encrypted by Common Key
    MN: Mobile Node NMS: Node Management Service
    29

    View full-size slide

  30. ‹#›
    経路選択処理
    MN
    Direction Request
    with FQDNCN
    NAPTMN NMS
    (MN-NMS)
    (NMS-CN)
    Route Direction
    to CN
    Route Direction
    to MN
    Route Direction
    Confirmation
    (MN-NMS)
    CN
    Tunnel Key
    Creation
    Temp Key
    Creation
    (NMS-CN)
    : Common Key : Tunnel Key : Temp Key
    : Encrypted by Common Key
    MN: Mobile Node NMS: Node Management Service CN: Correspondent Node
    30

    View full-size slide

  31. ‹#›
    経路選択処理(TRS経由)
    MN
    Direction Request
    with FQDNCN
    NAPTMN NMS
    (NMS-TRS)
    (MN-NMS)
    (NMS-CN)
    (NMS-TRS) (NMS-CN)
    Relay Direction
    Relay Response
    Route Direction
    to CN
    Hole Punching to TRS
    Route Direction
    to MN
    Tunnel Key
    Creation
    Route Direction
    Confirmation
    (MN-NMS)
    TRS NAPTCN CN
    Temp Key
    Creation
    : Common Key : Tunnel Key : Temp Key
    : Encrypted by Common Key
    MN: Mobile Node NMS: Node Management Service TRS: Tunnel Relay Service CN: Correspondent Node
    Hole Punching to MN
    31

    View full-size slide

  32. ‹#›
    トンネル確⽴処理
    MN NAPTMN
    End Key Creation
    CN
    MN
    Tunnel Request
    Tunnel Response
    Tunnel Communication
    MN
    MN: Mobile Node CN: Correspondent Node
    : Encrypted by Tunnel Key : Encrypted by Temp Key : Encrypted by End Key
    : Tunnel Key : Temp Key : End Key
    32

    View full-size slide

  33. ‹#›
    トンネル確⽴処理(TRS経由)
    MN NAPTMN
    End Key Decryption
    End Key Creation
    TRS NAPTCN CN
    MN
    End Key Encryption
    MN
    MN
    Tunnel Request
    Tunnel Request
    MN
    MN
    Tunnel Response
    Tunnel Response
    Tunnel Communication
    MN: Mobile Node TRS: Tunnel Relay Service CN: Correspondent Node
    Tunnel Communication
    : Encrypted by Tunnel Key : Encrypted by Temp Key : Encrypted by End Key
    : Tunnel Key : Temp Key : End Key
    33

    View full-size slide

  34. ‹#›
    経路最適化処理
    MN NAPTMN
    End Key Decryption
    End Key Creation
    TRS NAPTCN CN
    MN
    End Key Encryption
    MN
    MN
    Tunnel Request
    Tunnel Request
    MN
    MN
    Tunnel Response
    Tunnel Response
    MN: Mobile Node TRS: Tunnel Relay Service CN: Correspondent Node
    : Encrypted by Tunnel Key : Encrypted by Temp Key : Encrypted by End Key
    : Tunnel Key : Temp Key : End Key
    Hole Punching to MN
    ACK
    Tunnel Communication
    34

    View full-size slide

  35. ‹#›
    CYPHONICノード システムモデル
    CYPHONIC Node
    CYPHONIC Daemon
    Packet Handling Module
    Packet Hook
    Module
    Signaling
    Module
    Virtual I/F
    Application
    User
    Kernel
    VIP: Virtual IP RIP: Real IP CYP: CYPHONIC
    Data
    Real I/F
    VIP Data CYP VIP Data
    CYP VIP
    RIP Data
    VIP Data
    フック処理
    ・仮想IPパケットをCYPHONIC Daemonへ受け渡す
    書き込み処理
    ・仮想IPパケットを仮想I/Fに書き込む
    カプセル化
    ・CYPHONICヘッダの付与
    ・HMACの付与と暗号化
    デカプセル化
    ・ハッシュ値の計算及び復号化
    ・仮想IPパケットの取り出し
    クラウド群とのシグナリング
    ・認証
    ・仮想IPアドレスの取得
    ・暗号鍵の取得
    ・相⼿ノードとの通信経路を確⽴
    仮想I/Fの作成
    ・ルーティングテーブルの設定
    ・仮想IPアドレスの割り当て
    35

    View full-size slide

  36. ‹#›
    System model of CYPHONIC Node
    Packet
    Handling
    Packet Hook
    Signaling
    CYPHONIC Daemon
    CYPHONIC
    Packet
    General domain’s IP
    or
    Virtual IPCN
    Mobility
    Management
    System
    Setting
    CYPHONIC
    Resolver
    General
    Domain
    CYPHONIC
    Domain
    Domain Filter
    Local DNS
    Linux OS Node
    DNS
    Response
    User
    Kernel
    VIPMN
    Header
    DNS
    Request
    DNS
    Resolver
    Application
    CN: Correspondent Node
    MN: Mobile Node
    tun0
    Application data
    tun1
    Real Interface
    Informations
    CYPHONIC domain’s DNS Packets
    General domain’ s DNS Packets
    DNS Packets
    Data Sequence
    Signaling Message
    RIP: Real IP VIP: Virtual IP
    Capsulated
    data
    36

    View full-size slide

  37. ‹#›
    CYPHONICにおけるカプセル化フロー
    Service
    Application
    TCP/UDP
    Virtual
    Interface
    Real
    Interface
    Real IP
    UDP UDP
    Real IP Virtual IP
    Real
    Interface
    Virtual
    Interface
    TCP/UDP
    Service
    Application
    Communication over overlay network
    With Virtual IP address
    Virtual IP
    CYPHONIC
    Daemon
    CYPHONIC
    Daemon
    Mobile Node (MN) Correspondent Node (CN)
    Application
    Layer
    Transport
    Layer
    Network
    Layer
    Datalink
    Layer
    37
    37

    View full-size slide

  38. ‹#›
    CYPHONICアダプタ システムモデル
    CYPHONIC Adapter
    CYPHONIC Daemon
    User
    Kernel
    Packet Handling
    Module
    Adapter Function
    VIP: Virtual IP RIP: Real IP CYP: CYPHONIC
    GN: General Node
    Real I/F 1 (Connected to General Nodes)
    VIPGN Data
    VIPGN Data
    Data
    VIPGN
    CYP
    DHCPv4
    Process
    Interface
    Handling
    Address
    Configuration
    General Node
    Management
    Signaling
    Module
    RIPAdapter Data
    VIPGN
    CYP
    Real I/F 0 (Connected the Internet)
    ① ⼀般ノード管理機能
    ・⼀般ノードを識別するMACアドレスの管理
    ・FQDNと仮想IPアドレスの管理
    ・暗号鍵の⽣成
    ② 仮想IPアドレス割り当て機能
    ・DHCPv4により⼀般ノードへ
    仮想IPv4アドレスを付与
    ③ パケット取得機能
    ・MACアドレスの代理応答
    ・仮想IPアドレス宛てパケットを
    実I/Fから取得
    38

    View full-size slide

  39. ‹#›
    System model of CYPHONIC Adapter
    CN: Correspondent Node
    GN: General Node
    RIP: Real IP VIP: Virtual IP
    Adapter Function
    Interface
    Handling
    General Node
    Management
    General Node
    Information
    Address
    Configuration
    Real Interface (eth1)
    DNS
    Response
    Connected to General Nodes
    User
    Kernel
    DHCPv4
    Process
    DNS
    Request
    Real Interface (eth0)
    Connected to the Internet
    Informations
    CYPHONIC domain’s DNS Packets Data Sequence
    Signaling Message
    General Node Configuration
    VIPCN
    CYPHONIC
    Resolver
    Packet
    Handling
    Signaling
    CYPHONIC Daemon
    Application
    data
    Signaling
    data
    Capsulated
    data
    CYPHONIC
    Packet
    src: RIP
    dst: RIP
    Adapter
    CN
    src: VIP
    dst: VIPCN
    GN
    39

    View full-size slide

  40. ‹#›
    DNSパケットの処理
    Signaling
    CYPHONIC
    Resolver
    Real I/F 0
    Real I/F 1
    nameserver: Adapter
    General Node
    DNS Resolver
    General
    Doamin
    DNS Packet
    Data Sequence
    General domainʼs
    CYPHONIC domainʼs
    Local DNS Server
    CYPHONIC
    Domain
    インターネット
    1. Real I/F 1 を介してDNSクエリを受信
    2. Local DNSでドメインをフィルタリング
    ・⼀般ドメイン
    ・CYPHONICドメイン
    3. DNSリクエストから相⼿ノードのFQDNを取得
    4. Signaling Moduleにより仮想IPアドレスを取得
    ︓Real I/F 0 からネットワークへ送信
    ︓CYPHONIC Resolver Moduleへ転送
    40

    View full-size slide

  41. ‹#›
    認証処理および登録処理
    ⼀般ノード情報を応答
    Adapter AS
    ⼀般ノード情報を登録
    ⼀般ノード情報を要求
    GN
    DHCP要求
    確認
    DHCP応答
    Adapter Ready
    General Node Ready
    接続
    CYPHONICアダプタが
    起動時に⼀般ノード情報を取得
    管理している⼀般ノードの情報に
    基づいて仮想IPアドレスを付与
    → クラウドサービスに登録された
    端末のみが通信が可能
    GN : General Node AS : Authentication Service
    ⼀般ノードの情報を
    クラウドサービスに登録
    ・仮想IPアドレス
    ・FQDN
    ・MACアドレス
    41

    View full-size slide

  42. ‹#›
    通信処理
    GN Adapter CN
    NMS
    FQDNCN
    通信要求 + 経路確⽴
    経路指⽰ + 仮想IPCN
    DNS Req.
    DNS Res.
    仮想IPCN
    ARP Req.
    仮想IPCN
    MAC Adapter
    Proxy ARP
    オーバーレイ
    ネットワーク通信
    リンクレイヤー
    通信
    GN : General Node NMS : Node Management Service CN : Correspondent Node
    DNSリクエストを受信して
    NMSに通信開始要求を送信
    DNSレスポンスを⽣成して
    相⼿ノードの仮想IPアドレスを
    ⼀般ノードへ通知
    リンクレイヤー通信によって
    ⼀般ノードからパケットを取得して
    オーバーレイネットワーク上で
    相⼿ノードと通信
    42

    View full-size slide

  43. ‹#›
    TCP/IP プロトコルスイート
    L7
    (Application)
    アプリケーション, ユーザインターフェースなどによりデータを扱う
    L4
    (Transport)
    データ伝送に伴うエラー訂正, 再送制御などのフロー情報を管理
    信頼性のないIPをサポートし, 宛先まで確実な送受信を実現する
    L3
    (Network)
    複数のネットワーク間でデータ伝送を⾏う
    L2
    (Datalink)
    直接接続されたネットワーク内で正確なデータ伝送を⾏う
    L1
    (Physical)
    L2フレームをビット列, 電圧の⾼低などの信号情報に変換して伝送媒体に伝送
    43

    View full-size slide

  44. ‹#›
    カプセル化・デカプセル化
    各レイヤでPDU (Protocol Data Unit) を付加して送受信
    44
    Encapsulation Decapsulation
    01010001110110001010101011110010101010011101
    L4
    Header
    L7
    Header
    App
    Data
    L2
    Trailer
    L3
    Header
    L2
    Header
    L4
    Header
    L7
    Header
    App
    Data
    L3
    Header
    L4
    Header
    L7
    Header
    App
    Data
    L7
    Header
    App
    Data
    L7 Message
    L4 Segment
    L3 Packet
    L2 Frame
    L1 Bit (Signal)
    01010001110110001010101011110010101010011101
    L4
    Header
    L7
    Header
    App
    Data
    L2
    Trailer
    L3
    Header
    L2
    Header
    L4
    Header
    L7
    Header
    App
    Data
    L3
    Header
    L4
    Header
    L7
    Header
    App
    Data
    L7
    Header
    App
    Data
    L7 Message
    L4 Segment
    L3 Packet
    L2 Frame
    L1 Bit (Signal)
    Network Media

    View full-size slide

  45. ‹#›
    【付録】研究業績
    Ren Goto, Taiki Yoshikawa, Hijiri Komura, Kazushige Matama, Chihiro Nishiwaki, and Katsuhiro Naito.
    "Design and Basic Evaluation of Virtual IPv4-based CYPHONIC adapter"
    The 13th IIIS International Multi-conference on Complexity, Informatics and Cybernetics (IMCIC), March
    2022.
    DOI: N/A (Accepted)
    Taiki Yoshikawa, Hijiri Komura, Ren Goto, Kazushige Matama, Chihiro Nishiwaki, and Katsuhiro Naito.
    "Demonstration of video conferencing tool with overlay network protocol"
    The 19th IEEE Consumer Communications & Networking Conference (CCNC), January 2022.
    DOI: 10.1109/CCNC49033.2022.9700703.
    Taiki Yoshikawa, Hijiri Komura, Chihiro Nishiwaki, Ren Goto, Kazushige Matama, and Katsuhiro Naito.
    "Evaluation of new CYPHONIC: Overlay network protocol based on Go language"
    The 40th IEEE International Conference on Consumer Electronics (ICCE), January 2022.
    DOI: 10.1109/ICCE53296.2022.9730323.
    45

    View full-size slide

  46. ‹#›
    【付録】研究業績
    後藤 廉, 吉川 ⼤貴, ⼩村 聖, 眞⽟ 和茂, 内藤 克浩
    "【2021年度学⽣奨励賞】仮想 IPv4 アドレスを想定した CYPHONIC アダプタの設計と基礎評価"
    Information Processing Society of Japan (IPSJ) - 第33回コンシューマ・デバイス&システム研究会 (CDS),
    January 2022.
    J-GLOBAL ID: 202202291942447619, Reference number: 22A0421754
    ⻄脇 千紘, 吉川 ⼤貴, ⼩村 聖, 後藤 廉, 眞⽟ 和茂, 内藤 克浩
    "iOS におけるアプリケーション内独⾃プロトコル実装に関する⼀検討"
    Institute of Electronics, Information and Communication Engineers (IEICE) - 令和三年度 電気・電⼦・情報関係
    学会 東海⽀部連合⼤会, September 2021.
    J-GLOBAL ID: 202202266081463947, Reference number: 22A0608290
    46

    View full-size slide