不定期日記

J2千葉観戦記, ライブの感想を中心とした備忘録

2008-05-01 (Thu) [長年日記]

_ [NetBSD][Emobile] Emobileでブロードバンドルーター

hwhack: NetBSDでEmobile D02HWを使う(設定編)に倣って(というかそのまま使って)、ALIX.3C2 (NetBSD) + D02HW でブロードバンドルーターを作ってみた。 以下設定内容をメモ

NetBSDそのものの設定

  • ネットワークの設定
    • /etc/ifconfig.xxN というファイルを作る
      • IP-NO netmask 0xffffff00
    • /etc/sysctl.conf に以下の内容を追加(FreeBSDでrc.confに gateway_enable="YES" と書くことに相当)
      • net.inet.ip.forwarding=1
    • /etc/rc.conf
      • hostname="HOSTNAME"
    • /etc/resolv.conf 作成
      • nameserver IP-ADDRESS
    • DHCPを使用するときは、 /etc/rc.conf に dhclient=YES と書いて終わり
  • srcの取得
    • sup -v -d <supfile>
      • <supfile>の内容
current release=src host=sup.jp.NetBSD.org \
        base=/usr prefix=/usr \
        backup use-rel-suffix
current release=ksrc-common host=sup.jp.NetBSD.org \
        base=/usr prefix=/usr \
        backup use-rel-suffix
current release=ksrc-i386 host=sup.jp.NetBSD.org \
        base=/usr prefix=/usr \
        backup use-rel-suffix
current release=gnu host=sup.jp.NetBSD.org \
        base=/usr prefix=/usr \
        backup use-rel-suffix
current release=pkgsrc host=sup.jp.NetBSD.org \
        base=/usr prefix=/usr \
        backup use-rel-suffix

PPPの設定

以下の設定をした上で、

pppd call emobile

と実行。

  • /etc/ppp/peers/emobile
dtyU0 460800 crtscts
lock
nodetach
hide-password
local
noauth
# dns routing
usepeerdns
defaultroute
persist
noipdefault
# disable compressions
novj
noccp
nobsdcomp
# auth
user "em"
# misc? (xxx)
ipcp-restart 8
ipcp-max-configure 50
ipcp-accept-local
ipcp-accept-remote
# connect script
connect '/usr/sbin/chat -v -f /etc/ppp/chat-emobile -T *99***1#'
  • /etc/ppp/chat-emobile
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
ECHO ON
SAY "Connecting"
TIMEOUT 15
"" "\d\d\dat\r\dat"
TIMEOUT 5
"OK-\Kat-OK" "at"
OK "at&FE1V1X1&D2&C1S0=0"
OK "at+ipr=230400"
SAY "Let's go"
OK "atdt\T"
CONNECT ''
  • /etc/ppp/ip-up (chmod 0755 /etc/ppp/ip-upしておくこと)
#!/bin/sh

if [ -f /etc/ppp/resolv.conf ]; then
	chmod 644 /etc/ppp/resolv.conf
	cp /etc/resolv.conf /etc/resolv.conf-
	if [ ${USEPEERDNS:-0} -eq 1 ]; then
		cp /etc/ppp/resolv.conf /etc/resolv.conf
		chmod 644 /etc/resolv.conf
	fi
fi
  • /etc/ppp/ip-down (chmod 0755 /etc/ppp/ip-downしておくこと)
#!/bin/sh
#
if [ -f /etc/resolv.conf- -a ${USEPEERDNS:-0} -eq 1 ]; then
	mv /etc/resolv.conf /etc/resolv.conf.old
	cp /etc/resolv.conf- /etc/resolv.conf
	chmod 644 /etc/resolv.conf
fi

if [ -f /etc/ppp/resolv.conf ]; then
	mv /etc/ppp/resolv.conf /etc/ppp/resolv.conf-
fi
  • /etc/ppp/chap-secret (chmod 0600 /etc/ppp/chap-secretしておくこと, 中身なし)

persistがうまく動かないようなので、以下のスクリプトをcronで呼ぶことにした

#!/bin/sh
if ! [ -f /var/run/ppp0.pid ]
then
	pppd call emobile &
fi

NAT等の設定

NetBSD 上で IP Filter を使うを参考にipf.confとipnat.confを設定。

  • /etc/rc.conf
ipfilter=YES
ipnat=YES
  • /etc/ipf.conf
pass in all
pass out all

# block 137-139,445
block in proto tcp from any to any port 136 >< 140
block in proto tcp from any to any port = 445
block in proto tcp from any port 136 >< 140 to any
block in proto tcp from any port = 445 to any

# block all TCP packets with only the SYN flag set (this is the first
# packet sent to establish a connection) out of the SYN-ACK pair.
block in on ppp0 proto tcp from any to any flags S/SA
  • /etc/ipnat.conf
map ppp0 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp
map ppp0 192.168.0.0/24 -> 0/32 portmap tcp/udp 1025:65000
map ppp0 192.168.0.0/24 -> 0/32

ipf.confの設定は、以下も参考にした

tmpfs

いちいちシャットダウンするのが面倒なので、/をread-onlyでマウント。 どうしても書き込みが必要な箇所のみ、tmpfsでマウントすることにした。 いろいろエラーが出ているけど気にしない方向で。

  • /etc/fstab
/dev/wd0a		/	ffs	ro	1	1
tmpfs		/var/log	tmpfs	rw
tmpfs		/var/run	tmpfs	rw
tmpfs		/var/spool/lock	tmpfs	rw

なお、/をrwでマウントしなおす場合は、以下のコマンドを実行する。

mount -u /

最初ノートPCからddでコンパクトフラッシュに書き込むつもりだったがうまくいかず、結局IDE接続のCFアダプタを2つも買ってくることになったが (うち一つは、それで書き込んだシステムがALIXでブートしなかった)、ALIXは、これだけ安くて小さいのにi386だというのがすばらしい。 これでUSB接続のCDからブートできたら最強だと思う。

あまりよく調べずにEMOBILEを契約した後で、サービスエリアが広くて、ある程度海上でも使えるauにしておけば良かったと後悔したのは内緒。


2001|01|07|08|09|10|11|12|
2002|01|02|03|
2003|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|08|09|10|11|12|
2017|03|05|06|09|11|12|
2018|05|08|10|11|
2020|07|