SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

仮想ルータVyatta/VyOSで変わるネットワーク設計

クラウド時代のVPN設計の考え方

仮想ルータVyatta/VyOSで変わるネットワーク設計(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

VPNルータの相互接続と課題

 それではBrocade Vyatta vRouterと、市販されるVPNルータによるIPSecでのサイト間VPNについてみていきます。今回の相互接続には、市販されるVPNルータにBuffalo社VR-S1000を使用しました。

 結論からいえば「繋がりませんでした」なのですが、その状況をログから確認しましょう(図3)。

図3. Buffalo社VR-S1000のエラーログ(抜粋)
図3. Buffalo社VR-S1000のエラーログ(抜粋)

 実験環境でBrocade Vyatta vRouterのIKE/ESP/IPSecパラメータ設定を可能な限り試してみましたが、結論は変わりませんでした。IPSecでやりとりされるペイロード形式が不一致のためエラー終了していることがログから推測されますが、この部分が強くソフトウェア実装に依存していると推測されるため解決には至りませんでした(※Vyatta/VyOSで使われているソフトウェア実装に変更を入れる手もありましたが……)。

 筆者が最初にIPSecを使ったのは1990年代後半。その頃も「異機種間での相互接続」に課題を感じた業界団体や有志により多数の相互接続実験が行われました。記憶を辿ると、「まだこういった問題はあるか…」という気持ちがよみがえってきます。

 このように、VPNなどの異機種間の相互接続を行う際には、事前検証などを十分に行っておく必要があるのです。前述のIDCフロンティア社が公開する「VyattaでのIPsecサイト間VPN接続手順書」や「VyOSでのIPsecサイト間VPN接続ガイド」は、とても貴重な情報源なのです。

 少々脱線しますが相互接続の課題以外にも、Brocade Vyatta vRouterとVyOSに関係するセキュリティ脆弱性が最近報告されています。セキュリティ脆弱性と修正報告は、GNU Bash(Shellshock)脆弱性とOpenSSLの脆弱性に関する少々クリティカルな問題なので、可能な限り最新のバージョン(Brocade Vyatta vRouter 6.7R2以降、VyOS 1.0.5以降)を使用しましょう。

図4. Brocade Vyatta vRouterの最新リリースノート(抜粋)
図4. Brocade Vyatta vRouterの最新リリースノート(抜粋)

 さて気を取り直して、つぎにプライベートクラウドをBrocade Vyatta vRouterでIPSecサイト間接続するVPN設定についてみていきましょう(参考: http://brocade.com/5400documentation / VPN_Site-to-Site IPsec VPN) 。

 詳細は割愛しますが、IPSecサイト間VPN設定の基本的な考え方は4つです。「IKE/ESPの事前準備」「IPSecサイト間のピア設定」「IPSecサイト間の共有鍵を設定」「IPSecトンネルを通るネットワーク範囲を設定」の4点です。このVPN設定では、いずれのIPSecサイトでもBrocade Vyatta vRouterやVyOSはグローバルIPv4アドレスをインターフェースに設定します。

図5. Brocade Vyatta vRouter/VyOSのIPSecサイト間VPN設定例
図5. Brocade Vyatta vRouter/VyOSのIPSecサイト間VPN設定例

 基本的にはこれで設定終了ですが、図6のようにIPSsecのESPトンネルモードによるパケットサイズ減少に対処するため、TCP-MSS(Maximum Segment Size)への対処も頭の片隅に入れておいてください。

図6. IPSecによるサイト間VPN設定におけるヘッダー情報
図6. IPSecによるサイト間VPN設定におけるヘッダー情報

 設定例は図7のようになりますが、読者の皆様の環境に合わせて変更してお使いください(※うまく動かない場合には、いろいろと試行錯誤してみてください)。

図7. IPSecによるサイト間VPN設定におけるTCP-MSS設定変更
$ configure
# set policy route TCP-MSS1386-ETH0 rule 1 destination address 10.20.20.0/24
# set policy route TCP-MSS1386-ETH0 rule 1 tcp flags SYN
# set policy route TCP-MSS1386-ETH0 rule 1 protocol tcp
# set policy route TCP-MSS1386-ETH0 rule 1 set tcp-mss 1386
# set interfaces ethernet eth0 policy route TCP-MSS1386-ETH0
# commit
# save

 ここでは「IPSecトンネルの対向側のIPアドレス範囲でありTCPフラグがSYNのときはTCP-MSSを1386バイトに変更する」設定がなされています。"policy route"コマンドのパラメータには、送信元IPアドレス範囲も設定可能なので、こちらも読者の皆様の環境や運用ポリシーに合わせて変更してお使いください。

 さて、最後にマニュアルにないIPSec設定についてみていきましょう。

次のページ
マニュアルにないIPSec設定のイロハ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
仮想ルータVyatta/VyOSで変わるネットワーク設計連載記事一覧

もっと読む

この記事の著者

松本 直人(マツモト ナオト)

1996年より特別第二種通信事業者のエンジニアとしてインターネット網整備に従事。その後システム・コンサルタント,ビジネス・コンサルタントを経て2010年より,さくらインターネット株式会社 / さくらインターネット 研究所 上級研究員。(2016年より一時退任)研究テーマはネットワーク仮想化など。3~5年先に必要とされる技術研究に取り組み、世の中に情報共有することを活動基本としている。著書: 『モノのインターネットのコトハジメ』,『角川インターネット講座 ~ビッグデータを開拓せよ~』など多数。情報処理学会 インターネットと運用技術研究会 幹事

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8195 2014/10/22 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング