メインコンテンツまでスキップ

PPPoE IPv4 NAT ルーター

Ethernet 回線上の PPPoE、routerd PPPoESession、LAN DHCP、PPP インターフェース向け NAT44 の構成

物理 WAN は Ethernet で、IPv4 インターネットへの出口を PPPoE セッションで作る例です。

完全な YAML は examples/example-pppoe-ipv4-nat.yaml にあります。

構成図

図の対応表

番号意味主なリソース
[1]routerd の管理外にある回線終端 / ONU。routerd 管理外
[2]PPPoE を通す物理 Ethernet インターフェース。Interface/wan
[3]PPPoE セッションと論理的な出口インターフェース。PPPoESession/pppoe-home
[4]IPv4 forwarding を導出し、nftables NAT を適用するホスト。Derived host runtime, NAT44Rule/lan-to-pppoe
[5]LAN ゲートウェイと DHCPv4 セグメント。IPv4StaticAddress/lan-base, DHCPv4Server/lan-dhcpv4
[6]NAT 経由で PPPoE を IPv4 インターネット経路として使うクライアント。DHCPv4Server/lan-dhcpv4

この例で管理するもの

領域routerd リソース
PPPoE セッションPPPoESession/pppoe-home
LAN アドレス / DHCPv4IPv4StaticAddress/lan-base, DHCPv4Server/lan-dhcpv4
IPv4 インターネット接続NAT44Rule/lan-to-pppoe
フィルタリングFirewallZone/*, FirewallPolicy/home

設定の要点

# [3] 物理 WAN 上に作る論理 PPPoE インターフェース。
- kind: PPPoESession
metadata:
name: pppoe-home
spec:
interface: wan
ifname: ppp-home
username: user@example.jp
passwordFile: /usr/local/etc/routerd/secrets/pppoe-home.password
mtu: 1454
mru: 1454
defaultRoute: true

# [5] -> [3] LAN の IPv4 トラフィックを PPPoE セッション側へマスカレードする。
- kind: NAT44Rule
metadata:
name: lan-to-pppoe
spec:
type: masquerade
egressInterface: pppoe-home
sourceRanges:
- 192.168.40.0/24

確認

routerctl validate -f examples/example-pppoe-ipv4-nat.yaml --replace
routerctl plan -f examples/example-pppoe-ipv4-nat.yaml --replace
routerctl describe PPPoESession/pppoe-home
ip link show ppp-home
ip route show default

よく変えるところ

  • PPPoE のパスワードは YAML に直書きせず、参照先の秘密ファイルに置きます。
  • mtumru は ISP の案内に合わせます。
  • PPPoE をバックアップ経路にする場合は defaultRoute: false にします。