yabe.jp https://yabe.jp a site of osamu yabe Sat, 27 Jan 2018 05:14:09 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.2 https://i0.wp.com/yabe.jp/wp-content/uploads/2014/12/y_logo-549a8f5bv1_site_icon.png?fit=32%2C32&ssl=1 yabe.jp https://yabe.jp 32 32 12842837 Movies I saw in 2017 https://yabe.jp/thoughts/movies-i-saw-in-2017/ https://yabe.jp/thoughts/movies-i-saw-in-2017/#respond Thu, 11 Jan 2018 11:43:32 +0000 https://yabe.jp/?p=9785 毎年年末年始になると1年放置してしまった罪悪感から突然更新するこのブログですが、今年もそうしてみます。

The post Movies I saw in 2017 appeared first on yabe.jp.

]]>
毎年年末年始になると1年放置してしまった罪悪感から突然更新するこのブログですが、今年もそうしてみます。
特にホットな話題が思いつかなかったので、市井のブログっぽく昨年1年の間に観た映画の感想なんぞ記してみようかと思います。でもきっちり書いてたらとても大変なので、すごく乱暴に書くことにします。ごめんなさい。

LIFE!/ライフ

ベン・スティラーが好きなので観ました。まぁまぁ。でもこの映画で “zoned out” という言い回しを覚えて会社で使ったりできるようになりました。


ハドソン川の奇跡

USエアウェイズ1549便不時着水事故と、その後の事故調査に焦点を当てた作品。ハドソン川に不時着して死者ゼロだったサレンバーガー機長は、国家運輸安全委員会から不時着が判断ミスであったという疑いをかけられますが、その疑いを公聴会で見事に晴らすシーンが痛快です。苦悩にさいなまれるトム・ハンクスの演技が光りますが、それよりも事故と公聴会、だけで1本の映画にしてしまったクリント・イーストウッドがすごい。面白かった。


ファインディング・ドリー

ファインディング・ニモの続編です。面白かった。


インフェルノ

ダ・ヴィンチ・コードのラングドン教授の3作目。本人いきなり記憶を失っての登場が斬新でしたが、陰謀論的な切り口が衝撃的だった1作目からすると神秘性も薄れ、全体的にはまぁまぁ。最後の貯水池でのドタバタ劇が若干シラケ気味でした。


ジャック・リーチャー NEVER GO BACK

トム・クルーズのジャック・リーチャーシリーズの2作目。面白くなかった・・というか何も覚えてません。


ザ・コンサルタント

しがない会計士が実は凄腕の殺し屋という話です。まぁまぁ。設定は突飛なのに、意外と真面目路線で、だけど中途半端などんでん返しもあり、モヤモヤが残ります。もっと会計士ならではの、電卓1個で敵を次々にやっつけるシーンとかあってもよかったかと思います。


ローグ・ワン/スター・ウォーズ・ストーリー

ディズニーが始めたスター・ウォーズ外伝の1作目。エピソード4の直前のお話で、ファンの間では長年の疑問だった、なぜデス・スターはたった爆弾1発で大爆発してしまうようなアホな設計になってたのか、という問いに見事に答える名作です。文句なしに面白かったです。2017年のベスト映画だったと言えます。あ、正確には2発か。


スター・トレック BEYOND

クリス・パインになってからの、スター・トレックの3作目。安定の面白さ


LUCY/ルーシー

そこらへんにいた女子大生が、麻薬の過剰摂取によってとつぜん超人類になってしまうお話。映画自体はまぁまぁでしたが、ものすごいバカそうな女子大生が、急速にものすごい頭がよさげになるスカーレット・ヨハンソンの演技が素晴らしいです。リュック・ベッソンなのにそんなにギャグシーンが無く、ラストシーンはかなり拍子抜けします。


モダン・タイムズ

言わずと知れたチャップリンの代表作。資本主義とチョビ髭を風刺しています。面白かった。著作権が切れているので YouTube で堂々と観られます。


ゴースト・イン・ザ・シェル

攻殻機動隊の実写リメイク。漫画・アニメ原作のハリウッド版なので危惧していましたが、まずまずの出来。ビートたけしのセリフ棒読みだけなんとかしてほしい。いや、そんなにスカーレット・ヨハンソンが好きなわけではありません。


十二人の怒れる男

法廷もの映画の金字塔。裁判所の控え室を舞台に、12人の陪審員が、ある少年の事件の評決に達する過程のみを描きます。先入観とはなにか、正義とはなにかを問う作品です。会社の研修で取り上げられ、そういえば観たことがなかったなーと思って観ましたが、とても面白いです。三谷幸喜の「12人の優しい日本人」も面白いです。


プラダを着た悪魔

雑誌 VOGUE のカリスマ編集長アナ・ウィンターがモデルといわれる鬼編集長と、そのアシスタントになったファッションに無頓着な女の子がぶーぶー言いながら頑張るお話。これも会社の研修で取り上げられたので、1度観たことあったけどもまた観てみました。働くとはどういうことか、という視点で観ると、ポップな外見とは裏腹に実はものすごい示唆に富んだ深い話であることに気づかされます。上司や環境に恵まれない中で働くすべての人に観てもらいたいです。たまたま自分の部署にに入ってきたファッションに無頓着な女の子がアン・ハサウェイだった場合、何をどうしたら自分が生き延びられるのか、という視点で観てもいいです。


ラ・ラ・ランド

まぁまぁ


パッセンジャー

120 年かけて他の恒星に移住する宇宙船で、機器の故障からまだあと 90 年というところで人工冬眠から目覚めてしまった人のお話。登場人物が普通の感覚を持った人間だったら絶対に精神の均衡を保っていられないんではないかと思いますが、映像やハイテク機器の描写や無重量のプールのシーンやロボバーテンダーがかっこいいので全部よしとします。こういう事故があったらどういう風に賠償する契約になっていたのかが気になります。面白かった


ファウンダー ハンバーガー帝国のヒミツ

マクドナルドの創業と、そのシステムに惚れ込み規模拡大に心血を注いだレイ・クロックに焦点を当てた伝記的映画です。いまでこそ、どちらかというとおいしさとは反対側にいるファストフードの権化のように評されることが多いマクドナルドですが、実はこれほどまで味や品質や顧客満足にこだわって生まれた食べ物であることに驚かされます。やはり世界規模になるものは、一味違うんですね。面白かった


イップ・マン 序章

ブルース・リーの師匠、イップ・マンを描いたお話です。ローグ・ワンに出てくるウィルズの寺院の守護者、チアルート役のドニー・イェンが主演で、この頃加入した日本版 hulu でキャンペーン中だったので観ました。朴訥な役のドニー・イェンが本気を出すとめっさ強いさまが面白かったです。


イップ・マン 葉問

こっちもキャンペーン中だったので観ました。敵のボクサーがちょっとアレでしたが、やはり朴訥な主人公が強いさまが面白かったです。3作目は無料でなかったので観てませんが、いつか観たいなぁと思ってます。


ネイビーシールズ

出演者が本当にネイビーシールズの隊員という映画でした。まぁまぁ


ブレイブハート

メル・ギブソン主演で、スコットランド独立をかけて戦ったウィリアム・ウォレスを描いたお話です。ミームで使われることであまりにも有名ですが、そういえば映画自体観たことないなーと思って観ました。まぁまぁ


何者

会社の後輩に勧められたので観た、就活がテーマの若者の映画です。何が言いたいのかいまいちよく分かりませんでしたが、これが歳を取ったということなんだと思っています。ナカタヤスタカの音楽は良かったです。


カウボーイ & エイリアン

19 世紀のアリゾナに宇宙人が飛来して、それを宇宙人の超兵器を持ったカウボーイがやっつけるというお話です。そんなの絶対ガッカリ映画ですが、そこはしかしハリソン・フォードとダニエル・クレイグがなんとかしてくれるんではと仄かな期待を胸に観てみました。ガッカリでした。きっと hulu で観たんだと思います。


ドリーム

邦題にまつわるすったもんだで話題になった作品です。宇宙開発競争のまっただなかのアメリカで、逆境にも負けず NASA で活躍した3人の女性数学者の姿に胸を打たれます。面白かった


ゴールド/金塊の行方

1990 年代に実際にあった金鉱採掘にまつわる詐欺事件を描いたお話です。まぁまぁでしたが、怪しさ全開の冴えない採掘業者がマシュー・マコノヒーなのがなんとも素敵です。ハウス・オブ・カードのルッソの人が出てくるので、またお酒で失敗しないか心配になったりしました。


バイオハザード:ザ・ファイナル

もう何回やってるか分からない、バイオハザードの映画版6作目です。6回やるなんてアナタ相当ゾンビが好きなのね・・というミラ・ジョボビッチにただただ感服するばかりです。映画としては普通でした。ローラ出てます。


フォース・プラネット

土壌から水分を生成することに成功した技術者が、火星移住の担当者となって宇宙船で火星に行くお話です。微妙です。いやーだからっていきなりエンジニア宇宙に送る?とか宇宙服がダサいとかの疑念が邪魔していまいちストーリーに集中できない上に、内省的なシーンが続くので飽きます。オデッセイと 2001 年宇宙の旅を足して薄めたような印象でした。


オートマタ

近未来で、密かに自意識を持つにいたったロボットを冴えない保険調査員が助けるお話です。隠れた名作とされてるっぽいので観ましたが、面白くなかったです。なんで主人公がアントニオ・バンデラスなのかもよく分かりません。


LOOPER/ルーパー

これも隠れた名作とされているっぽので観ましたが、わりと面白かったです。タイム・トラベル業界の殺し屋のお話ですが、オチが人間味あふれていて感動でした。スター・ウォーズ/最後のジェダイの監督の作品です。


ザ・サークル

エマ・ワトソンとトム・ハンクス主演の、ちょっと未来のスタートアップと SNS がテーマのお話ですが、ひどい映画でした。


パイレーツ・オブ・カリビアン/最後の海賊

ジャック・スパロウさんの4作目。いろいろツッコミどころはありますが、ジョニー・デップだしよしとしましょう!面白かった


ブレードランナー

言わずと知れたハリソン・フォード主演の SF の金字塔。続編公開にあわせて hulu で限定公開されていたので観ました。最初に観たのは中学生くらいで、難しすぎて意味がよくわかりませんでしたが、大人になって観てみてストーリーがわかってよかったです。でもまぁ 2017 年に観る映画としては微妙だった気がします。


ネイビーシールズ:オペレーションZ

副大統領救出に向かったネイビーシールズがソンビと戦うお話。ゾンビ映画好きなのでつい観てしまいましたが、驚くほどひどい映画でした。映像は安っぽいし、演技は下手だし、ストーリーは深みゼロだし、ここぞという所でゾンビが攻撃せず待っててくれたりします。大変後悔しました。


スーパー・チューズデー ~正義を売った日~

ジョージ・クルーニーとライアン・ゴスリングによる大統領選に焦点をあてたお話です。ちょっと古い映画ですが、これは面白いです。駆け引きやスキャンダルに絡んで、理想と現実に揉まれる主人公に引き込まれます。


アイアン・スカイ

2018 年に月面に着陸したら、なんとそこにナチス・ドイツが隠れていた!という SF コメディで、なんかそれだけ聞くと面白そうだったんですが、微妙でした。もうちょっとバカバカしくてもよかったかなという気持ちと、もうすでにバカバカしすぎているという気持ちの間で揺れ動いております。


フライト・ゲーム

リーアム・ニーソン扮する航空保安官が、警備のために乗り込んだフライトで、正体不明の犯人から乗客を守る密室サスペンスもの。大西洋上空で正体不明の犯人から殺人予告のメールが入り、密室である機内で次々に殺人が起こる様にドキドキしましたが、最後のオチが若干拍子抜けだったのでまぁまぁとしたいと思います。しかしリーアム・ニーソンの周りにいるとほんとに誘拐や殺人ばっかり起こるので、そろそろ政府は規制とか逮捕とかしたほうがいいと思います。


ブリッジ・オブ・スパイ

冷戦下でソ連の捕虜となったスパイの解放に人知れず尽力した、実在の弁護士を描いたお話です。面白いです。国民の反感をものともせず、捕まったソ連のスパイの弁護で正義と信念を貫き、そしてそのおかげでソ連で捕まった自国のスパイを解放できることになり、でも表立って交渉できない政府の代わりに民間人として秘密裏に交渉し、寒い東ベルリンで頑張って解放に成功し、ついでに東ベルリンで捕まったかわいそうな大学生も解放しちゃうという偉業に感動します。しかもノーギャラ。すごい人です。


白雪姫と鏡の女王

この映画大好きで久しぶりに観ました。コミカルな現代風白雪姫ストーリーの中に、加齢や財政難に悩む女王の苦悩や、忠義と保身に悩む召使いの苦悩、正義と孤独と日々の生活に悩む7人の小人の苦悩とアホな王子が見事に描かれています。ヒロインのリリー・コリンズもかわいいし、いつ観ても面白いです。また観ます。


BLAME!(ブラム)

日本初の Netflix オリジナル映画。コミックが原作のようです。使っている語句やテクノロジーのコンセプトに新しいものもありますがが、 SF 映画としては特に新しくないように感じました。まぁまぁ。ただ作中に出てくる、水でつくる合成食料は超おいしそうでした。


