LoginSignup
9
9

More than 5 years have passed since last update.

Fedora 21 で PPPoE クライアント + 無線 LAN ルーターを構築する

Last updated at Posted at 2016-03-21

 IdeaPad S205 (Lenovo, 2011) にインストールした Fedora 21 で PPPoE クライアントと無線Wi-Fiルーターを構築した手順の記録です。


 ルーティングとPPPoE接続ができないVDSL宅内装置を有線でラップトップに接続して、ラップトップをWi-Fiアクセスポイント、ルーター、さらにファイアウォールとして構築を試します。ブリッジは使用せず、NAT(DHCPサーバーとIPフォワーディング)を利用する方法で以下のRPMパッケージを使用します。

1. PPP通信を確立する

 まず、ラップトップをインターネットに繋げるところからはじめます。pppoe-setupで ISP から提供されたユーザ名とパスワードを設定して、pppoe-startで接続を開始します。

2. 無線ネットワークインタフェースを有効化する

 無線LAN側のゲートウェイを用意します。ip addr add <IFADDR> dev <DEVICE>で無線ネットワークインタフェースにIPアドレスを設定した後、ip link set <DEVICE> upでネットワークインタフェースを有効化します。利用できるネットワークインタフェース名はiw devコマンドで一覧を表示できます。

 下の例では、クラスBのプライベートアドレス 172.16.1.1/24 をネットワークインタフェース wlp3s0 に割り当てています。

$ sudo ip addr add 172.16.1.1/24 dev wlp3s0
$ sudo ip link set wlp3s0 up
$ ifconfig wlp3s0

wlp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.16.1.1  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 94:39:e5:66:2e:b6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3. Wi-Fiアクセスポイントデーモンを起動する

 hostapdの設定ファイル /etc/hostapd/hostapd.conf にSSID、パスフレーズ等を設定します。設定ファイルの用意ができたら sudo service hostapd start でデーモンを起動します。

$ iw dev wlp3s0 info
Interface wlp3s0
    ifindex 3
    wdev 0x1
    addr 94:39:e5:66:2e:b6
    ssid Kalakaua Avenue
    type AP
    wiphy 0
    channel 1 (2412 MHz), width: 20 MHz (no HT), center1: 2412 MHz

$ iw dev wlp3s0 station dump
Station 64:a7:69:7f:4c:f2 (on wlp3s0)
        inactive time:  339 ms
        rx bytes:       145278
        rx packets:     1081
        tx bytes:       222035
        tx packets:     659
        tx retries:     35
        tx failed:      0
        signal:         -35 dBm
        signal avg:     -36 dBm
        tx bitrate:     54.0 MBit/s
        rx bitrate:     54.0 MBit/s
        authorized:     yes
        authenticated:  yes
        preamble:       short
        WMM/WME:        no
        MFP:            no
        TDLS peer:      no
Station 00:24:6b:5b:97:80 (on wlp3s0)
        inactive time:  6764 ms
        rx bytes:       81346
        rx packets:     559
        tx bytes:       247239
        tx packets:     381
        tx retries:     48
        tx failed:      0
        signal:         -55 dBm
        signal avg:     -44 dBm
        tx bitrate:     48.0 MBit/s
        rx bitrate:     6.0 MBit/s
        authorized:     yes
        authenticated:  yes
        preamble:       long
        WMM/WME:        no
        MFP:            no
        TDLS peer:      no

 この時点で子機がアクセスポイントに接続できるようになります。ただし、IPはまだ採番されません。

4. DHCPデーモンを起動する

 DHCPの設定ファイル /etc/dhcp/dhcpd.conf にネットワークアドレス、ブロードキャストアドレス、ネットワークマスク等を設定します。DHCPデーモンは sudo service dhcpd start で起動します。

DHCPDARGS="wlp3s0";

subnet 172.16.1.0 netmask 255.255.255.0 {
  range 172.16.1.2 172.16.1.254;
  option routers 172.16.1.1;
  option broadcast-address 172.16.1.255
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  default-lease-time 600;
  max-lease-time 7200;
}

 DHCPが起動すると、IP採番待ちをしていた子機にアドレスがふられるようになります。

$ sudo arp
Address                  HWtype  HWaddress           Flags Mask            Iface
172.16.1.2               ether   00:24:6b:5b:97:80   C                     wlp3s0
172.16.1.4               ether   64:a7:69:7f:4c:f2   C                     wlp3s0

 ここまでで無線LANだけは構築できましたが、まだLANとWANが繋がっていません。後続の手順で、プライベートネットワークからインターネットへ接続できるようにiptablesのNAT機能を設定します。

5. 無線LANとPPPoEのパケットを転送する

 IPフォワーディングの有効化を確認します。IPフォワーディングを一時的に有効化する場合のコマンドはsudo sysctl net.ipv4.ip_forward=1。永続的に有効化する場合は /etc/sysctl.confnet.ipv4.ip_forward=1 を追記します。

 有効化の確認後、プライベートネットワークから送信するパケットをPPPoEから送信するようネットワークアドレス変換します。追加したルールを機能させるには、既存のルールとの順序を確認しておく必要があります。

# POSTROUTINGチェインに、LANから送られるパケットをWANから送りだすよう変換するルールを追加します
$ sudo iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o ppp0 -j MASQUERADE
$ sudo iptables -t filter -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -t filter -A FORWARD -i wlp3s0 -o ppp0 -j ACCEPT

6. デーモンの自動起動を設定する

6-1. 無線ネットワークインタフェースの自動起動

/etc/sysconfig/network-scripts/ifcfg-<DEVICE> に設定内容を記載します。

BOOTPROTO=none
DEFROUTE=yes
DEVICE=wlp3s0
HWADDR=94:39:e5:66:2e:b6
IPADDR=172.16.1.1
NETMASK=255.255.255.0
NETADDR=172.16.1.0
BROADCAST=172.16.1.255
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Wireless
6-2. hostapdの自動起動

$ sudo systemctl enable hostapd

6-3. dhcpdの自動起動

$ sudo systemctl enable dhcpd

6-4. iptablesのIPフォワーディング

 IPフォワーディングを永続的に有効化するため、/etc/sysctl.confに次の設定値を追記します。

net.ipv4.ip_forward=1

参考

9
9
0

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
  3. You can use dark theme
What you can do with signing up
9
9