ADSLでつないでみる

Linux-2.4のPPPoE supportとpppd+pppoe pluginを使ってフレッツADSLに接続しました。
あっさり繋がりました。工事の方が大変だったようです(^^;;
その時のメモでも残しておきます。
用意するもの:
PPPoE supportとPacket Socketを有効にしたkernel。もちろんpppやetherも必要です。
pppd + pppoe plugin (PPPoE for Linux)
もちろん、ADSL modem、LANケーブルなどハードウェア的な環境も整えてください。

設定:
/etc/modules.conf(これを変更したらdepmod -aeを実行):

alias net-pf-24 pppoe

/etc/ppp/peers/isp:

plugin /usr/lib/pppd/plugins/pppoe.so
eth0          # ADSL modemと繋がってるinterface
noauth
defaultroute
noipdefault
debug
user "id@domain"

/etc/ppp/chap-secrets:

"id@domain" * "password"

接続:
# /usr/sbin/pppd call isp
基本はこれだけです。後は適当に接続scriptを書いたり、ip-upに壁をつくらせたりやってください。
IP masqueradeを使う場合には注意が必要です。
routerからは問題がないが、他のprivate machineからは様子がおかしい…例えば…
などという症状が起きてる場合には対処が必要です。原因はMTUがらみなんですが、詳しいことはさておき、とりあえず直すには、private machineで
# ifconfig eth0 mtu 1452
などとすれば直ります(デバイスは適当に変更してください)
いちいち変更したくない場合、あるいはWindows(変更するにはレジストリをいじる必要がある)やMac(やり方があるか不明)の場合には、routerで対処します。
kernel 2.4.3(TCPMSS targetを有効にする)以降、
iptables 1.2.1a以降にして、
iptables -A FORWARD -p tcp \
         --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
とします。これでprivate machine全部のmtuをいちいち変更しなくてもよくなるはずです。

なお、良かれと思ってICMPを全てはじいてしまってるホストは、
是非とも、ICMP Fragmentation Neededは通すようにしてください。
(C)Copyright 2001 by Sian <sian@big.or.jp>
Last modified: Thu Feb 26 23:02:41 JST 2004