13 Going On 30

13 歳の女の子が、朝起きると突然 30 歳のキャリアーウーマンになっていて、いろいろすったもんだした挙句、本当の愛に気づくコメディです。可もなく不可もなくです。 80 年代の懐メロが多用されます。


ダンケルク

第二次大戦でのダンケルクを舞台に、撤退する兵士たちとそれに関わった人々を描いた作品です。クリストファー・ノーラン節というか、抑え気味で淡々とした映像が戦争映画としては新鮮でした。自分のボートで兵士を救出にいくおっちゃんがカッコいいです。


ダークタワー

最近よくある、ラノベ的なもの原作の SF 映画です。悪いマシュー・マコノヒーが新鮮ですが、話は面白くなかったです。あれ、これ原作スティーブン・キングなの・・ラノベとか言ったらまずかったかな・・。


ワイルド・スピード ICE BREAK

知人に中国で1番売れたハリウッド映画だと聞いたので観てみました。バカバカしい内容なんじゃないかと不安でしたが、あまりにもバカバカしいことが次々に起こりまくるので、逆に感服しました。


エイリアン:コヴェナント

いやー、エイリアン大好きなんですが、賛否両論が爆発した前作のプロメテウスほどではないものの、登場人物が頭が悪すぎてズッコケる場面が多くて、いまいちでした。でも特に人類最大の謎とかは関係なくて、単に暴走したアンドロイドが悪いんだということがわかって、スッキリしました。早く次が観たい。

ちなみにプロメテウスに関してはこれに完全に同意です。


キングスマン

最近2作目が公開された、新世代スパイもの映画の1作目。若干暴力シーンが多い気がしますが、キレのある大量殺戮シーンや世界中の偉い人が一斉に死ぬシーンなど、確かにいままでのスパイものとは一味違いました。コリン・ファースかっこよすぎです。面白かった


ヴァレリアン 千の惑星の救世主

最近流行りのコミック原作ものということで、若干穿って観ましたが、さすがリュック・ベッソン。映像美とバカバカしさが高度に融合していて、面白かったです。ヒロインが例によってべっぴんさんですが、例によってまたリュック・ベッソンに娶られてしまうと思います。


スター・ウォーズ/最後のジェダイ

というわけで 2017 年のラストを飾るのはこれでした。うーーーーん、スター・ウォーズ好きだけど、前作よりいいけど、もっと面白くあってほしかった。でもヨーダも出てきたし、デイジー・リドリーかわいいし、ルークも今回はセリフあるしよしとしますか。しかしジェダイはみんなメンタルが弱いというか、もっと寺院にカウンセラーとか置いた方がいいと思います。見せ場は「手先に感じるそれがフォースだ!」のシーンと、レイア姫遊泳シーン、カイロ・レン半裸タイツシーンでしょうか。


というわけで、 2018 年もよろしくお願いします!

The post Movies I saw in 2017 appeared first on yabe.jp.

]]>
https://yabe.jp/thoughts/movies-i-saw-in-2017/feed/ 0 9785
Best Products of 2016 https://yabe.jp/gadgets/best-products-2016/ https://yabe.jp/gadgets/best-products-2016/#respond Mon, 27 Mar 2017 04:44:25 +0000 https://yabe.jp/?p=8853 先日ひょんなことから友達と世の中でどんな電源タップがいけてるか的な議論になり、その流れで電源タップを次のブログ記事にすると約束してしまいました。が、電源タップだけだとさすがに全然記事にならないので、知恵を絞った結果無理やり2016年に買ったベストな商品というような記事にして、そこに電源ケーブルを忍び込ませることにしました。

The post Best Products of 2016 appeared first on yabe.jp.

]]>
先日ひょんなことから友達と世の中でどんな電源タップがいけてるか的な議論になり、その流れで電源タップを次のブログ記事にすると約束してしまいました。が、電源タップだけだとさすがに全然記事にならないので、知恵を絞った結果無理やり2016年に買ったベストな商品というような記事にして、そこに電源ケーブルを忍び込ませることにしました。
いきなりネタバレおよびいいわけから入ってしましましたが、そいういうわけで2016年に買って気に入ったプロダクトをいくつか紹介してみます。

LD-GPSST

ツメ折れ防止スーパースリムLANケーブル(Cat6準拠) LD-GPSSTWHシリーズ
エレコムの極細 LAN ケーブルです。新設計ショートコネクタ搭載とありますが、いや本当にコネクタが小さい。そしてこれほどオシャレなデザインのコネクタは見たことがありません。他の LAN ケーブルと比べて群を抜いて小さく、また洗練された雰囲気を漂わせています。ケーブルも最近流行りのスーパースリムタイプですが、若干コシがあり、ものすごく柔らかいケーブルがいい人はバッファローの BSLS6SUWH2 方がいいかもしれません。残念ながらどうも商品ライフサイクル的には終盤ぽいので大量買いしました。

EHC-G05PN-JW

1000BASE-T対応 スイッチングハブ EHC-G0XPNシリーズ
またしてもエレコムです。これはギガビット対応のスイッチングハブですが、ただのスイッチングハブではありません。「プラスチック筐体・白・5ポート・電源内蔵・ギガビット対応」スイッチングハブは現時点で世界でただ一つこの機種だけです。世界でただ一つなのでせっせと何個も買っていますが、「Giga」のロゴがなくなればもっといいのに思ってやみません。ちなみに8ポートでよければバッファローの LSW5-GT-8NP の方がよりかっこいいです。しかしアメリカにはなんでこういった電源内蔵のハブやモデムが全然ないんですかね。もっといい電源内蔵のスイッチングハブをご存知の方は是非ご一報ください!

ちなみに電源内蔵関連の話題としては、最近ケーブルモデムで珍しく電源内蔵のものを見つけて買いました。 Arris の CM820 です。リテールで市販されてませんが、よく探せばアマゾンなんかで新品を売ってます。 Comcast 対応です。もし ケーブルモデムに Wi-Fi がついてても嫌でなければ、元モトローラの方の Arris SBG6782-AC なんかが電源内蔵です。


T-NSL-26

ほこり防止シャッター付きスリムタップ
これもエレコムです。エレコムは昔から若干デザインにこだわった電源タップをちょこちょこ出してます。このモデルは余計な装飾がなく超シンプルで、かつ AC アダプターを複数挿しても重ならない横向きで余裕を持った配置がニクい電源タップです。3つぐらい買いました。

エレコムの電源タップはこの AVT-D3-26 シリーズも気になってます。やはり隣と干渉しない配置がウリですが、果たして AC アダプタを両側に挿した時にどう見えるのかが気になるところです。

MJ-JT11A

電源周辺機器
電源タップといえば、この無印の組み合わせるタイプも有名です。最近はモデルチェンジしてロック付きになりました。実はこのシリーズの超短い(10センチ)延長コードが、1つ出張に持っていくととても便利です。航空機内のコンセントがちょっと奥まったところにあったり、取引先の会議室の電源タップがラップトップの AC アダプターでぎゅうぎゅうになっていたりするときに1個あると大活躍します。


SRS-X33

ワイヤレスポータブルスピーカー SRS-X33
よくあるタイプの Bluetooth スピーカーに見えますが、実はかなりの重低音が出ます。実は BOSE 対策で開発されたとかしないとか・・。値段も $99 とかなりお買い得だったと思います。後継の SRS-XB3 は防沫仕様で、かつ最大 24 時間もつバッテリー内蔵、かつ iPhone の充電も可能という欲張り仕様になったようです。


mifold

Grab-n-Go Car Booster Seat
Indiegogo 出身の超小型ブースターシートです。市販まで時間がかかったりしましたが、きちんとしかるべき認証を取り、しっかりアメリカで市販してしまいました。ほんとに小さいので、旅行の時や、据え置きのカーシートを付けてない方の車で出かける時にとても重宝してます。


Setu Chair

Setu – Office Chair – Herman Miller
ハーマンミラーのオフィス・会議室用の椅子です。アーロンチェア等フル機能のやつほど大型大迫力でなく、でもわりとリクライニングが良さそうだったので購入しました。20世紀プロダクトデザインの金字塔、イームズ夫妻デザインのアルミナムチェアを彷彿とさせるシルエットが素敵です。ちなみに座りごごちはアルミナムチェアの方が上でした・・買えないけど・・。


Madagascar Vanilla Pot de crème

Pots de crème | Petit Pot
とてもおいしいクリーム・プリン系のデザートです。バニラもしくはレモンカード味がおすすめです。 Whole Foods 等に置いてあります。


White Ale

White Ale – Saint Archer Brewery
サンディエゴのブルワリー、 Saint Archer の白ビールです。おいしくて、瓶だけでなく缶があって、缶がかっこいいという3拍子そろったビールです。これも Whole Foods 等でよく見かけます。


というわけで、2016年買ってよかったプロダクトをまとめてみました。あ、こっそり電源タップがいつくかまぎれてるの、気がつきました?

The post Best Products of 2016 appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/best-products-2016/feed/ 0 8853
EdgeRouter X – 番外編2. パフォーマンステスト https://yabe.jp/gadgets/edgerouter-x-s2-performance-test/ https://yabe.jp/gadgets/edgerouter-x-s2-performance-test/#respond Tue, 17 Jan 2017 06:53:41 +0000 https://yabe.jp/?p=8507 EdgeRouter X には2つのハードウェア処理高速化オプションがありますが、このオプションを IPsec や OpenVPN と組み合わせた時の、ファームウェア 1.9.0a1 でのパフォーマンスを調べたスレッドをフォーラムに見つけました。

The post EdgeRouter X – 番外編2. パフォーマンステスト appeared first on yabe.jp.

]]>
さてファームウェア 1.9.1 時点での EdgeRouter X には2つのハードウェア処理高速化オプションがありますが、このオプションを IPsec や OpenVPN と組み合わせた時の、ファームウェア 1.9.0a1 でのパフォーマンスを調べたスレッドをフォーラムに見つけました。

現在 EdgeRouter X に用意されているハードウェア高速化処理は、下記の2つです。

  • NAT のハードウェア処理
  • IPsec のハードウェア処理

デフォルトではオフですが、下記のコマンドで設定できます。

configure
set system offload hwnat enable
set system offload ipsec enable
commit
save

このオプションを IPsec や OpenVPN と組み合わせた時の、ファームウェア 1.9.0a1 でのパフォーマンスを調べたスレッドをフォーラムに見つけました。

Re: 1.9.0a1 ERX VPN performance

リリースノート等にもあまりパフォーマンスは明示されないことが多いので、興味深いです。せっかくなのでいくつか抜き出してまとめてみました。基本的にには PC – ERX – ERX – PC と直繋ぎでスループットを調べた模様です。公式記録等ではなく、単にあるユーザーが測定しただけのものなので、設定や環境の再現性がない可能性がありますが・・まぁ参考まで。

設定 hwnat ipsec 速度
Ethernet 直結 942 Mbps
ルーティングのみ 296 Mbps
ルーティングのみ ON 933 Mbps
OpenVPN 暗号化なし 65.4 Mbps
OpenVPN 暗号化なし ON 63.2 Mbps
OpenVPN SHA1/BF 24.3 Mbps
IPsec SHA1/AES128 38.4 Mbps
IPsec SHA1/AES128 ON 150 Mbps
IPsec SHA1/AES128 ON ON 214 Mbps

2台を相対して接続した理想的な状態とはいえ・・やはり $49 で IPsec 200 Mbps は大変お買い得ではないかと思います。あ、繰り返しになりますが、 ipsec offload は L2TP を使う時にはオフにしてくださいね。

ちなみに最近、ハードウェアオフロードに関しての公式ヘルプドキュメントが公開されたようです。

EdgeRouter – Hardware Offloading Explained

The post EdgeRouter X – 番外編2. パフォーマンステスト appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-s2-performance-test/feed/ 0 8507
EdgeRouter X – 番外編1. Mac と SoftEther で拠点間 L2 VPN を構築する https://yabe.jp/gadgets/edgerouter-x-s1-l2-vpn-with-softether/ https://yabe.jp/gadgets/edgerouter-x-s1-l2-vpn-with-softether/#respond Mon, 16 Jan 2017 18:07:55 +0000 https://yabe.jp/?p=8475 Mac 上に SoftEther VPN Server をインストールし、拠点間 VPN を設定してみました。

The post EdgeRouter X – 番外編1. Mac と SoftEther で拠点間 L2 VPN を構築する appeared first on yabe.jp.

]]>
さてここまで色々やってきましたが、どうしてももう1つチャレンジしてみたかったのが、 VPN ファンの誰もが憧れる2拠点のレイヤー2接続による完全同一 LAN 化です。最近かなり力づくですがその設定ができたので、同じ悩みを抱えたの人のためにここに設定例を載せてみます。 対象ファームウェアは 1.9.1 です。また使った macOS のバージョンは macOS Sierra 10.12.3 で、ソフトイーサは 4.22 beta です。

レイヤー2接続とは

レイヤー2接続とは、ものすごく乱暴に言えば2拠点が同じ Ethernet (= LAN) に接続されている状態にするということです。

