2008/02/23

ALIXで動くdebianをネットワークにつなぐ

調子に乗ってALIX3も購入してしまいました。そこでここからはALIX2からALIX3にCFカードを載せ替えて進めていきます。ただしそのために古い情報が残る場所もあるので、注意して進めていきます。

先日作成したCFカードを接続してALIX側でNTP, DNS, DHCPサーバーにするぐらいをしようと思います。いきなりCFカードを接続して画面の文字表示が壊れた場合にはTeraTermなどの端末プログラムのバンドレートを確認して、ブートが途中でハングアップする場合には電源を入れてメモリのカウントアップ中に's'を入力してから'm'をタイプして、mfgpt workaroundを有効にします。いままで遭遇した事象で気になるのはこれぐらいかな…。

loginプロンプトには'root'を入力してパスワードなしでログインできるので、まずは適当なパスワードを設定しましょう。

# passwd

ネットワークに接続する場合には/etc/network/interfaceに適当な記述を追加します。 ただしその前にifconfigでデバイス名を確認します。
# athlon:~# ifconfig -a
eth3      Link encap:Ethernet  HWaddr 00:ss:tt:zz:yy:xx
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:10 Base address:0x1000

lo        Link encap:Local Loopback
...
と、eth0ではなくeth3から名前がついています。 MACアドレスでgrepしていくと/etc/udev/rules.d/z25_persistent-net.rulesファイルの中にeth3とこのMACアドレスを紐付けている箇所がありました。 複数のALIXでCFカードを接続していくと、こんな問題になるのだと思います。 必要に応じて適宜修正するか、後のeth0を読み替えて進めます。

# cat /etc/network/interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
 address 192.168.1.2
 netmask 255.255.255.0
 network 192.168.1.0
 gateway 192.168.1.1
どう書いて良いかわからなければ、最初はDHCPで起動してみるのも良いかもしれません。
auto eth0
iface eth0 inet dhcp
今回はALIXをdhcpサーバーにするつもりなので、固定IPを指定しています。 設定を有効にするには再起動するか、ネットワーク設定を行なうスクリプトを実行します。
# /etc/init.d/networking restart
ネットワークが有効になったところで必要なファイルをapt-getするので、DNSを適当なところに設定します。
# cat /etc/resolv.conf
nameserver 192.168.1.1

さらにNTPdを導入して時刻同期を行ないます。

# apt-get install openntpd ntpdate
時刻同期はRINGプロジェクトが提供しているので、そこを指定する事にします。 以下では"listen on *"としていますが、これは家庭内LANで他のマシンからの問い合わせに答えるためです。全部の手持ちのマシンからntp.ring.gr.jpに問い合わせる必要はないですから。
# cat /etc/openntpd/ntpd.conf
listen on *
server ntp.ring.gr.jp
"ntp.t.ring.gr.jp"と記述していましたが、2008/Sep/20の時点ではまだDNSがIPを返答しない場合があります。ちゃんと使うのであれば"ntp.ring.gr.jp"を使いましょう。
このままリスタートしても時刻がリセットされてしまうので、時間がずれたままになってしまいます。"-s"オプションを付けて実行することで、openntpdの起動時に強制的に時刻をntpd.confに書かれているサーバーの時刻と合わせるようにします。
# cat /etc/default/openntpd
...
DAEMON_OPTS="-s"
リスタートします。
# /etc/init.d/openntpd stop
# ntpdate ntp.t.ring.gr.jp
# /etc/init.d/openntpd start
これで時刻は合いますが、表示はUTCで表示されます。 もし日本の時刻-JST-で表示させたければ、/etc/localtimeファイルを適当なリンクに置き換えます。
# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
# date 
Sat Feb 23 11:42:29 JST 2008
ここまでで時刻同期はできていますが、一応どこのNTPサーバーに接続しているのか確認しておきます。
# netstat -na | grep 123
udp        0      0 192.168.1.2:1032        210.188.213.230:123     ESTABLISHED
...
このIPアドレスがどこに向いているのかを確認するためには"nslookup"コマンドや"host"コマンドで確認すれば良いのですが、どうやらまだ導入されていないようです。 ひとまずここで終りにして、次は必要なコマンドを導入しつつ、DNSサーバーを作るところから進めていきます。

update/upgradeの実行について

ALIXでは内蔵時刻を保持するための電池を内蔵しているものを除き、時刻の設定を起動時に行なう必要があります。
CFカードをALIXに接続した後は手動で時刻を設定しない限り、"apt-get update"や"apt-get upgrade"といったコマンドを実行する事ができません。 ntpdateとopenntpdの設定を終える前に、これらのコマンドを実行したい場合には手動で時刻を合せましょう。例えば”2009年01月22日22時56分”に設定する場合は、こんな感じです。

# date 0122225609

0 件のコメント: