SSブログ

Raspberry Pi (の5) [プログラム]

正しい意味でのWDSではないようですが、無線ルータ親機同士の通信をWDS機能とみると、300円程度の無線ルータ親機(MZK-WNH)同士で無線路が作れます。
WPA2とMACアドレスフィルタなどでは不十分だと思う人(私)に、IPsecやopenvpnでの暗号化も加えた安全な「有線路を無線路で置き換え」を作ることを考えました。

無線ルータ(MZK-WNH)同士での通信の設定と、暗号化(WPA2やMACアドレスフィルタ)は、このページ
    http://blogs.yahoo.co.jp/fuuta_kazhide/59663849.html
そして、それを参考に設定した私のページ
    http://hanposaki.blog.so-net.ne.jp/2012-06-30
などを参考にしてください。
私のところの設定に関していえば、APとして1対1対向なので、次の点を変更してあります。

  • 基本設定のモード          APブリッジ(ポイントツーポイント)
  • 基本設定のチャンネル数    13
  • 詳細設定のチャンネル幅    20MHz

実は、このように「Auto」でなく固定値にしたのは、通信が安定してできなかったためです。5〜20分すると通信が途絶して、無線ルータの電源を入れ直すまでまったく通信ができなくなる、という現象が頻発したためです。

この設定をした場合の無線ルータ同士の通信ですが、無線ルータは単純なブリッジとなり、それぞれのLANポート同士がつながるようです。MACの学習をして、不要なパケットを相手に流さないようになっているかどうかまでは確認していません。

で、IPsecやopenvpnなどは? 今回の用途では、どっちもlinuxが必要です。古い非力なマシンでも使うかと思ったのですが、24時間稼働ではエコじゃありません。linuxが動作するシングルボードコンピュータを探すと、x86系ではなく、ARM系でRaspberry Piというのがありました。
…という感じです。

では、まず自分の無知による「大失敗談」から。

Raspberry Piにipsec(openswan)を入れてみた…

このページ
    http://wiki.debian.org/HowTo/openswan
とか見ると、実に簡単ですよね。ええ、簡単です。そして、host 1とhost 2は通信できるんです。
でも、(たしか記憶では) vpn-gw 1はvpn-gw 2を「知らない」んです。どうやれば、vpn-gw 1からvpn-gw 2が見えるのか、私にはわかりませんでした。でも、IPsecは知ってるんです、だから、host 1とhost 2が通信できるのです。単に設定がわからないだけのはずなのですが、どう設定したらいいのか、さっぱり。

私には手に負えませんでした。対向で設定し、向こうのネットワークとこっちのネットワーク上のマシンで通信(ping応答)までは大した問題ではありませんでしたが、その先がさっぱり。
一番の問題は、ipsec(openswan)でipsec0などのネットワークインターフェースがいつの間にか削除されていたことです。これがないために、ルーティングとiptablesの設定が理解不能になりました。なぜなら、同じインターフェース(たとえば、eth0)に暗号化されたパケットが入り、デコードされたパケットが湧き出てくる、という具合です。でもeth0には暗号化されたパケットを送受信するIPを割り当てます。じゃぁ、復号化されたパケットを受け取るのためのIP(通常のIPアドレス)はどこに設定するのでしょうか? eth0に設定すると、暗号化せずにデータを流しやがります。ipsec.confにだけ設定して、インターフェースには設定しない、ということみたいです。そのせいか、今度は、こっちのネットワークから、向こうのネットワークのゲートウェイを越えてインターネットに出るには? もちろん、コレがこっちのネットワーク上のPCのゲートウェイになり、相手をこっちのゲートウェイとして指定します。もちろん、暗号路のIPです。相手は、相手のネットワーク上の外へのゲートウェイを設定しています。
で、こっちのネットワーク上のPCから外へ出ようとすると、暗号路へ出ません。いえ、正確には、「暗号路へ生のデータを流そうとしています」。つまり、コレが、相手に送ることができないのです。可能なのは、相手のネットワーク上まで。つまり、コレが知らないIPの場合、指定されているゲートウェイを無視してしまっているようです。
…もちろん、自分の設定が間違っているために思った動作をしていないのは明らかなのですが、それを解決する方法がさっぱりわからないのです。iptablesもsysctlも心当たりをいくつか試しましたが、ダメ。なんで、ルーティングってこんなに難しいの?
というか、以前、IPsecを使ったときもなんか同じような現象に悩まされた記憶があるような、ないような。そのときは、外部へ出て行かなくてよかったか、外に出るにはproxyを立てたんじゃなかったっけか。
まぁ、つまりは、そのときから、一向に進歩してないわけです(私が、です)。

こんな状態で約1週間。というわけで、IPsecを諦めました。無線路への切替え期日も迫ってきてますしね。openvpnなら設定も簡単。

というわけで、次回は、openvpnのインストールからです。



共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。