以前の記事の第8項でやった設定では、2拠点は TCP/IP のレベルで接続されているので、レイヤー3接続ということになります。2拠点間がレイヤー2接続されるとなにがいいかというと、 VPN を通じて Ethernet フレームが行き来できるようになります。これにより通常の IP パケット以外の AFP や Bonjour 、そしてマルチキャストやブロードキャスト等が相互に行き来できるようになり、 iTunes / ホームシェアリングや DLNA とかも2拠点を通じて動きます。

この離れた拠点のレイヤー2接続は、昔は大変に難しいことでした。が、近年は VPN の技術が進み、 GRE-bridge や OpenVPN (tap) 、 L2TPv3 、 VPLS 等のレイヤー2 VPN を利用すれば可能です。が、 ルーター等でレイヤー2 VPN を使ってレイヤー2接続する場合には、必ず物理インターフェースである Ethernet のポートと、 ルーター内の VPN のトンネル端を「ブリッジ接続」する必要が出てきます。

ブリッジとは、乱暴に言うと Ethernet フレームをあるインターフェースからあるインターフェースへと全部横流しすることです。しかし EdgeRouter はブリッジが大変に苦手で、スピードがものすごく遅いです。かつブリッジ接続を使う場合は、そのブリッジ接続に関わりのあるすべてのインターフェースで速度が遅くなってしまうというオマケつきで、普通にインターネットする場合のスピードもついでに遅くなってしまいます。ハードウェアオフロードもオフになってしまいます。

自分も試しに GRE-bridge で自宅と実家をレイヤー2接続してみましたが、実家のインターネットが如実に遅くなり苦情が出ました。また GRE は小さい MTU の扱いが苦手と聞きます。レイヤー2接続は速度と遅延の少なさが非常に重要なので、この方法はどうも最適解ではなさそうです。しかし、どうしてもレイヤー2接続は諦められない。でも遅いのはイヤだ。私はしばらく悩みました。

じゃあどうするか

如何せん EdgeRouter がブリッジが不得意なので、プライドを捨てブリッジの得意な人にやってもらうことにしました。というわけで、世界で1番ブリッジ接続が得意なことで有名な ソフトイーサ でやってみることにしました。 EdgeRouter のフォーラムなんかを見ると、 Debian 用にコンパイルして EdgeRouter にインストールしちゃっている人もいるようですが、かなり CPU パワーの必要な処理なので、残念ながらあまり EdgeRouter 上ではパフォーマンスが出ないようです。 Rasberry Pi もしかり。というわけで素直に Mac mini を実家と自宅に用意して、そこにソフトイーサをインストールすることにしました。

SoftEther とは

ものすごく簡単にものすごく高度な VPN が構築できるソフトウェアです。ほとんどのファイアウォールを通過してしまう強力な接続性、世の中のほぼ全ての競合 VPN を上回るスピード、高スループットのブリッジ、 DDNS や NAT 回避機能 (APN Azure) まで内蔵し、かつフリーウェアとは驚異でしかありません。ただ Mac 版や Linux 版は以前までローカルブリッジがつかえない等フル機能でなく、またドキュメントや管理アプリケーションが手薄なのがネックでした。しかし去年あたりから、ようやく最近ほぼフル機能の Mac 版や Linux 版が出るようになり、そこそこの環境が整いました。(まだドキュメント等は大幅に手薄ですが・・)

概要

今回やることはこんな感じです。

各拠点にそれぞれ Mac mini をソフトイーサ駆動用に設置します。 Mac mini にはそれぞれ Thunderbolt Ethernet アダプタ接続して Ethernet ポートが1台につき2つとなるようとします。ソフトイーサは各拠点でそれぞれ仮想 HUB を作成し、 Thunderbolt Ethernet ポートとそれぞれローカルブリッジ接続します。拠点1のソフトイーサはサーバーとなり、仮想 HUB にアクセスしていいユーザーアカウントを作成します。拠点2でのソフトイーサはブリッジ用となり、拠点2の仮想 HUB から拠点1の仮想 HUB へ作成したアカウントでカスケード接続(つまり仮想 HUB 同士をまたブリッジ接続すること)を行います。ものすごく乱暴に概略図を書くとこんな感じです。

以上のようなやり方で、拠点1と拠点2の LAN がブリッジでレイヤー2接続され、晴れて Ethernet フレームが拠点間を同一の LAN として行き来するようになります。

用意したもの

  1. Mac mini x2
  2. Apple Thunderbolt – ギガビット Ethernet アダプタ x2
  3. LAN ケーブル x4

レイヤー2接続は速度や遅延が重要なので、今回は極力有線にします。ソフトイーサをローカルブリッジを用いた拠点間接続 VPN で使う場合は、通常の Ethernet ポートの他にローカルブリッジ用の Ethernet ポートを増設するのが推奨されるようなので、 Thunderbolt Ethernet アダプタを追加しました。

ちなみに、下記の方法をとれば、 Mac でも内蔵 Ethernet ポートのみでローカルブリッジが実現できるようです。

SoftEther VPNをMacでローカルブリッジする

下準備

各拠点に1台ずつ Mac mini を設置します。 Thunderbolt – ギガビット Ethernet アダプタを接続し、内蔵の Ethernet ポートとアダプタの Ethernet ポートをそれぞれ EdgeRouter の、同じ switch0 に属してる Ethernet ポートに接続します。

EdgeRouter のポートが足りない場合はスイッチングハブを使ってポートを増やすとよいでしょう。Mac mini は基本的な設定を済ませておいて、管理者ユーザーが画面共有で遠隔地からリモートで操作できるようにしておきましょう。

ただし、 IPsec や L2TP がうまく動かなくなるので、どこでも My Mac は必ずオフにしましょう。どこでも My Mac がなくても、操作したい端末の IP アドレスさえわかれば、画面共有は使えます。

macOS Sierra: 画面共有を設定して使用する

macOS Sierra: どこでも My Mac を使う

そして、2拠点がレイヤー2接続されることになるので、両拠点の EdgeRouter の LAN 側の IP アドレスをそのように調節します。こういう場合基本的には両拠点をまったく同じネットワークアドレス(192.168.1.0/24 等)にしてしまうことが多いです。しかし今回は両拠点の LAN で稼働するマシンが 60 台程度あり、 IP アドレスを変更したり重複しないように確認したりが面倒だったので、ネットワークアドレスは同じにせず、サブネットマスクを変えて2拠点が同一サブネット扱いになるようにしました。

EdgeRouter 1 EdgeRouter 2
LAN 側 IP アドレス (Switch0) 192.168.1.1/22 192.168.2.1/22
DHCP サブネットマスク 192.168.1.0/22 192.168.2.0/22
相手側 LAN への Static Route 削除 削除
UPnP2 / Block 4500 Port 192.168.1.0/22 192.168.2.0/22

各拠点の別々のサブネットをそのまま使うので、各拠点の端末に DHCP で割り当てている固定 IP アドレスや、 L2TP 用の IP アドレスプールに変更は必要ないはずですが、一応確認しておくといいかもしれません。

TCP/IP で通信をする端末はサブネットマスクによって相手先が同一 LAN にいるか、それとも同一 LAN にいないのでルーターにパケットを送るかを決定します。ウェブでも書籍でも様々に説明されていることですが、サブネットマスクの違いによる「同一の LAN」とみなされる範囲の違いをものすごく簡単にまとめるとこうなります。

例1 (192.168.1.1/24) 例2 (192.168.1.1/22)
IP アドレス 192.168.1.1 192.168.1.1
サブネットマスク 255.255.255.0 255.255.252.0
ネットワークアドレス 192.168.1.0/24 192.168.0.0/22
同一 LAN の IP アドレス範囲 192.168.1.1 – 192.168.1.254 192.168.0.1 – 192.168.3.254

このようにサブネットマスクをうまく調節することによって、ネットワークアドレスが違っていても、2拠点を同一の LAN と見なすように設定することができます。ですが、この2拠点が相互に通信できるようになるのはソフトイーサの設定が済んでからです。ここまでの場合、いくらサブネットを調節したとはいえ、両拠点間でレイヤー2パケット送受信するしくみがないうえに、両拠点間を結ぶ IPsec のレイヤー3接続トンネルを使う static routing の設定を削除してしまったので、一時的に両拠点は一切通信ができなくなります。なので、ここからは適宜 L2TP を使って設定を進めてください。

つづいて、ソフトイーサが必要なポートを使えるようポートフォワードの設定をします。 Mac mini には下記のように固定プライベート IP アドレスを割り振り、内蔵 Ethernet の IP アドレスに対して 5555番をポートフォワードします。

Mac mini 1 Mac mini 2
内蔵 Ethernet 192.168.1.101 192.168.2.101
Thunderbolt Ethernet 192.168.1.102 192.168.2.102
EdgeRouter 1 EdgeRouter 2
Original Port 5555 5555
Protocol Both Both
Forward-to address 192.168.1.101 192.168.2.101
Forward-to port 5555 5555
Description SoftEther SoftEther

これで WAN 側からソフトイーサが接続してきた時に、 LAN 側の Mac mini 内のソフトイーサにパケットが届くことになります。実はサーバーにならない側のソフトイーサには不要な設定ですが、なんとなく揃えてみます。後でサーバーにしたくなるかもしれないですし。

最後にソフトイーサがローカルブリッジとしてブリッジ接続することになる、 Thunderbolt Ethernet ポートのポート名を調べます。アップルメニューの「この Mac について」を選び、システムレポートボタンを押します。そのレポートで「ネットワーク」の「場所」欄を見るとポート名が出てます。かなりの確率で Thunderbolt Ethernet は en5 であるようです。

Mac mini 1 Mac mini 2
内蔵 Ethernet en0 en0
Thunderbolt Ethernet en5 en5

SoftEther のインストール

さて、それでは Mac mini にソフトイーサをインストールしてみます。 インストーラやドキュメント類が全然整備されていませんので、色々調べながら慎重に進めます。

  1. Xcode の Command Line Tool をインストール

    SoftEther を make する際に必要になるライブラリをインストールするため、 Xcode の Command Line Tool をインストールします。実は SoftEther を make した時に勝手にインストールされたので、わざわざインストールしなくてもいいかもしれません。下記のページなどにやり方が書いてあります。

    macOS Sierra に Xcode Command Line Tools をインストールする

  2. SoftEther のダウンロード

    SoftEther のウェブページから、 “SoftEther VPN Server” Mac OS X (Intel x64) 版 4.22 をダウンロードします。拡張子「.tar.gz」のファイルがダウンロードされるはずです。

  3. ファイルの伸張とコンパイル

    ターミナルを開き、下記のコマンドを入力します。ファイルは、ダウンロードフォルダにダウンロードしたとします。

    cd ~/Downloads/
    tar zxvf softether-vpnserver-v4.22-9634-beta-2016.11.27-macos-x64-64bit.tar.gz
    cd vpnserver
    make
    

    ここで使用許諾への同意を尋ねられます。またその後動作環境のチェックも行われます。「すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。」と表示されれば合格です。詳しくは下記を参照してください。

    7.3 Linux へのインストールと初期設定

    ちなみにソフトイーサを日本語で動作させたい場合は、同じフォルダ内の “lang.config” ファイルを書き換えます。

  4. ファイルの移動とアクセス権の設定

    ファイルを移動し、 root 以外で実行されないようアクセス権を設定します。

    cd ..
    sudo mv vpnserver /usr/local/
    cd /usr/local/vpnserver/
    sudo chmod 600 *
    sudo chmod 700 vpncmd
    sudo chmod 700 vpnserver
    
  5. 動作確認

    では試しに SoftEther VPN Server を起動してみましょう。フル機能で動作させるには root 権限で起動させます。

    sudo /usr/local/vpnserver/vpnserver start
    

    きちんとインストールされていれば、 SoftEther が起動します。確認したら一旦止めます。

    sudo /usr/local/vpnserver/vpnserver stop
    
  6. ソフトイーサをバックグラウンドプロセスとして動作するよう設定

    ソフトイーサをユーザーがログインしようがしまいが Mac が起動すると同時に root 権限でバックグラウンドで動作するよう設定します。色々 script をいじるのは大変なので、 Lingon X というアプリを使います。

    Lingon X を起動
    ツールバーの「+」ボタンを押す
    User を root にする
    Name に適当に「 com.lingon.softether.helper 」等を入力
    Run に「 /usr/local/vpnserver/vpnserver start」を入力
    テストボタンを押して動作することを確認
    「 At stratup and when saving 」にチェック
    「 Always 」にチェック
    「 Save 」ボタンを押す
    

    これで終わりです。テストしたので、またソフトイーサが動作しているはずです。

  7. Macを再起動して、再起動後ソフトイーサが起動することを確認

    文字通り再起動して、その後起動コマンドを入力せずともソフトイーサが動作していることを確認します。動いてなければ Lingon X での設定がうまくいってないかもしれません。

  8. ソフトイーサ管理マネージャをインストール

    こんどはソフトイーサの設定のための GUI アプリケーションをインストールし、動作しているか確かめます。

    SoftEther Server Manager for Mac OS X をダウンロード
    伸張し、アプリケーションフォルダに置き、起動
    localhost へ接続する接続設定を作り、 ポート 5555 番で SoftEther VPN Server へ接続
    管理者パスワードを設定
    

    ポートは 5555 番にしましょう。この管理マネージャだけを解説したドキュメントがなかなかありませんが、下記ページを見ると初回接続時のやり方が少しだけ載ってます。

    7.2 Windows へのインストールと初期設定

    上記をそれぞれの Mac で行なって、2台の Mac でソフトイーサが起動している状態にします。

