はじめに
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/その他)