search
LoginSignup
8

More than 3 years have passed since last update.

posted at

Linuxルーターから、PPPoEによるインターネット接続を行う

はじめに

自宅の回線を光回線に変え、Linux製自作ルータのWAN側ネットワーク設定を変えたので覚書。
こちらの記事を参考に、LinuxからPPP接続によるインターネット接続設定を行います:exclamation:

rp-pppoeパッケージインストール

rp-pppoeをインストールします。

yum install rp-pppoe

今回紹介するコマンドは以下です。

コマンド 用途
pppoe-setup PPPoEの設定を行い、PPPoE用のインターフェースを作成する(デフォルトはppp0)
pppoe-start PPPoE接続を開始する
pppoe-stop PPPoE接続を終了する
pppoe-connect PPPoE接続を行う
pppoe-status PPPoE接続状態を表示する

pppインターフェース作成

イーサネットのインターフェース名を確認

まずは光回線で使用するイーサネットのインターフェース名を確認します。記事ではnmcliを使用していたので、ここではifconfig, ipでの確認方法を紹介。

ipの場合は、インターフェース名の次の行がlink/etherとなっているインターフェースが対象です。

ip
$ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether c0:3f:d5:60:c9:79 brd ff:ff:ff:ff:ff:ff

ifconfigの場合は、インターフェース名のlink/etherとなっているインターフェースが対象です。

ip
$ifconfig -a
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether c0:3f:d5:60:c9:79  txqueuelen 1000  (Ethernet)

イーサネットが複数接続されている場合は、抜き差ししたりするとdmesgというコマンドでそのインターフェースの情報変更が確認出来るので、そこからどのインターフェース名がイーサネットと対応するか確認してください:smile:

こんな感じにインターフェース情報が表示されます(以下はeno1というインターフェースの情報):thumbsup:

$dmesg
...
[    8.863583] e1000e: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

pppoe-setupによるPPPoE設定

基本的には参考元の記事と同じ手順で設定を行います。:pray:
なので実際の表示は省略。設定の順番をまとめておくと以下になります。

  1. プロバイダーから割り当てられたインターネット接続IDの指定
  2. 使用するイーサネットのインターフェース指定
  3. 常時接続にするか?
  4. DNSの設定はプロバイダーのものを使用するか?(server or enter)
  5. プロバイダーから割り当てられたインターネット接続パスワードの指定
  6. 一般的なプロバイダでDSLで接続するか?らしい。固定IPを提供してくれるようなプロバイダに対してはnoにするみたいです。参考
  7. ファイヤーウォールの設定
  8. 設定を保存するか?

私の契約したプロバイダーの場合は、DNSもプロバイダーが動的に割り振る形でした。
なので、以下DNSの設定⇒serverを入力。

DNS

Please enter the IP address of your ISP's primary DNS server.
If your ISP claims that 'the server will provide dynamic DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
Enter the DNS information here: 

また、設定を保存しておくと、2度目の設定時のdefault値は前回設定のものが採用されていました。
なので間違えた:scream_cat:!となっても、全てを一から入力とはならないので、設定項目が多いけど慌てないでOK:exclamation:

ちなみに2度目以降は最初にインターフェース指定が出来るようになります。複数インターフェース作成も可能です:v:

Welcome to the PPPoE client setup.  First, I will run some checks on
your system to make sure the PPPoE client is installed properly...

The following DSL config was found on your system:

  Device:      Name:
  ppp0         DSLppp0

Please enter the device if you want to configure the present DSL config
(default ppp0) or enter 'n' if you want to create a new one:

pppoe-start/pppoe-connectによる接続

pppインターフェースを作成しただけではインターネット接続は出来ません。PPPoEの接続を行います。

pppoe-start

うまく接続できるとこのようにグローバルIPが割り当てられ、インターネットに接続できるようになります:laughing:

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1454
        inet 143.189.89.40  netmask 255.255.255.255  destination 120.74.156.146
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 195430  bytes 232413820 (221.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 87227  bytes 17383286 (16.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pppoe-statusの表示はこんな感じ。

pppoe-status: Link is up and running on interface ppp0
8: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 143.189.89.40 peer 120.74.156.146/32 scope global ppp0
       valid_lft forever preferred_lft forever

pppoe-connectだとこんな感じ。

$pppoe-connect
...
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1

CHAP authentication succeeded
CHAP authentication succeeded
local  IP address 182.170.117.199
remote IP address 210.132.217.106
primary   DNS address 202.238.95.24
secondary DNS address 202.238.95.26

停止はpppoe-stopで行います:thumbsup:

pppoe-stop

これでWANインターフェースがppp0になるので、LANルーターとして使う場合はIPマスカレード設定もppp0向けに設定してあげればOKです。

iptables -t nat -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1 > /dev/null

参考

CentOS7.4でPPPoE接続 rp-pppoe編
マルチホーム環境のLinuxサーバでポリシールーティングを行う方法

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8