SoftEther の設定

さて、それではソフトイーサを設定して拠点間をレイヤー2接続してみます。ここでは2台の Mac にインストールした SoftEther VPN Server のうち、1つをサーバーとして設定、もう1つをサーバーにカスケード接続する VPN Bridge として設定します。下記2つのページを参考にしました。

拠点間接続 VPN

10.5 拠点間接続 VPN の構築 (ブリッジ接続を使用)

3.4 仮想 HUB の機能

2台の Mac での設定は、それぞれの Mac にソフトイーササーバ管理マネージャーをインストールして、画面共有経由でログインしてやってもいいですし、第3の Mac に管理マネージャーをインストールして、両方の Mac の IP アドレスを指定した接続設定を作って、 L2TP 経由で接続してやってもいいです。

  1. サーバー側の設定
    簡易セットアップで「拠点間 VPN サーバーまたはブリッジ」にチェック
    「多拠点からの接続を受け入れる VPN Server」を選択
    仮想 HUB を作成
    ローカルブリッジを仮想 HUB と「 en5 」との間で作成
    カスケード接続用のユーザーを作成
    

    確かこんな感じでした。 VPN Azure や DDNS は、もうすでに EdgeRouter で DDNS が設定してあって、かつ 5555 番のポートフォワードも問題ないようであれば不要です。

  2. ブリッジ側の設定
    簡易セットアップで「拠点間 VPN サーバーまたはブリッジ」にチェック
    「各拠点に設定する VPN Bridge」を選択
    仮想 HUB を作成
    ローカルブリッジを、仮想 HUB と「 en5 」との間で作成
    サーバーへのカスケード接続を仮想 HUB 上に設定
    (サーバーで設定したユーザー名、サーバーの DDNS 等でのドメイン名、ポート 5555 番で設定)
    カスケード接続へセキュリティーポリシーを設定
    (DHCPパケットをフィルタリングにチェック)
    

こんな感じです。高度なレイヤー2 VPN があっけないほど簡単に接続されてしまうのでびっくりです。

仕上げ

さて、あと少し。このままでは実は Policy Based Routing / Domain Based Routing の項で設定した tun0 を利用したルーティングが、ソフトイーサが稼働してない時は動作しなくなってしまいます。理由を簡単に言えば、こんな感じかと思います。

  1. 拠点1の 192.168.1.0 内の端末 192.168.1.5 から Policy Based Routing 対象のサイトにアクセス
  2. 行きのパケットは、拠点1のルーターが tun0 を通るようルーティングする
  3. そして tun0 のトンネルを抜け、拠点2のルーターから目的のサイトに到達
  4. 帰りのパケットは拠点2のルーターに届く
  5. 帰りのパケットの目的地は 192.168.1.5 だが、それは拠点2と同一サブネット扱いなので、拠点2のルーターは tun0 に戻さず、どこか LAN 内にいるだろうとパケット送り出すも、 SoftEther が動いてないので 192.168.1.5 にはたどり着かず・・

さて、これをどうやって帰りも必ず tun0 を通るようにするかというと、行きのトンネルを通るときに IP マスカレードして、トンネルの IP アドレスから送信したように見せればいいわけです。つまり、

  1. 拠点1の 192.168.1.0 内の端末 192.168.1.5 から Policy Based Routing 対象のサイトにアクセス
  2. 行きのパケットは、拠点1のルーターが tun0 を通るようルーティングする
  3. かつ拠点1のルーターは IP マスカレードによって、パケットの送信元を tun0 の IP アドレスに変換
  4. そして tun0 のトンネルを抜け、拠点2のルーターから目的のサイトに到達する
  5. 帰りのパケットは拠点2のルーターに届く
  6. 帰りのパケットの目的地は tun0 なので、拠点2のルーターは tun0 にパケットを戻す
  7. 拠点1のルーターはマスカレードの記録を元に、パケットを 192.168.1.5 に戻す

となるわけです。これでソフトイーサが動作していなくても、トンネルを使ったルーティングが常に動作するようになります。

それでは自宅側のルーターで tun0 に対してマスカレードを設定します。

自宅ルーターのみ設定
Description: masquerade for tun0
Outbound Interface: tun0
Translation: Use Masquerade
Protocol: All protocols

これを応用すれば、ソフトイーサ無しでも両拠点のルーターにアクセスできるようになります。このマスカレードを両拠点で tun0 に対して設定し、その tun0 の両端の IP アドレス (192.168.122.1 および 192.168.122.2) を使うだけです。

さらに、 SoftEther によって Bonjour は何もしなくても両拠点で一体的に動作するので、 mDNS Reflector は両ルーターで disable にしてしまってよいでしょう。

おわりに

というわけで、 SoftEther VPN Server の Mac での常駐化と拠点間 L2 VPN 接続でした。いかがでしたでしょうか。

すべて EdgeRouter で完結しないのは残念ですが、ソフトイーサのおかげで EdgeRouter 自身はブリッジ接続から解放され、結果としてルーターとして高速なスループットを保ちながら L2 VPN による2拠点の一体化ができようになりました。

ちなみにこの環境を実現するのに、下記のものは特に必要ありませんでした。特に何もせず UDP 高速化も動作しています。

  • UDP 高速化を動かすための エフェメラルポート等の設定
  • TUN / TAP
  • Secure NAT
  • SoftEther の DDNS (EdgeRouter のを使用)
  • VPN Azure (EdgeRouter でポートフォワード)

お疲れ様でした。今回 static routing は削除しましたが、以前設定した IPsec/GRE 自体のトンネルは生きてるので、 domain based routing は変わらず動作しています。ただ2拠点間の通信が、レイヤー3レベルの static routing でなくてレイヤー2レベルのソフトイーサブリッジ経由になっている、ということになります。

The post EdgeRouter X – 番外編1. Mac と SoftEther で拠点間 L2 VPN を構築する appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-s1-l2-vpn-with-softether/feed/ 0 8475
EdgeRouter X – 11. 自宅と実家の2つの LAN の Bonjour を一体化する ( Wide Area Bonjour / Avahi ) https://yabe.jp/gadgets/edgerouter-x-11-wide-area-bonjour/ https://yabe.jp/gadgets/edgerouter-x-11-wide-area-bonjour/#comments Sun, 09 Oct 2016 08:51:52 +0000 http://yabe.jp/?p=8261 さて、なかなか高性能なルーターを買って、色々設定ができたからちょっと書き留めてみるかな、ぐらいなノリで始めたらものすごく膨大になってしまったこのシリーズも、今回が最後です。正直ホッとしてますが、張り切っていきましょう。今回は拠点間 VPN と、 EdgeRouter 内蔵の Bonjour / mDNS ソフトウェア Avahi を使って、自宅と実家の LAN の Bonjour を一体化してみます。これにより実家の Mac や Time Capsule に簡単にアクセスできるようになり、設定や画面共有が楽になります。 対象ファームウェアは 1.9.1 です。 Bonjour とは Bonjour とは、 Zeroconf をベースにした LAN 内の端末を何の設定もせず相互に発見できるようにする仕組みです。 LAN 内の Apple TV や iTunes が他の端末から見えたり、 AirPlay スピーカーから音が出たりするのは、この技術のおかげです。ただ基本的には同じ LAN 内のみに限られます。今回はそれを VPN 経由で転送し、あたかも2つの LAN が Bonjour 上では1つになったようにしてみます。 Avahi とは Avahi とは、オープンソースの Bonjour / mDNS ソフトウェアです。 Linux の世界で Bonjour に対応させたいときに使います。 EdgeRouter にも内蔵されており、 mDNS reflector という機能を有効にすると起動します。基本的には同じルーターにつながる VLAN 等に Bonjour を転送し、 VLAN 同士で Apple TV を使ったりするようにする機能ですが、少し設定を変えると拠点間 VPN でも動くことがわかったのでやってみました。ちなみに単に VLAN 同士で Bonjour を転送する場合、ファームウェア 1.8.0 から mdns repeater というさらに簡単な機能も追加されています。 Wide Area Bonjour では設定してみましょう。まず両拠点の ER-X で Avahi のコンフィグファイル /etc/avahi/avahi-daemon.conf を変更し、 VPN 等の Point-to-point インタフェースを受け付けるようにします。また Wide Area bonjour を有効にします。 /etc/avahi/avahi-daemon.conf を編集 allow-interfaces=switch0, tun0 を追加 allow-point-to-point=yes を追加 […]

The post EdgeRouter X – 11. 自宅と実家の2つの LAN の Bonjour を一体化する ( Wide Area Bonjour / Avahi ) appeared first on yabe.jp.

]]>
さて、なかなか高性能なルーターを買って、色々設定ができたからちょっと書き留めてみるかな、ぐらいなノリで始めたらものすごく膨大になってしまったこのシリーズも、今回が最後です。正直ホッとしてますが、張り切っていきましょう。今回は拠点間 VPN と、 EdgeRouter 内蔵の Bonjour / mDNS ソフトウェア Avahi を使って、自宅と実家の LAN の Bonjour を一体化してみます。これにより実家の Mac や Time Capsule に簡単にアクセスできるようになり、設定や画面共有が楽になります。 対象ファームウェアは 1.9.1 です。

Bonjour とは

Bonjour とは、 Zeroconf をベースにした LAN 内の端末を何の設定もせず相互に発見できるようにする仕組みです。 LAN 内の Apple TV や iTunes が他の端末から見えたり、 AirPlay スピーカーから音が出たりするのは、この技術のおかげです。ただ基本的には同じ LAN 内のみに限られます。今回はそれを VPN 経由で転送し、あたかも2つの LAN が Bonjour 上では1つになったようにしてみます。

Avahi とは

Avahi とは、オープンソースの Bonjour / mDNS ソフトウェアです。 Linux の世界で Bonjour に対応させたいときに使います。 EdgeRouter にも内蔵されており、 mDNS reflector という機能を有効にすると起動します。基本的には同じルーターにつながる VLAN 等に Bonjour を転送し、 VLAN 同士で Apple TV を使ったりするようにする機能ですが、少し設定を変えると拠点間 VPN でも動くことがわかったのでやってみました。ちなみに単に VLAN 同士で Bonjour を転送する場合、ファームウェア 1.8.0 から mdns repeater というさらに簡単な機能も追加されています。

Wide Area Bonjour

では設定してみましょう。まず両拠点の ER-X で Avahi のコンフィグファイル /etc/avahi/avahi-daemon.conf を変更し、 VPN 等の Point-to-point インタフェースを受け付けるようにします。また Wide Area bonjour を有効にします。

/etc/avahi/avahi-daemon.conf を編集
allow-interfaces=switch0, tun0 を追加
allow-point-to-point=yes を追加
enable-wide-area=yes を追加

設定ファイルにこれらの項目がすでにある場合は追加不要です。大抵は # が付いてコメントアウトされていると思うので、その # を取って、必要なポート等をここにあるように変更してください。

その後は Avahi を起動するために両拠点で mDNS reflector を有効にします。

コンフィグツリーの service > mdns > reflector を有効にする
preview ボタンを押す
apply ボタンを押す

もちろん CLI で

set service mdns reflector

と入力してもオーケーです。

さて、設定がうまくいくと、相互の LAN の Bonjour 対応機器が Mac や iPhone の画面に現れます。 Airmac ユーティリティで両方の LAN 内の Time Capsule が表示されたり、 Finder のサイドバーに両方の LAN の Mac が表示されたりします。

screen-shot-2016-10-09-at-1-40-17-am

screen-shot-2016-10-09-at-1-07-53-am

実は画面共有は iCloud アカウントがあれば簡単にできるようになってしまったので、あまりこの方法のメリットはないかもしれません。が、2つの LAN が1つになっているのを見るのはいいものです。

今回下記のスレッドを参考にしました。

mDNS/bonjour forwarding

mdns question

EdgeRouter X – AirPlay Issues

Bonjour/mDNS over IPSEC VPN – Avahi

さて大量の記事にうんざりしておられるかと思いますが、それでもこの $50 のルーターがものすごく多機能かつ高性能だということが伝わったのではないかと思います。家のルーターをほんの少しよくしようという方から、バリバリ VPN を使ってみたいという方まで、本当にオススメです。

以上、本当に本当にお疲れ様でした。

The post EdgeRouter X – 11. 自宅と実家の2つの LAN の Bonjour を一体化する ( Wide Area Bonjour / Avahi ) appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-11-wide-area-bonjour/feed/ 1 8261
EdgeRouter X – 10. 海外から見られないサイトを見る2 ( Domain Based Routing / Dnsmasq ) https://yabe.jp/gadgets/edgerouter-x-10-domain-based-routing/ https://yabe.jp/gadgets/edgerouter-x-10-domain-based-routing/#comments Sun, 09 Oct 2016 07:56:05 +0000 http://yabe.jp/?p=8257 さて今回は、対象のサイトを VPN トンネル経由でルーティングする際に、 IP アドレスでなくドメイン名を使う手法で設定してみます。 EdgeRouter 内蔵の軽量 DNS サーバー Dnsmasq を使います。

The post EdgeRouter X – 10. 海外から見られないサイトを見る2 ( Domain Based Routing / Dnsmasq ) appeared first on yabe.jp.

]]>
さて今回は、対象のサイトを VPN トンネル経由でルーティングする際に、 IP アドレスでなくドメイン名を使う手法で設定してみます。 EdgeRouter 内蔵の軽量 DNS サーバー Dnsmasq を使います。 対象ファームウェアは 1.9.1 です。

この機能を使うと、対象のサイトのドメイン名を指定するだけで、自動的にそのサイト向けのトラフィックが拠点間 VPN を通るようになり、 L2TP VPN をオンにしたりオフにしたりとか面倒な作業をすることなく、あたかもその地域にいるかのように LAN 内のすべての端末から地域制限のかかったサイトが見られるようになります。消費者が買えるルーターでこの機能を備えてるのは世界でも EdgeRouter だけのようです。 $49 でそんなルーターが買えてしまうなんて、ほんと末恐ろしい世の中になったものです。

Dnsmasq とは

Dnsmasq とは主に小規模ネットワーク向けの DNS サーバー兼 DHCP サーバーソフトウェアです。 BIND 等に比べてものすごく軽量で、ものすごく設定が簡単です。

今回はこのような作業になります。

  1. Firewall で 空のアドレスグループを作る
  2. Dnsmasq に対象ドメイン名の IP アドレスをアドレスグループに記録させる
  3. Firewall で前回と同じく modify ルールを設定
  4. さらに Dnsmasq で、対象ドメイン名にアクセスする際は日本の DNS を使うよう設定する

これで、ドメイン名によるルーティング制御が可能になります。これは Domain Based Routing と呼んでしまって差し支えないでしょう。対象のサイトの IP アドレスが変わっても Dnsmasq がどんどんアドレスグループに記録していくので安心です。

それでは今回は TVer.jp を例に設定してみます。 TVer.jp はテレビ局各局のオンデマンド配信サービスを合わせたサイトなので、 VPN トンネル経由でルーティングしなければならないサイトが各局別にたくさんあり、かつ一定時間で IP アドレスが変わるものが結構あります。前回の IP アドレスベースのルーティングではそれら全てを押さえるのはとても大変ですが、ドメイン名ベースのルーティングならなんとかなりそうです。なんども言うようですが、これらは ER-X の潜在能力の高さを示す設定例です。地域制限のかかったサイトはその地域でみるようにしましょう。

Firewall で 空のアドレスグループを作る

Dnsmasq が IP アドレスを記録するための空のアドレスグループをつくります。名前は tver-ipset にしました。

set firewall group address-group tver-ipset
set firewall group address-group tver-ipset description tver.jp

Dnsmasq に IP アドレスをアドレスグループに記録させる

続いて Dnsmasq が対象のサイトの IP アドレスを tver-ipset アドレスグループに記録するようオプションを設定します。オプションの書式は ipset=/ドメイン名/アドレスグループ です。ちなみにドメイン名を “xxxx.com” と記述した場合は、”*.xxxx.com” が全て含まれることになります。今回は TVer.jp 内のビデオをストリーミングしてそうなドメイン名を列挙しました。ついでに Dnsmasq のキャッシュサイズを増やします。

## キャッシュサイズを増やす
set service dns forwarding cache-size 5000

## Dnsamasq が自分自身を DNS サーバーとして参照できるようにする (もう設定してあれば不要)
set service dns forwarding listen-on lo

## IP アドレスを記録するドメイン名を設定
set service dns forwarding options ipset=/tver.jp/ntv.co.jp/tv-asahi.co.jp/tbs.co.jp/fujitv.co.jp/presentcast.co.jp/brightcove.com/brightcove.net/streamhub.tv/stream.ne.jp/tver-api-data.s3.amazonaws.com/tver-ipset

Firewall で前回と同じく modify ルールを設定

それでは前回作った Modify の route_tun0 にルールをを追加します。

set firewall modify route_tun0 rule 20
set firewall modify route_tun0 rule 20 action modiofy
set firewall modify route_tun0 rule 20 description TVer.jp
set firewall modify route_tun0 rule 20 destination group address-group tver-ipset
set firewall modify route_tun0 rule 20 modify
set firewall modify route_tun0 rule 20 modify table 1

Dnsmasq に特定の DNS を使うよう設定する

対象サイトにアクセスする際に、念のため Dnsmasq に日本の DNS を使うように指示します。オプションの書式は server=/ドメイン名/DNSサーバーの IP アドレス です。ここでは実家のインターネットプロバイダーの DNS が 208.67.222.123 だったとしますが、お使いのプロバイダーに合わせて変更してください。

## 同じドメイン名のサイトで日本の DNS を使うよう設定
set service dns forwarding options server=/tver.jp/ntv.co.jp/tv-asahi.co.jp/tbs.co.jp/fujitv.co.jp/presentcast.co.jp/brightcove.com/brightcove.net/streamhub.tv/stream.ne.jp/tver-api-data.s3.amazonaws.com/208.67.222.123

これで終了です。サイトにアクセスしてみる前に、 Dnsmasq がきちんと IP アドレスを記録するため、ネットワークユーティリティ等の Lookup を使って、予めアクセスしそうなドメインを lookup しておくとスムーズにアクセスできます。でなければサイトが正常に表示されるまで数回リロードが必要だったりします。きちんと設定できているのにうまく表示されない場合は、一度 cookie を全部消去して見るといいでしょう。

今回参考にしたのは下記のスレッドです。

Dnsmasq Ipset

以上、お疲れ様でした。

The post EdgeRouter X – 10. 海外から見られないサイトを見る2 ( Domain Based Routing / Dnsmasq ) appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-10-domain-based-routing/feed/ 1 8257
EdgeRouter X – 9. 海外から見られないサイトを見る1 ( Policy Based Routing ) https://yabe.jp/gadgets/edgerouter-x-09-policy-based-routing/ https://yabe.jp/gadgets/edgerouter-x-09-policy-based-routing/#comments Sun, 09 Oct 2016 05:25:50 +0000 http://yabe.jp/?p=8083 さてこの項では、せっかく設定した拠点間 VPN を活用して、海外から見られないサイト等を自動的に VPN トンネル経由でアクセスするよう Policy Based Routing の設定します。

The post EdgeRouter X – 9. 海外から見られないサイトを見る1 ( Policy Based Routing ) appeared first on yabe.jp.

]]>
さてこの項では、せっかく設定した拠点間 VPN を活用して、海外から見られないサイト等を自動的に VPN トンネル経由でアクセスするよう Policy Based Routing の設定します。 対象ファームウェアは 1.9.1 です。

Policy Based Routing とは

目的のサイトや LAN 内の端末の IP アドレス、ポート番号等に応じて、インターネットにアクセスする際の経路を制御するやり方です。今回は、海外から見られないサイトを、前回設定した拠点間 VPN 経由でルーティングするよう設定してみます。これにより、設定したサイトに自宅からアクセスすると、自動的に VPN トンネル通って実家経由でアクセスするようになり、海外からでも見られるようになります。

海外から見られないサイトを見る際は、 L2TP などのリモートアクセス VPN でその地域のサーバーに一旦接続しておいて見るのが主流ですが、 L2TP はすべてのインターネットアクセスを VPN 経由にしてしまうので、接続中は関係ないサイトを見る際にもスピードが遅くなってしまいます。また、使う時には毎回接続・切断をしなければならないこと、 L2TP を使う端末全てであらかじめ L2TP の設定をしておかないと使えないのが面倒です。

一方、 Policy Based Routing をルーターで設定してしまえば、こんなメリットがあります。

L2TP の接続切断が不要
一度設定してしまえば、ルーターが自動的にそのサイトを VPN トンネル経由でルーティングするので、リモートアクセス VPN の接続・切断が不要です
LAN 内の端末に設定不要
ルーターが自動的にルーティングするので、 LAN 内の端末に L2TP の設定等をする必要がありません
Apple TV や PS4 でも使える
L2TP の設定ができない Apple TV や PS4 などの端末でもサイトに VPN 経由でアクセスできるようになります
スピードが落ちない
全ての通信が VPN 経由になってしまい、他のサイトを見るときもスピードが速なってしまう L2TP に対し、他のサイトにアクセスする際は VPN 経由でないのでスピードの低下がありません

ちなみにこれらすべてはあくまで ER-X の潜在能力の高さを示す設定例であって、実際の使用を推奨しているわけではありません。地域制限のかかっているサイトは、その地域内で見ましょう。

今回はこのような作業になります。

  1. 対象となるサイトの IP アドレスを調べる
  2. その IP アドレスで Policy Based Routing を設定する

今回は私の大好きな radiko.jp を例として設定してみようと思います。繰り返しますがこれは設定例であって、実際の使用を推奨しているわけではありません。

radiko


対象となるサイトの IP アドレスを調べる

まずは Mac の「ネットワークユーテリティ」を使って、対象となるサイトの IP アドレスを調べます。

Mac 画面右上の虫眼鏡マークから「ネットワークユーテリティ」を検索
Lookup タブをクリック
"radiko.jp" を入力
Lookup ボタンをクリック

screen-shot-2016-10-08-at-9-03-48-pm

これで radiko.jp の IP アドレスが 203.211.199.120 だとわかりました。


Policy Based Routing を設定する

続いて、この IP アドレスで Policy Based Routing を設定してみます。使うのは Firewall の modify コマンドです。

## 設定モードに入る
configure

## Firewall のアドレスグループ "radiko" を作成
set firewall group address-group radiko
set firewall group address-group radiko address 203.211.199.120
set firewall group address-group radiko description radiko.jp

## 実家経由 ( tun0 もしくは vtun0 ) でルーティングするルーティングテーブルを作成
set protocols static table 1
set protocols static table 1 interface-route 0.0.0.0/0
set protocols static table 1 interface-route 0.0.0.0/0 next-hop-interface tun0

## Firewall のルールセット "route_tun0" を作成
set firewall modify route_tun0

## "radiko" のアドレスグループが目的地の時ルーティングテーブル 1 を使うルールを設定
set firewall modify route_tun0 rule 10
set firewall modify route_tun0 rule 10 action modiofy
set firewall modify route_tun0 rule 10 description radiko.jp
set firewall modify route_tun0 rule 10 destination group address-group radiko
set firewall modify route_tun0 rule 10 modify
set firewall modify route_tun0 rule 10 modify table 1

## LAN 側インターフェース switch0 の FireWall の入力側に modify ルールの route-tun0 を設定
set interfaces switch switch0 firewall in modify route_tun0

## 設定を有効化、保存
commit
save

これで Policy Based Routing の設定完了です。設定が完了した瞬間から radiko.jp には tun0 経由でアクセスするようになり、結果的にサイトに日本経由でアクセスしていることになるので、内容が見られるようになります。もちろん LAN 内の端末なら iPhone からでも Mac からでも見られるようになります。

また対象となるサイトに関係なく、 Apple TV や PS4 等 L2TP の設定ができない端末をいつも強制的に tun0 経由でアクセスさせるようにするには、下記のようなルールを追加します。
ここでは例として PS4 に割り当てた固定アドレスを 192.168.1.51 とします。

configure
set firewall group address-group PS4
set firewall group address-group PS4 address 192.168.1.51
set firewall group address-group PS4 description PS4
set firewall modify route_tun0 rule 20
set firewall modify route_tun0 rule 20 action modiofy
set firewall modify route_tun0 rule 20 description PS4
set firewall modify route_tun0 rule 20 source group address-group PS4
set firewall modify route_tun0 rule 20 modify
set firewall modify route_tun0 rule 20 modify table 1
commit
save

つまり、アクセス元の IP アドレスによって tun0 にルーテイングされるよう Firewall の modify の条件を設定する、というわけです。

しかしこの方法は万能ではなく、例えば radiko.jp の IP アドレスが変わってしまうとまた見られなくなっていまいます。もちろん変わるたびにその IP アドレスを先ほどのアドレスグループに追加すればいいのですが、あまりにその頻度が多かったり、変わる IP アドレスが大量だったりすると少々大変です。

そういう場合、 L2TP を使うのも一つの解決策で、この場合すべての通信が L2TP サーバーの置いてある国経由になるので、日本のサーバー経由でアクセスすれば IP アドレスが変わろうがなんだろうが常にきちんとアクセスできます。ただし関係のない他のサイトもすべて速度の遅い L2TP VPN 経由になってしまうのがネックですが。というわけで IP アドレスを調べたり云々がめんどい、という人は素直に L2TP を使った方が楽かもしれません。

しかし実は EdgeRouter には、このような場合に便利な、 Dnsmasq を用いた IP アドレスでなくドメイン名ベースでルーティングする機能があります。これはヤマハやシスコのルーターにもない素晴らしい機能です。次回はその Domain Based Routing を設定してみます。

以上、お疲れ様でした。

