IPv6を導入した環境で自宅サーバを立てようと思ったら、任意のポートを開放できずに困ったときに調べたメモ。
メールサーバやWebサーバなどを立てるのであれば、個別のPPPOEセッションをつくってそちらを公開するのがいちばんお手軽だった。
試した環境
- ドコモ光
- プロバイダ:GMOとくとくBB
- HGW: PR-S300HI
- WIFIルータ: WXR-1750DHP2
- OS: Ubuntu 19.10 EOAN
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=19.10
DISTRIB_CODENAME=eoan
DISTRIB_DESCRIPTION="Ubuntu 19.10"PPPOEのインストール
$ sudo apt-get install -y pppoe pppoeconf
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ifupdown
Suggested packages:
rdnssd xdialog
The following NEW packages will be installed:
ifupdown pppoe pppoeconf
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 149 kB of archives.
After this operation, 632 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu eoan/universe amd64 ifupdown amd64 0.8.35ubuntu1 [60.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu eoan/universe amd64 pppoe amd64 3.12-1.2ubuntu2 [73.2 kB]
Get:3 http://archive.ubuntu.com/ubuntu eoan/universe amd64 pppoeconf all 1.21ubuntu1 [14.8 kB]
Fetched 149 kB in 2s (77.3 kB/s)
Selecting previously unselected package ifupdown.
(Reading database ... 155407 files and directories currently installed.)
Preparing to unpack .../ifupdown_0.8.35ubuntu1_amd64.deb ...
Unpacking ifupdown (0.8.35ubuntu1) ...
Selecting previously unselected package pppoe.
Preparing to unpack .../pppoe_3.12-1.2ubuntu2_amd64.deb ...
Unpacking pppoe (3.12-1.2ubuntu2) ...
Selecting previously unselected package pppoeconf.
Preparing to unpack .../pppoeconf_1.21ubuntu1_all.deb ...
Unpacking pppoeconf (1.21ubuntu1) ...
Setting up pppoe (3.12-1.2ubuntu2) ...
Setting up ifupdown (0.8.35ubuntu1) ...
Creating /etc/network/interfaces.
Created symlink /etc/systemd/system/multi-user.target.wants/networking.service → /lib/systemd/system/networking.service.
Created symlink /etc/systemd/system/network-online.target.wants/networking.service → /lib/systemd/system/networking.service.
Setting up pppoeconf (1.21ubuntu1) ...
Processing triggers for man-db (2.8.7-3) ...
Processing triggers for mime-support (3.63ubuntu1) ...
Processing triggers for systemd (242-7ubuntu3.2) ...
設定と接続
コマンド一つで、接続設定、初回の接続実行、再起動時の自動実行の設定までやってくれます。
$ sudo pppoeconf








ip コマンドで状況を確認できます。
$ ip addr show ppp0
15: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1454 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet XXX.XX.XX.XX peer XXX.XXX.XXX.XX/32 scope global ppp0
valid_lft forever preferred_lft foreverこれで、ppp0に割り当てられたIPv4アドレスを使ってポート開放ができるようになります。
この時点で、ブリッジしているHGWやWIFIルータのフィルタは関係なくなり、このアドレスが外部からの攻撃対象となります。SSHやファイアウォールの設定等は慎重に行いましょう。
切断するには poff コマンドを実行します。
$ sudo poff
うまく行かない場合はブリッジの設定を確認

NOT CONNECTED Sorry, I scanned 9 interfaces, but the Access Concentrator of your provider did not respond. Please check your network and modem cables. Another reason for the scan failure may also be another running pppoe process which controls the modem.
HGWとWIFIルータのブリッジ設定が有効になっていないと、LAN内から個別のPPPoEセッションをはることはできません。
PR-S300HIの場合は、トップページ>詳細設定>高度な設定 に、PPPoEブリッジのチェックボックスがあります。

WIFIルータにも同様の設定があります。
WXR-1750DHP2の場合は、詳細設定のセキュリティ>パススルーに、PPPoEパススルーというチェックボックスがあります。


わし
ファイアウォールの設定をお忘れなく。。

わし
大変良い記事をみつけましたので、リンクを貼っておきます。