qshinoの日記

Powershell関係と徒然なこと

EtherIP + pppoeサーバー

EtherIP + pppoeサーバー

装置

  • 端点1: ルータrt
  • 端点2: sv
  • 中間点: gw

ソフト/sv上

  • EtherIPドライバ
  • pppoeサーバー

設定/gw

接続

(rt local-nw)rt - gw - sv

rt-local側を追加

DUT -(eth) - gw2 -(eip2)-rt -(eip) gw -(DNAT:eip) - sv - eipドライバ - pppoeサーバー - sv内ルーティング

sv内構成

  • EtherIPドライバ
  • pppoeサーバー
  • 内部lan用デバイス

In eip packet

  • eipドライバ
  • EtherPacket
  • pppoesv
  • ipパケット
  • sv内ルーティング

out sv内ルーティング

  • ターゲットネットワーク行をppp0へ

第一段階

まずはEIPの開通を目指す。

rtからsvのeipドライバへの通信。

rt側はsvに向けてeipパケットを発行。 svはeipドライバを使う。

eipドライバ

今の所下記が候補。古いので難度が高そう。

https://github.com/kjmkznr/etherip

第二段階

eipが開通したら、次はpppoeサーバー

pppoeサーバーは下記が候補

rp-pppoe

こちらはyumモジュールもありそうなので、期待している。

第三段階

検証

検証機能

  1. ping導通
  2. ppoe-client

検証装置

  1. rt上のpppoe-client
  2. rtの反対側eip端点のpppoe-client
  3. 更に奥のpppoe-client こいつの稼働が本来の目的

Plan B

etheripドライバが当たらない場合、Plan BとしてSoftetherSVでトライ。但し、その場合はEtherIP/IPsecとなり、少し面倒。

rt →(eip/ipsec)→ gw/SESV →(eth)→pppoesv

gwのfirewall設定をipsec用に。

FW ip esp, udp 500, - NAT-Traversal - ike ? - ipsec ?

SESVがWindowsの場合

  1. Install SESV
  2. Open port for FW udp500, esp
  3. Connect from rt
  4. Install pppoesv
  5. Connect Bridge to pppoesv-if/eth1?
  6. Check connection rt-pppoe

SESV to rt

EtherIP/IPsecにて接続。SESV側の手順。

VPNServerManagerのサーバー管理ウインドウから、IPSec/L2TP設定→IPsec/L2TP/EtherIP設定を選択。後はマニュアルを見つつホゲホゲ。

http://ja.softether.org/4-docs/2-howto/Other_VPN_Appliance_Setup_Guide/7

LocalBridge

pppoesvのethXと、SESVの仮想HUBをローカルブリッジ接続する。

http://ja.softether.org/4-docs/1-manual/3/3.6

ppoe-client→rt → gw/sesv -bridge-pppoesv → 戻り

pppoesv

  • eth0 : main path
  • eth1 : bridge from sesv
  • ppp0 : ppp端点