The post EdgeRouter X – 9. 海外から見られないサイトを見る1 ( Policy Based Routing ) appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-09-policy-based-routing/feed/ 2 8083
EdgeRouter X – 8. 自宅と実家の2つの LAN を拠点間 VPN でつなぐ ( IPsec ) https://yabe.jp/gadgets/edgerouter-x-08-site-to-site-ipsec/ https://yabe.jp/gadgets/edgerouter-x-08-site-to-site-ipsec/#comments Sat, 08 Oct 2016 09:10:59 +0000 http://yabe.jp/?p=7923 続いて IPsec での拠点間 VPN ( site-to-site VPN ) の設定です。ルーティングできるトンネルが必要なので、 gre を組み合わせて gre over IPsec としました。

The post EdgeRouter X – 8. 自宅と実家の2つの LAN を拠点間 VPN でつなぐ ( IPsec ) appeared first on yabe.jp.

]]>
続いて IPsec での拠点間 VPN ( site-to-site VPN ) の設定です。

EdgeRouter のヘルプ等を見るとまず始めに出てくるのがサブネット方式の設定です。この設定は簡単で手軽に2つの LAN を相互に通信できるようになりますが、この設定はルーティングできるトンネルがないので、これだけでは後述のいつでも地域制限のかかったサイトを見られるようにしたい場合に難があります。

ルーティングできるトンネルを作る場合は GRE を使うのが一般的ですが、この場合は基本的には WAN 側に固定 IP アドレスが必要になります。家庭用のインターネットで固定 IP を持っている人はそうは多くないですよね。しかし、そこは EdgeRouter です。なんとダイナミック IP アドレスでも GRE のトンネルを IPSec の上に張るやり方がありました。ループバックアドレスを使います。この設定が自分の中では最難関で、きちんと動作する設定を見出すのにかなり時間がかかりました。設定できた自分を褒めてあげたいです。対象ファームウェアは 1.9.1 です。

ちなみにルーティングが必要なく、単に2拠点が互いに通信(レイヤー3レベル)できるだけでよければ、サブネット方式として設定すれば簡単に設定できます。

site-to-site IPsec の種類

EdgeRouter では、 site-to-site IPsec を実現するやり方に大きく3つの種類があります。

  1. サブネット方式
  2. VTI
  3. GRE over IPsec

これらのメリットデメリットをまとめるとこんな感じです。

サブネット VTI GRE
設定 簡単 難しい 難しい
ルーティング 不可
ダイナミック IP 対応 非対応 非対応

サブネット方式

ヘルプのページやフォーラム等で一番設定例が多く簡単なのがサブネット方式ですが、これだと2拠点の LAN がただ相互にアクセスできるようになるだけで、トンネル経由のルーティングができません。つまり日本のサイトを見るにはせっかく拠点間 VPN があるというのに L2TP を使わなければならないと言うことです。なので今回は除外です。

VTI

VTI は site-to-site IPsec でルーティングが必要な場合の手段としてこちらもヘルプや設定例をよく見かけますが、 WAN 側の IP アドレスがダイナミックな場合動作しないのと、既存の L2TP サーバーの動作に支障をきたすので、これも除外します。

GRE

残るは GRE です。ルーテイングが必要な場合によく推奨される万能トンネルですが、 EdgeRouter のフォーラムやいろいろなブログ等を見ると基本的には「固定 IP アドレスでしか使えないものだ」とされています。ただしフォーラムで見つけた以下の2つのスレッドで、 ダイナミック IP アドレスでの GRE over IPsec の設定に成功してそうな例をみつけました。どうもヒントはループバックアドレス lo をトンネルの終端に使うことのようです。自分でも試したところ・・動きました!やったー!

Routed IP (VTI or GRE) over IPSec with dynamic peer?

My HowTo on multiple dynamic ospf-gre-ipsec tunnels

と書いてしまうと簡単ですが・・ここの設定にたどりつくまで半年かかりました。設定できた自分を褒めてあげたいです。そんな苦心作を、今日は惜しげも無く公開です。

前提条件

設定の前提となる条件は前回同様です。ダイナミック IP にホスト名と、 GRE が嫌がる条件ばかりです。

自宅 実家
DDNS yaberouter1.duckdns.org yaberouter2.duckdns.org
WAN 側 ポート eth0 pppoe0
WAN 側 IP アドレス ダイナミック / DHCP ダイナミック / PPPoE
LAN 側 ポート switch0 switch0
LAN 側 ネットワーク 192.168.1.0/24 192.168.2.0/24
ループバックアドレス 192.168.112.1/32 192.168.112.2/32
GRE トンネル IP アドレス 192.168.122.1/30 192.168.122.2/30

このような前提条件で、張り切ってダイナミック IP 使用時の GRE over site-to-site IPsec を設定してみます。


自宅側

まずは自宅側 ER-X から CLI で設定します。ループバックアドレスにプライベート IP アドレスを割り振り、それをトンネルの終端に使います。自宅側のトンネルの終端は 192.168.112.1/32 、実家側のトンネルの終端は 192.168.112.2/32 、GRE トンネル自身の IP アドレスは自宅側を 192.168.122.1/30 、実家側を 192.168.122.1/30 としました。 IPsec のシークレットはまたもや secret1 としましたが、任意のものに変更してください。

## 設定モードに入る
configure

## 基本的な IPsec の設定 ( L2TP のところで設定していれば不要 )
set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec nat-traversal enable
set vpn ipsec auto-firewall-nat-exclude enable

## IPsec の ESP/IKE を設定する
set vpn ipsec esp-group ESP-1
set vpn ipsec esp-group ESP-1 compression disable
set vpn ipsec esp-group ESP-1 lifetime 3600
set vpn ipsec esp-group ESP-1 mode tunnel
set vpn ipsec esp-group ESP-1 pfs enable
set vpn ipsec esp-group ESP-1 proposal 1 encryption aes256
set vpn ipsec esp-group ESP-1 proposal 1 hash sha1
set vpn ipsec esp-group ESP-1 proposal 2 encryption 3des
set vpn ipsec esp-group ESP-1 proposal 1 hash md5
set vpn ipsec ike-group IKE-1
set vpn ipsec ike-group IKE-1 key-exchange ikev1
set vpn ipsec ike-group IKE-1 lifetime 3600
set vpn ipsec ike-group IKE-1 proposal 1 dh-group 2
set vpn ipsec ike-group IKE-1 proposal 1 encryption aes256
set vpn ipsec ike-group IKE-1 proposal 1 hash sha1
set vpn ipsec ike-group IKE-1 proposal 1 dh-group 2
set vpn ipsec ike-group IKE-1 proposal 1 encryption aes128
set vpn ipsec ike-group IKE-1 proposal 1 hash sha1

## トンネルの自宅側終端として使うループバックアドレスを設定
set interfaces loopback lo address 192.168.112.1/32

## site-to-site IPsec トンネルを設定
set vpn ipsec site-to-site peer yaberouter2.duckdns.org 
set vpn ipsec site-to-site peer yaberouter2.duckdns.org authentication id yaberouter1.duckdns.org
set vpn ipsec site-to-site peer yaberouter2.duckdns.org authentication mode pre-shared-secret
set vpn ipsec site-to-site peer yaberouter2.duckdns.org authentication pre-shared-secret secret1
set vpn ipsec site-to-site peer yaberouter2.duckdns.org authentication remote-id yaberouter2.duckdns.org
set vpn ipsec site-to-site peer yaberouter2.duckdns.org connection-type initiate
set vpn ipsec site-to-site peer yaberouter2.duckdns.org default-esp-group ESP-1
set vpn ipsec site-to-site peer yaberouter2.duckdns.org description ipsec-1-to-2
set vpn ipsec site-to-site peer yaberouter2.duckdns.org ike-group IKE-1
set vpn ipsec site-to-site peer yaberouter2.duckdns.org dhcp-interface eth0
set vpn ipsec site-to-site peer yaberouter2.duckdns.org tunnel 1
set vpn ipsec site-to-site peer yaberouter2.duckdns.org tunnel 1 allow-nat-networks disable
set vpn ipsec site-to-site peer yaberouter2.duckdns.org tunnel 1 allow-public-networks disable
set vpn ipsec site-to-site peer yaberouter2.duckdns.org tunnel 1 local prefix 192.168.112.1/32
set vpn ipsec site-to-site peer yaberouter2.duckdns.org tunnel 1 remote prefix 192.168.112.2/32

## GRE トンネルを作成
set interfaces tunnel tun0
set interfaces tunnel tun0 address 192.168.122.1/30
set interfaces tunnel tun0 description gre-1-to-2
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 local-ip 192.168.112.1
set interfaces tunnel tun0 mtu 1354
set interfaces tunnel tun0 multicast enable
set interfaces tunnel tun0 remote-ip 192.168.112.2
set interfaces tunnel tun0 ttl 255

## 実家側の LAN にアクセスする時に gre を使うよう Static Route 設定
set protocols static interface-route 192.168.2.0/24 next-hop-interface tun0

## OpenVPN の Static Route は削除しておく
delete protocols static interface-route 192.168.2.0/24 next-hop-interface vtun0

## 設定を保存する
commit
save

## Operational Mode に戻る
exit

つづいて Firewall で GRE を通すようルールを追加します。

ER-X に管理者アカウントでログインし、 Firewall/NAT タブをクリック
Firewall Policies タブをクリック
WAN_LOCAL の Actions ボタンを押し、 Edit Ruleset を選ぶ

Add New Rule ボタンを押す
[Basic]
Description: Allow GRE
Action: Accept
Protocol: Choose a protocal by name > gre
Save ボタンを押す

追加したルールを元からある Allow established/related と Drop invalid state の間に移動する
Save Rule Order ボタンを押す
WAN_LOCAL の設定ウィンドウを閉じる

今回のトンネルではフレッツの PPPoE + IPSec + GRE という環境下で問題が出ないよう MTU をコンサバに 1354 と設定しています。が、念には念を入れて MSS Clamping も MTU に合わせて変更しておきます。 PPPoE や GRE に合わせて色々変えるのも面倒なので、全部のインターフェースに対しまるっと 1314 を設定してやります。

管理画面の Wizard タブをクリック
TCP MSS clamping をクリック
Enable MSS clamping for TCP connections にチェック
Interface Types: All
MSS: 1314
Apply ボタンを押す

実家側

続いて実家の ER-X を CLI で設定します。実家側のトンネルの終端は 192.168.112.2/32 、 GRE トンネル自身の IP アドレスは 192.168.122.2/30 、としました。

## 設定モードに入る
configure

## 基本的な IPsec の設定 ( L2TP のところで設定していれば不要 )
set vpn ipsec ipsec-interfaces interface pppoe0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec nat-traversal enable
set vpn ipsec auto-firewall-nat-exclude enable

## IPsec の ESP/IKE を設定する
set vpn ipsec esp-group ESP-1
set vpn ipsec esp-group ESP-1 compression disable
set vpn ipsec esp-group ESP-1 lifetime 3600
set vpn ipsec esp-group ESP-1 mode tunnel
set vpn ipsec esp-group ESP-1 pfs enable
set vpn ipsec esp-group ESP-1 proposal 1 encryption aes256
set vpn ipsec esp-group ESP-1 proposal 1 hash sha1
set vpn ipsec esp-group ESP-1 proposal 2 encryption 3des
set vpn ipsec esp-group ESP-1 proposal 1 hash md5
set vpn ipsec ike-group IKE-1
set vpn ipsec ike-group IKE-1 key-exchange ikev1
set vpn ipsec ike-group IKE-1 lifetime 3600
set vpn ipsec ike-group IKE-1 proposal 1 dh-group 2
set vpn ipsec ike-group IKE-1 proposal 1 encryption aes256
set vpn ipsec ike-group IKE-1 proposal 1 hash sha1
set vpn ipsec ike-group IKE-1 proposal 1 dh-group 2
set vpn ipsec ike-group IKE-1 proposal 1 encryption aes128
set vpn ipsec ike-group IKE-1 proposal 1 hash sha1

## トンネルの自宅側終端として使うループバックアドレスを設定
set interfaces loopback lo address 192.168.112.2/32

## site-to-site IPsec トンネルを設定
## pppoe0 では例のごとく dhcp-interface が使えない
set vpn ipsec site-to-site peer yaberouter1.duckdns.org 
set vpn ipsec site-to-site peer yaberouter1.duckdns.org authentication id yaberouter2.duckdns.org
set vpn ipsec site-to-site peer yaberouter1.duckdns.org authentication mode pre-shared-secret
set vpn ipsec site-to-site peer yaberouter1.duckdns.org authentication pre-shared-secret secret1
set vpn ipsec site-to-site peer yaberouter1.duckdns.org authentication remote-id yaberouter1.duckdns.org
set vpn ipsec site-to-site peer yaberouter1.duckdns.org connection-type initiate
set vpn ipsec site-to-site peer yaberouter1.duckdns.org default-esp-group ESP-1
set vpn ipsec site-to-site peer yaberouter1.duckdns.org description ipsec-2-to-1
set vpn ipsec site-to-site peer yaberouter1.duckdns.org ike-group IKE-1
set vpn ipsec site-to-site peer yaberouter1.duckdns.org local-address 0.0.0.0
set vpn ipsec site-to-site peer yaberouter1.duckdns.org tunnel 1
set vpn ipsec site-to-site peer yaberouter1.duckdns.org tunnel 1 allow-nat-networks disable
set vpn ipsec site-to-site peer yaberouter1.duckdns.org tunnel 1 allow-public-networks disable
set vpn ipsec site-to-site peer yaberouter1.duckdns.org tunnel 1 local prefix 192.168.112.2/32
set vpn ipsec site-to-site peer yaberouter1.duckdns.org tunnel 1 remote prefix 192.168.112.1/32

