PPP 接続の共有

提供: ArchWiki
移動先: 案内検索

要件

まず最初に以下を確認してください:

  1. PPP 接続がつながっていること。
  2. 接続を共有するのに使用する Ethernet インターフェイスカードがコンピュータに接続されていること。

インストール

有線・無線どちらの共有でも公式リポジトリから以下のパッケージをインストールする必要があります:

  • iptables: ネットワーク内のパケットを制御。
  • dnsmasq: DHCP と DNS のキャッシュサーバーとして使用。
  • bridge-utils: ネットワークブリッジの設定。

無線と有線どちらの接続を共有したいかによって、以下のパッケージもインストールしてください:

  • 有線: iproute2 または net-tools (net-tools は廃止予定なのでこの記事では iproute2 を使います)。
  • 無線: iw または wireless_tools (wireless_tools は廃止予定なのでこの記事では iw を使います)。

有線イーサネットの共有

  • PPP 接続を立ち上げます。
以下を (root で) 実行して、通常通りに IP アドレスをインターフェイスに割り当てます:
# ip addr add 192.168.0.254 dev eth0
  • カーネルをルーターモードに設定してください。以下を実行:
# sysctl net.ipv4.ip_forward=1
  • dnsmasq を設定します。/etc/dnsmasq.conf に以下の変更を加えて下さい (必要ならアンコメント):
/etc/dnsmasq.conf
domain-needed
bogus-priv
interface=eth0 # change to your chosen interface
dhcp-range=192.168.0.1,192.168.0.100,12h
  • dnsmasq デーモンを起動してください。
  • 最後に、インターネットからの接続をインターフェイスに接続しているクライアントに転送するようにファイアウォールを設定します。以下を実行:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
上記の ppp0 インターフェイスが使用する PPP インターフェイスになります。必要に応じて置き換えて下さい。
  • 設定完了です。
警告: 上記の設定はセキュリティを保護するようになっていません。ファイアウォールを使っている場合、適当に修正してください。同じことおは WLAN インターフェイスの設定にもあてはまります。

ネットワークブリッジ

以下 PPP 接続が eth0、接続を共有するのが eth1eth2 とします。

# ip addr add 0.0.0.0 dev eth1  # remove IP from eth0
# ip link set eth1 up           # ensure the interface is up
# ip addr add 0.0.0.0 dev eth2  # remove IP from eth1
# ip link set eth2 up           # ensure the interface is up
# brctl addbr br0               # create br0 node
# brctl addif br0 eth1          # add eth0 to bridge br0
# brctl addif br0 eth2          # add eth1 to bridge br0
# ip addr add 192.168.0.254 dev br0

dnsmasq.conf のインターフェイスを br0 に変えてください:

interface=br0 

そして dnsmasq デーモンを再起動してください。

これで eth1eth2 でインターネットに接続できるようになります。

WLAN の共有

警告: 以下の手順では暗号化しないアドホックネットワークを作成します。WPA1 暗号を使用する方法はアドホックネットワーク#WPA supplicant を見て下さい。セキュリティを高めたいときは、WPA2 によって暗号化するソフトウェアアクセスポイントを作成してください。
  • PPP 接続を立ち上げて下さい。
  • WLAN 接続を設定します: SSID を選択してネットワークタイプにアドホックを選択してください。以下では wlan0 インターフェイスを使うこととします。
192.168.0.254 などのアドレスに wlan0 インターフェイスを設定します。インターフェイスの設定は以下を実行することで行います:
# iw wlan0 set type ibss
# iw wlan0 ibss join MyFreeWlan
その後、通常通りに IP アドレスをインターフェイスに割り当てます。以下を実行:
# ip addr add 192.168.0.254 dev wlan0
ワイヤレスカードによっては設定方法は変わってくる可能性があります。
  • カーネルをルーターモードに設定してください。以下を実行:
# echo 1 > /proc/sys/net/ipv4/ip_forward
  • dnsmasq を設定します。/etc/dnsmasq.conf に以下の変更を加えて下さい (必要に応じてアンコメント):
etc/dnsmasq.conf
domain-needed
bogus-priv
interface=wlan0    # change to your interface
dhcp-range=192.168.0.1,192.168.0.100,12h
  • dnsmasq デーモンを起動してください。
  • 最後に、WLAN に接続しているクライアントにインターネットからの接続を転送するようにファイアウォールを設定します。以下を実行:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
上記では ppp0 インターフェイスを使用していますが、必要に応じて置き換えて下さい。
  • これで設定は完了です。

共有スクリプト

アドホックネットワークの wlan0eth0 を共有するスクリプト:

ethoverwlan.sh
#!/bin/bash

iw wlan0 set type ibss
iw wlan0 ibss join proxywlan
ip addr add 192.168.0.254 dev wlan0
ip link set wlan0 up
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

参照