PPP 接続の共有
ナビゲーションに移動
検索に移動
要件
まず最初に以下を確認してください:
- PPP 接続がつながっていること。
- 接続を共有するのに使用する 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 インターフェイスになります。必要に応じて置き換えて下さい。
- 設定完了です。
ネットワークブリッジ
以下 PPP 接続が eth0、接続を共有するのが eth1 と eth2 とします。
# 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 デーモンを再起動してください。
これで eth1 と eth2 でインターネットに接続できるようになります。
WLAN の共有
- 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 インターフェイスを使用していますが、必要に応じて置き換えて下さい。
- これで設定は完了です。
共有スクリプト
アドホックネットワークの wlan0 で eth0 を共有するスクリプト:
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