## GRE トンネルを作成
set interfaces tunnel tun0
set interfaces tunnel tun0 address 192.168.122.2/30
set interfaces tunnel tun0 description gre-2-to-1
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 local-ip 192.168.112.2
set interfaces tunnel tun0 mtu 1354
set interfaces tunnel tun0 multicast enable
set interfaces tunnel tun0 remote-ip 192.168.112.1
set interfaces tunnel tun0 ttl 255

## 自宅側の LAN にアクセスする時に GRE トンネルを使うよう Static Route 設定
set protocols static interface-route 192.168.1.0/24 next-hop-interface tun0

## OpenVPN の Static Route は削除しておく
delete protocols static interface-route 192.168.1.0/24 next-hop-interface vtun0

## 設定を保存する
commit
save

## Operational Mode に戻る
exit

つづいて Firewall で GRE を通すようルールを追加します。

ER-X に管理者アカウントでログインし、 Firewall/NAT タブをクリック
Firewall Policies タブをクリック
WAN_LOCAL の Actions ボタンを押し、 Edit Ruleset を選ぶ

Add New Rule ボタンを押す
[Basic]
Description: Allow gre
Action: Accept
Protocol: Choose a protocal by name > gre
Save ボタンを押す

追加したルールを元からある Allow established/related と Drop invalid state の間に移動する
Save Rule Order ボタンを押す
WAN_LOCAL の設定ウィンドウを閉じる

こちら側でも MSS Clamping を変更しておきます。

管理画面の Wizard タブをクリック
TCP MSS clamping をクリック
Enable MSS clamping for TCP connections にチェック
Interface Types: All
MSS: 1314
Apply ボタンを押す

さて、これで OpenVPN の時と同じく L2TP 等使わなくても反対側の LAN にアクセスできるようになれば成功です。うまく動いたのであれば OpenVPN の設定は削除してしまえばいいと思います。

しかしこのコマンドを一字一句間違えずに入力できる人っているんでしょうか。こんなコマンドを入力せず使える Mac の素敵さを改めて噛み締めてしまいます。

今回は当然ながらこのページを大いに参考にしました。

EdgeRouter – IPsec Dynamic Site-to-Site VPN using FQDNs

Routed IP (VTI or GRE) over IPSec with dynamic peer?

My HowTo on multiple dynamic ospf-gre-ipsec tunnels

この2つページのおかげで今の自分があると言っても過言ではありません。このスレッドを書いたユーザーの方には厚く御礼申し上げます。そしてこの設定を使えば、家庭用のインターネットを使っているほぼすべての人々に、 GRE over IPsec を使う道が拓けます。

以上、お疲れ様でした。これで峠は越しました。

The post EdgeRouter X – 8. 自宅と実家の2つの LAN を拠点間 VPN でつなぐ ( IPsec ) appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-08-site-to-site-ipsec/feed/ 2 7923
EdgeRouter X – 7. 自宅と実家の2つの LAN を拠点間 VPN でつなぐ ( OpenVPN ) https://yabe.jp/gadgets/edgerouter-x-07-site-to-site-openvpn/ https://yabe.jp/gadgets/edgerouter-x-07-site-to-site-openvpn/#comments Fri, 07 Oct 2016 10:07:39 +0000 http://yabe.jp/?p=7916 さあ、とうとうここまで来ました。私がルーターを買おうと思ったきっかけの1つ、拠点間 VPN ( site-to-site VPN ) の設定です。 対象ファームウェアは 1.9.1 です。 拠点間 VPN とは 要はリモートアクセスでない VPN ということです。ある2つの拠点の間に設置されている常設の VPN トンネルで、主に離れている2つの LAN をインターネット経由で1つにつなぐ役割を担います。拠点間 VPN でつながれた2つの LAN はプライベート IP アドレスであっても互いに通信でき、ファイルのやり取りや画面共有、遠隔ログインなどが簡単にできるようになります。また、後述の VPN トンネルを介したルーティングの設定にもこの拠点間 VPN が必要になります。 Open VPN vs IPsec ER-X は拠点間用の VPN プロトコルとして OpenVPN と IPsec が使えます。それぞれメリットデメリットがありますが、ざっと下記のような感じです。 OpenVPN IPsec 設定 簡単 難しい スピード 遅い 速い Firewall に ブロックされにくい ブロックされやすい ダイナミック IP OK 苦手 ルーティング 対応 GRE を使えば対応 OpenVPN は設定が簡単で最悪 https が通ればどんな環境でも動きますが、スピードが遅いです。 IPsec はスピードが速いですが、環境によってはブロックされたり(ポート 4500 を遮断されたりすると使えない)、ルーターが固定 IP アドレスでなくダイナミック IP アドレスだとルーティング可能なトンネルを設定するのがすごく難しくなります。今回はまず OpenVPN で拠点間 VPN を設定してみます。 前提条件 設定の前提となる条件は次の通りです。大抵のご家庭は WAN 側 IP アドレスがダイナミック IP アドレスだと思います。今回は2つの拠点に1つずつ ER-X を置いたものとします。 自宅 実家 DDNS yaberouter1.duckdns.org yaberouter2.duckdns.org WAN 側 ポート eth0 pppoe0 WAN 側 IP アドレス ダイナミック / DHCP ダイナミック / PPPoE LAN 側 […]

The post EdgeRouter X – 7. 自宅と実家の2つの LAN を拠点間 VPN でつなぐ ( OpenVPN ) appeared first on yabe.jp.

]]>
さあ、とうとうここまで来ました。私がルーターを買おうと思ったきっかけの1つ、拠点間 VPN ( site-to-site VPN ) の設定です。 対象ファームウェアは 1.9.1 です。

拠点間 VPN とは

要はリモートアクセスでない VPN ということです。ある2つの拠点の間に設置されている常設の VPN トンネルで、主に離れている2つの LAN をインターネット経由で1つにつなぐ役割を担います。拠点間 VPN でつながれた2つの LAN はプライベート IP アドレスであっても互いに通信でき、ファイルのやり取りや画面共有、遠隔ログインなどが簡単にできるようになります。また、後述の VPN トンネルを介したルーティングの設定にもこの拠点間 VPN が必要になります。

Open VPN vs IPsec

ER-X は拠点間用の VPN プロトコルとして OpenVPNIPsec が使えます。それぞれメリットデメリットがありますが、ざっと下記のような感じです。

OpenVPN IPsec
設定 簡単 難しい
スピード 遅い 速い
Firewall に ブロックされにくい ブロックされやすい
ダイナミック IP OK 苦手
ルーティング 対応 GRE を使えば対応

OpenVPN は設定が簡単で最悪 https が通ればどんな環境でも動きますが、スピードが遅いです。 IPsec はスピードが速いですが、環境によってはブロックされたり(ポート 4500 を遮断されたりすると使えない)、ルーターが固定 IP アドレスでなくダイナミック IP アドレスだとルーティング可能なトンネルを設定するのがすごく難しくなります。今回はまず OpenVPN で拠点間 VPN を設定してみます。

前提条件

設定の前提となる条件は次の通りです。大抵のご家庭は WAN 側 IP アドレスがダイナミック IP アドレスだと思います。今回は2つの拠点に1つずつ ER-X を置いたものとします。

自宅 実家
DDNS yaberouter1.duckdns.org yaberouter2.duckdns.org
WAN 側 ポート eth0 pppoe0
WAN 側 IP アドレス ダイナミック / DHCP ダイナミック / PPPoE
LAN 側 ポート switch0 switch0
LAN 側 ネットワーク 192.168.1.0/24 192.168.2.0/24
OpenVPN トンネル IP アドレス 192.168.111.1 192.168.111.2

このような前提条件で、 site-to-site OpenVPN を設定してみます。


自宅側

まずは自宅側 ER-X から CLI で設定します。

## 共通鍵を作成 (Operational Mode でコマンド実行)
generate vpn openvpn-key /config/auth/secret

## その共通鍵をコピペでもう1台の ER-X に移す
sudo cat /config/auth/secret
表示された内容をクリップボードにコピー

## 共通鍵のパーミッションを変更
chmod 600 /config/auth/secret

## 設定モードに入る
configure

## vtun0 という名前の OpenVPN インターフェースを作成
set interfaces openvpn vtun0
set interfaces openvpn vtun0 mode site-to-site

## OpenVPN のプロトコルを指定
set interfaces openvpn vtun0 protocol udp

## OpenVPN が使うポート番号を設定
set interfaces openvpn vtun0 local-port 1194
set interfaces openvpn vtun0 remote-port 1194

## OpenVPN のトンネルの IP アドレスを設定
set interfaces openvpn vtun0 local-address 192.168.111.1
set interfaces openvpn vtun0 remote-address 192.168.111.2

## 実家のルーターのホスト名を設定
set interfaces openvpn vtun0 remote-host yaberouter2.duckdns.org

## 共通鍵の場所を指定
set interfaces openvpn vtun0 shared-secret-key-file /config/auth/secret

## 色々な OpenVPN のオプションを設定
set interfaces openvpn vtun0 openvpn-option "--comp-lzo"
set interfaces openvpn vtun0 openvpn-option "--float"
set interfaces openvpn vtun0 openvpn-option "--ping 10"
set interfaces openvpn vtun0 openvpn-option "--ping-restart 20"
set interfaces openvpn vtun0 openvpn-option "--ping-timer-rem"
set interfaces openvpn vtun0 openvpn-option "--persist-tun"
set interfaces openvpn vtun0 openvpn-option "--persist-key"
set interfaces openvpn vtun0 openvpn-option "--user nobody"
set interfaces openvpn vtun0 openvpn-option "--group nogroup"
set interfaces openvpn vtun0 openvpn-option "--fragment 1280"

## 実家側の LAN にアクセスする時に OpenVPN を使うよう Static Route 設定
set protocols static interface-route 192.168.2.0/24 next-hop-interface vtun0

## 設定を保存する
commit
save

## Operational Mode に戻る
exit

つづいて Firewall で OpenVPN を通すようルールを追加します。

ER-X に管理者アカウントでログインし、 Firewall/NAT タブをクリック
Firewall Policies タブをクリック
WAN_LOCAL の Actions ボタンを押し、 Edit Ruleset を選ぶ

Add New Rule ボタンを押す
[Basic]
Description: Allow OpenVPN
Action: Accept
Protocol: Both TCP and UDP
[Destination]
Port: 1194
Save ボタンを押す

追加したルールを元からある Allow established/related と Drop invalid state の間に移動する
Save Rule Order ボタンを押す
WAN_LOCAL の設定ウィンドウを閉じる

実家側

続いて実家の ER-X を CLI で設定します。自分は自宅でリモートアクセス VPN の設定までしたものを実家に持ち込み、その後自宅の Mac から L2TP で実家の ER-X にアクセスして設定しました。設定を間違えると実家に一切アクセスできなくなったりするリスクがあるので細心の注意で設定します。

## 共通鍵をもう1台の ER-X に移す (Operational Mode で入力)
cat > /config/auth/secret
共通鍵をクリップボードからペースト
CTRL-D を押す

## 共通鍵のパーミッションを変更
chmod 600 /config/auth/secret

## 設定モードに入る
configure

## vtun0 という名前の OpenVPN インターフェースを作成
set interfaces openvpn vtun0
set interfaces openvpn vtun0 mode site-to-site

## OpenVPN のプロトコルを指定
set interfaces openvpn vtun0 protocol udp

## OpenVPN が使うポート番号を設定
set interfaces openvpn vtun0 local-port 1194
set interfaces openvpn vtun0 remote-port 1194

## OpenVPN のトンネルの IP アドレスを設定
set interfaces openvpn vtun0 local-address 192.168.111.2
set interfaces openvpn vtun0 remote-address 192.168.111.1

## 自宅のルーターのホスト名を設定
set interfaces openvpn vtun0 remote-host yaberouter1.duckdns.org

## 共通鍵の場所を指定
set interfaces openvpn vtun0 shared-secret-key-file /config/auth/secret

## 色々な OpenVPN のオプションを設定
set interfaces openvpn vtun0 openvpn-option "--comp-lzo"
set interfaces openvpn vtun0 openvpn-option "--float"
set interfaces openvpn vtun0 openvpn-option "--ping 10"
set interfaces openvpn vtun0 openvpn-option "--ping-restart 20"
set interfaces openvpn vtun0 openvpn-option "--ping-timer-rem"
set interfaces openvpn vtun0 openvpn-option "--persist-tun"
set interfaces openvpn vtun0 openvpn-option "--persist-key"
set interfaces openvpn vtun0 openvpn-option "--user nobody"
set interfaces openvpn vtun0 openvpn-option "--group nogroup"
set interfaces openvpn vtun0 openvpn-option "--fragment 1280"

## 自宅側の LAN にアクセスする時に OpenVPN を使うよう Static Route 設定
set protocols static interface-route 192.168.1.0/24 next-hop-interface vtun0

## 設定を保存する
commit
save

## Operational Mode に戻る
exit

つづいて Firewall で OpenVPN を通すようルールを追加します。

ER-X に管理者アカウントでログインし、 Firewall/NAT タブをクリック
Firewall Policies タブをクリック
WAN_LOCAL の Actions ボタンを押し、 Edit Ruleset を選ぶ

Add New Rule ボタンを押す
[Basic]
Description: Allow OpenVPN
Action: Accept
Protocol: Both TCP and UDP
[Destination]
Port: 1194
Save ボタンを押す

追加したルールを元からある Allow established/related と Drop invalid state の間に移動する
Save Rule Order ボタンを押す
WAN_LOCAL の設定ウィンドウを閉じる

これで設定できました。 Operational Mode で下記のコマンドを入力すると OpenVPN トンネルのステータスが確認できます。

show interfaces openvpn
show interfaces openvpn detail
show openvpn status site-to-site

OpenVPN トンネルが確立していれば、ここから2つの LAN が相互にいつも通信できるようになります。例えば実家側の ER-X には https://192.168.2.1/ と入力するだけで、L2TP の接続等しなくてもいつでもアクセスできます。ファイルの転送や画面共有も同じように相手の IP アドレスを指定するだけです。もちろん LAN 内の端末の IP アドレスは全部固定化しておきましょう。

設定を見ればわかるように、 OpenVPN は WAN 側のインターフェースが eth0 だろうが pppoe0 だろうが関係ありません。また必要なポートは1つだけ、かつ自由に設定できるので、ほとんどのポートがブロックされているような環境でも、ポート 443 等の絶対に閉じられることがないポートを使うことによって、ほぼ確実に VPN を確立することができます。これが OpenVPN が簡単でどんな環境でも動くと云われる所以です。

今回はこのページを参考にしました。

EdgeMAX: OpenVPN Site-to-Site

お疲れ様でした。さて続いては site-to-site IPsec です。

The post EdgeRouter X – 7. 自宅と実家の2つの LAN を拠点間 VPN でつなぐ ( OpenVPN ) appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-07-site-to-site-openvpn/feed/ 1 7916
EdgeRouter X – 6. 自宅にどこからでもアクセスできるようにする ( リモートアクセス VPN ) https://yabe.jp/gadgets/edgerouter-x-06-l2tp/ https://yabe.jp/gadgets/edgerouter-x-06-l2tp/#comments Fri, 07 Oct 2016 06:50:08 +0000 http://yabe.jp/?p=7911 さて、やっとこさ VPN の設定に入ります。今回は外出先から自宅の LAN 内にアクセスする「リモートアクセス VPN」と呼ばれる VPN の設定をしてみます。 対象ファームウェアは 1.9.1 です。 ER-X は PPTP と L2TP / IPSec に対応していますが、 PPTP はセキュリティ的にアレなので、今回は L2TP で設定してみようと思います。 リモートアクセス VPN とは インターネッツ上の通信を暗号化する VPN と呼ばれる技術のうち、主に遠隔地から家庭や社内の LAN にアクセスするのに用いられるものを指します。リモートアクセス VPN で LAN に接続すると、まるでその LAN 内に直接繋がっているかのごとく、その LAN 内の他のサーバーや端末などにアクセスできるようになります。代表的プロトコルは L2TP / IPsec や PPTP などがあります。 またリモートアクセス VPN 経由でインターネットにアクセスできるようになり、地理的な制限を回避することができるようにもなります。例えば北米から日本の実家に L2TP で接続し、日本でしか視聴できないサイトを見られるようにしたり、中国から北米の自宅に接続し、 Facebook や Twitter 等中国国内では見られないサイトを見られるようにしたりできます。 L2TP は一般的なプロトコルなため、 Mac や iPhone も対応していて、難なく今回設定するサーバーに VPN 接続できるようになります。 今回はこのような作業になります。 コマンドラインで L2TP / IPSec の設定をする 外部から L2TP / IPSec でアクセスできるよう Firewall を変更する iPhone で L2TP VPN の設定をする コマンドラインで L2TP / IPsec の設定をする では設定してみます。まずは WAN ポートが eth0 になっている場合です。今回は L2TP のクライアントのユーザー名を user1 、パスワードを password1 、そしてシークレットを secret1 としましたが、必ず各自変更して入力してください。 SSH でルーターにアクセス ## 設定モードに入る configure ## 基本的な IPsec の設定 set vpn ipsec […]

The post EdgeRouter X – 6. 自宅にどこからでもアクセスできるようにする ( リモートアクセス VPN ) appeared first on yabe.jp.

]]>
さて、やっとこさ VPN の設定に入ります。今回は外出先から自宅の LAN 内にアクセスする「リモートアクセス VPN」と呼ばれる VPN の設定をしてみます。 対象ファームウェアは 1.9.1 です。

ER-X は PPTP と L2TP / IPSec に対応していますが、 PPTP はセキュリティ的にアレなので、今回は L2TP で設定してみようと思います。

リモートアクセス VPN とは

インターネッツ上の通信を暗号化する VPN と呼ばれる技術のうち、主に遠隔地から家庭や社内の LAN にアクセスするのに用いられるものを指します。リモートアクセス VPN で LAN に接続すると、まるでその LAN 内に直接繋がっているかのごとく、その LAN 内の他のサーバーや端末などにアクセスできるようになります。代表的プロトコルは L2TP / IPsec や PPTP などがあります。

またリモートアクセス VPN 経由でインターネットにアクセスできるようになり、地理的な制限を回避することができるようにもなります。例えば北米から日本の実家に L2TP で接続し、日本でしか視聴できないサイトを見られるようにしたり、中国から北米の自宅に接続し、 Facebook や Twitter 等中国国内では見られないサイトを見られるようにしたりできます。

L2TP は一般的なプロトコルなため、 Mac や iPhone も対応していて、難なく今回設定するサーバーに VPN 接続できるようになります。

今回はこのような作業になります。

  1. コマンドラインで L2TP / IPSec の設定をする
  2. 外部から L2TP / IPSec でアクセスできるよう Firewall を変更する
  3. iPhone で L2TP VPN の設定をする

コマンドラインで L2TP / IPsec の設定をする

では設定してみます。まずは WAN ポートが eth0 になっている場合です。今回は L2TP のクライアントのユーザー名を user1 、パスワードを password1 、そしてシークレットを secret1 としましたが、必ず各自変更して入力してください。

SSH でルーターにアクセス
## 設定モードに入る
configure

## 基本的な IPsec の設定
set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec nat-traversal enable
set vpn ipsec auto-firewall-nat-exclude enable

## L2TP の WAN 側 IP アドレスが DHCP 経由で割り当てられると指定
set vpn l2tp remote-access dhcp-interface eth0

## L2TP でアクセスしてきたクライアントに割り当てる IP アドレスの範囲を指定
set vpn l2tp remote-access client-ip-pool start 192.168.1.121
set vpn l2tp remote-access client-ip-pool stop 192.168.1.140

## L2TP の「シークレット」を設定
## secret1 の部分を任意のパスワードに変更して入力
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret secret1
set vpn l2tp remote-access ipsec-settings ike-lifetime 3600

## L2TP クライアントの認証方法をローカルに設定
set vpn l2tp remote-access authentication mode local

## L2TP クライアントのユーザー名とパスワードを設定
## user1 と password1 の部分を変更して入力
set vpn l2tp remote-access authentication local-users username user1 password password1

## L2TP の MTU を保守的に設定
set vpn l2tp remote-access mtu 1280

## L2TP のクライアントが使う DNS をルーター自身と Google DNS に設定
set vpn l2tp remote-access dns-servers server-1 192.168.1.1
set vpn l2tp remote-access dns-servers server-2 8.8.8.8

## ルーターの DNS が L2TP から使えるよう DNS Frowarding をルーター自身に設定
set service dns forwarding listen-on lo

commit
save

そして以下が WAN ポートが pppoe0 になっている場合です。この場合 dhcp-interface pppoe0 というコマンドが通らないので outside-address 0.0.0.0 を指定します。もちろん L2TP のクライアントのユーザー名を user1 、パスワードを password1 、そしてシークレットを secret1 としましたが、必ず各自変更して入力してください。

SSH でルーターにアクセス
## 設定モードに入る
configure

## 基本的な IPsec の設定
set vpn ipsec ipsec-interfaces interface pppoe0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec nat-traversal enable

## WAN 側 IP アドレスが pppoe0 経由で割り当ての場合これを指定
set vpn l2tp remote-access outside-address 0.0.0.0

## L2TP でアクセスしてきたクライアントに割り当てる IP アドレスの範囲を指定
set vpn l2tp remote-access client-ip-pool start 192.168.1.121
set vpn l2tp remote-access client-ip-pool stop 192.168.1.140

## L2TP の「シークレット」を設定
## secret1 の部分を任意のパスワードに変更して入力
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret secret1
set vpn l2tp remote-access ipsec-settings ike-lifetime 3600

## L2TP クライアントの認証方法をローカルに設定
set vpn l2tp remote-access authentication mode local

## L2TP クライアントのユーザー名とパスワードを設定
## user1 と password1 の部分を変更して入力
set vpn l2tp remote-access authentication local-users username user1 password password1

## L2TP の MTU を保守的に設定
set vpn l2tp remote-access mtu 1280

## L2TP のクライアントが使う DNS をルーター自身と Google DNS に設定
set vpn l2tp remote-access dns-servers server-1 192.168.1.1
set vpn l2tp remote-access dns-servers server-2 8.8.8.8

## ルーターの DNS が L2TP から使えるよう DNS Frowarding をルーター自身に設定
set service dns forwarding listen-on lo

commit
save

外部から L2TP / IPSec でアクセスできるよう Firewall を変更する

続いてルーターの WAN 側から L2TP / IPsec でアクセスできるよう Firewall の設定を変更します。具体的には UDP のポート 500 / 1701 / 4500 と、IP プロトコルの ESP の通過を許可するルールを追加します。 Firewall のルールは順番が重要なので、順番がわかりやすい GUI で設定します。

ER-X に管理者アカウントでログインし、 Firewall/NAT タブをクリック
Firewall Policies タブをクリック
WAN_LOCAL の Actions ボタンを押し、 Edit Ruleset を選ぶ

Add New Rule ボタンを押す
[Basic]
Description: Allow L2TP
Action: Accept
Protocol: UDP
[Destination]
Port: 500,1701,4500 (スペース無し)
Save ボタンを押す

Add New Rule ボタンを押す
[Basic]
Description: Allow ESP
Action: Accept
Protocol: choose protocal by name > esp
Save ボタンを押す

追加した2つのルールを元からある Allow established/related と Drop invalid state の間に移動する
Save Rule Order ボタンを押す
WAN_LOCAL の設定ウィンドウを閉じる

screen-shot-2016-10-06-at-11-22-02-pm
screen-shot-2016-10-06-at-11-23-18-pm

これで Firewall が WAN 側から ER-X 方向への L2TP / IPsec を通すようになります。

注意事項

ちなみにこのポート 4500 番ですが、「どこでも My Mac (Back to My Mac)」とコンフリクトして、 L2TP が接続できなくなったりします。その際には LAN 内のすべての Mac / Airport Time Capsule でどこでも My Mac をオフにするか、 ER-X の UPnP2 をオフにするか、 UPnP2 でポート 4500 での Port Forward をブロックするよう設定してください。 UPnP2 でブロックする設定はこんな感じです。

service / UPnP2 / acl / rule / 10
action: deny
description: Block port 4500
external-port: 4500
local-port: 4500
subnet: 192.168.1.0/24

iPhone で VPN クライアントの設定をする

続いて iPhone でいま設定した ER-X の L2TP VPN サーバーに接続する設定をします。

「設定」を開く
「一般」を選択
「VPN」を選択
「VPN構成を追加...」を選択
タイプ: L2TP
説明: 自宅
サーバ: yaberouter1.duckdns.org
アカウント: user1
パスワード: password1
シークレット: secret1
全ての信号を送信: オン
「完了」を選択

img_6515

これで iPhone の「設定」のトップに VPN という項目が現れ、出先から自宅の LAN 内の端末にアクセスしたり、もしくは外国から自宅経由でインターネットのサイトにアクセスしたりできるようになります。また VPN は回線が暗号化されているので、通信内容の秘匿が保たれます。街のカフェ等でまったくセキュリティのかかってないフリー WiFi なんかを使うと、通信内容を同じ WiFi を使っている誰かに見られる可能性がありますが、 VPN を使うことで防ぐことができます。

今回はこのページを参考にしました。

EdgeRouter – IPsec L2TP Server

Re: l2tp vpn simple setup

以上、お疲れ様でした。

The post EdgeRouter X – 6. 自宅にどこからでもアクセスできるようにする ( リモートアクセス VPN ) appeared first on yabe.jp.

]]>
https://yabe.jp/gadgets/edgerouter-x-06-l2tp/feed/ 1 7911