DS-LiteとPPPoEを同時に使う

僕の環境はMikroTik CCR(RouterOS)を使っています。

で、
DS-LiteとPPPoE(IP非固定)を同時に使っていて、
かつDefault GatewayをDS-Liteに向けています。

[admin@MikroTik] /ip route print detail
 0 A S  dst-address=0.0.0.0/0 gateway=ds-lite gateway-status=ds-lite reachable check-gateway=ping distance=1 scope=30 target-scope=10 

 1  DS  dst-address=0.0.0.0/0 gateway=pppoe gateway-status=pppoe reachable distance=2 scope=30 target-scope=10 

しかし困ったことに、
この環境下だとCCRをVPNルーターとして使いたい時、
VPNのトラフィックがポート開放ができないDS-Lite経路となってしまい、
うまく接続することができません。
また、このままだとRouterOSの機能「Cloud」もDS-Lite側のアドレスを登録してしまいます。

なので、
「Cloud」への登録IPアドレスはPPPoE側のアドレスを登録し、
Mangleを書いて、PPPoEからのトラフィックはPPPoEへ返すようにしてみます。

1)DDNSサーバ登録への経路
「Cloud」のDDNSサーバは、
https://wiki.mikrotik.com/wiki/Manual:IP/Cloud
「cloud2.mikrotik.com」を使うとあるのでPPPoE側を流れるようにRouteに追加してあげます。

「cloud2.mikrotik.com」のIPアドレスは

2a02:610:7501:4000::251
2a02:610:7501:1000::201
159.148.172.251
159.148.147.201

なので、
Routeに追加してあげます。
PPPoEインターフェイスは「pppoe」としています。

[admin@MikroTik] /ip route print detail
12 A S  ;;; DDNScloud2.mikrotik.com
        dst-address=159.148.147.201/32 gateway=pppoe gateway-status=pppoe reachable distance=1 scope=30 target-scope=10 

13 A S  ;;; DDNScloud2.mikrotik.com
        dst-address=159.148.172.251/32 gateway=pppoe gateway-status=pppoe reachable distance=1 scope=30 target-scope=10 

これで「Cloud」をアップデートすると、

[admin@MikroTik] /ip cloud force-update
 ip cloud print        
          ddns-enabled: yes
  ddns-update-interval: 3m
           update-time: yes
        public-address: ***.***.***.***
              dns-name: ***.sn.mynetname.net
                status: updated

うまくPPPoE側のIPアドレスを登録できると思います。

2)Mangleを書く
INとOUTの両方が必要になります。
入ってきたパケットに「PPPOE-IN」マークをつけて、
パケットが出ていくときに「PPPOE-IN」マークをされたものを新たにルーティングするため「PPPOE-OUT」マークを付けます。

[admin@MikroTik] /ip firewall mangle print detail 
 3    chain=prerouting action=mark-connection new-connection-mark=PPPOE-IN passthrough=yes in-interface=pppoe log=no log-prefix="" 

 4    chain=output action=mark-routing new-routing-mark=PPPOE-OUT passthrough=yes connection-mark=PPPOE-IN log=no log-prefix="" "

続いて
「PPPOE-OUT」マークされたものをpppoeから出ていけるようにRouteに追加してあげます。

[admin@MikroTik] /ip route print detail 
 0 A S  dst-address=0.0.0.0/0 gateway=pppoe gateway-status=pppoe reachable distance=1 scope=30 target-scope=10 routing-mark=PPPOE-OUT

これで、PPPoEから来たものはPPPoEで返るようになります。

コメントを残す

メールアドレスが公開されることはありません。

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください