VyOSでPPPoEに接続してポート開放メモ


はじめに

IPoE方式のインターネット接続にしたらグローバルIPアドレスがもらえなくなったのでPPPoEで接続するルーターを作ろうと思ってこの記事を書きました。PPPoEだとグローバルIPアドレスがもらえるらしい。

構成

インターネット ---- eth0(PPPoE):VyOS:eth1 ----- 自宅ネットワーク(192.168.1.0/24)

VyOSはHyper-V上に作ります。
DHCPサーバやDNSサーバは別で動かしているのでここでは構成しません。

Hyper-Vで仮想マシンを作成

仮想マシンを普通につくる(省略)
UEFI(第二世代)だとなぜかうまくブートしないのでBIOS(第一世代)で作るとよく動く。

仮想マシンを普通に作るとネットワークアダプターが1つしか追加されないので仮想マシンの設定からもう1つ追加しておきます。
インターネット(PPPoE用)と自宅ネットワークに接続する2つです。

PPPoEの設定

接続

まずは設定モードに切り替え

$ configure

そして、PPPoEの設定を以下のようにします。

# set interfaces ethernet eth0 pppoe 0
# set interfaces ethernet eth0 pppoe 0 user-id [ユーザー名]
# set interfaces ethernet eth0 pppoe 0 password [パスワード]
# set interfaces ethernet eth0 pppoe 0 default-route auto
# set interfaces ethernet eth0 pppoe 0 name-server auto
# commit
# save
# exit

[ユーザー名]と[パスワード]のところはプロバイダから発行されたものを入力します。

確認

$ show interfaces pppoe

と入力して

RX:  bytes    packets     errors    dropped    overrun      mcast
       1199670       3050          0          0          0          0    
TX:  bytes    packets     errors    dropped    carrier collisions
        643157       3331          0          0          0          0

こんな感じのが出れば多分設定完了・・・のはず。

NATの設定

自宅ネットワーク -> インターネット

自宅ネットワークの端末(192.168.1.0/24)がVyOSを経由してインターネットに接続するための設定。
configureコマンドで設定画面に入り、

# set nat source rule 10 translation address masquerade
# set nat source rule 10 source address 192.168.1.0/24
# set nat source rule 10 outbound-interface pppoe0
# commit
# save

自宅ネットワーク -> インターネットへのNATがされるようになったので、VyOS経由でWebページを見たりすることができます。ruleのあとの数字は大きいほど優先度が高い気がします。(要検証)

インターネット -> 自宅ネットワーク(ポート開放)

ポート開放をしてサーバなどをインターネットに公開する場合のNAT設定。
インターネット側からTCP 25565番へのアクセスがあった場合、192.168.1.9:25565にポートフォワードする設定をします。

# set nat destination rule 1 destination port 25565
# set nat destination rule 1 protocol tcp
# set nat destination rule 1 translation address 192.168.1.9
# set nat destination rule 1 translation port 25565
# set nat destination rule 1 inbound-interface pppoe0
# commit
# save

ファイアウォールの設定

このままだとセキュリティ的によろしくないのでファイアウォールを設定します。

VyOSルーターに対するファイアウォール

インターネット側からVyOSに対するファイアウォールを設定します。
VyOSから接続されるコネクションに対しては許可をしますが、インターネット側からのコネクションについては許可しない設定にします。

# set firewall name OUTSIDE_LOCAL default-action drop
# set firewall name OUTSIDE_LOCAL rule 10 action accept
# set firewall name OUTSIDE_LOCAL rule 10 state established enable
# set firewall name OUTSIDE_LOCAL rule 10 state related enable
# set interfaces ethernet pppoe0 firewall local name OUTSIDE_LOCAL
# commit
# save

インターネット側からVyOSルーターを経由する接続に対するファイアウォール

VyOSを経由して、インターネット側からの公開されているサーバへの接続を許可する設定です。
ポート開放でTCP 25565をポートフォワードする設定にしたので、TCP 25565を許可する設定をします。

# set firewall name OUTSIDE_IN default-action drop
# set firewall name OUTSIDE_IN rule 10 action accept
# set firewall name OUTSIDE_IN rule 10 state established enable
# set firewall name OUTSIDE_IN rule 10 state related enable
# set firewall name OUTSIDE_IN rule 20 action accept
# set firewall name OUTSIDE_IN rule 20 protocol tcp
# set firewall name OUTSIDE_IN rule 20 destination port 25565
# set interfaces ethernet pppoe0 firewall in name OUTSIDE_IN
# commit
# save

まとめ

IPoE接続でインターネットの速度を速くするのと引き換えにグローバルIPアドレスを失ったが、VyOSでソフトウェアルーターを作ればグローバルIPアドレスを取得してサーバを公開できますね。PPPoEなので速度はお察しですけど。

参考

Vyattaでフレッツ光ネクストにPPPoE接続する
VyOS の基本設定 (DHCP/DNS/NAT/Firewall/その他)