固定IPアドレス

FlashBoot 玄箱/Pro

DHCP で IP アドレスを割り当てていると、 telnet する度に毎回 IP アドレスを調べないといけないので、 標準ファームで固定 IP アドレスにする方法を探る。

といっても我が家は、
・全マシンの MAC アドレスを調べ、
・それぞれの MAC アドレスに対して固定で IP アドレスを払い出すよう DHCP サーバに設定がしてある
ので、クライアント(玄箱/Pro)側で IP アドレス固定にしなくとも、 固定されたアドレスが払い出されているのだが、、、
まあ、ネタということで。

ネットワークの設定をしているのは、、、

IP アドレスなど、ネットワーク系の設定をしているのは、、、
/etc/init.d/rcS を見ると、
~ # cd /etc/init.d/
/etc/init.d # less rcS
	:
	:
for CMD in mount_share.sh sethostname.sh networking.sh httpd.sh telnet.sh inetd
.sh
do
        exec_sh ${CMD}
done
	:
と、sethostname.sh と networking.sh とのようだ。

ホスト名の変更

/etc/init.d/sethostname.sh で
・/etc/host.info が存在して、
・かつ変数 hostname が設定されれば
それがホスト名となる。
玄箱/Pro には kup というホスト名を割り当てているので、 設定してみる
~ # hostname
KUROBOX-PRO
~ # mv /etc/host.info /etc/host.info.orig
~ # echo 'hostname=kup' > /etc/host.info
~ # ls -l /etc/host.info*
-rw-r--r--    1 root     root           13 Mar 19 07:44 /etc/host.info
-rw-r--r--    1 root     root           21 Jan 18 20:47 /etc/host.info.orig
~ # /etc/init.d/sethostname.sh start
hostname is setted to kup
~ # hostname
kup
~ #
OK.
リブートしてみる
	:
	:
===== Starting sethostname.sh =====
hostname is setted to kup
[Success]
	:
	:
KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
kup login:

IP アドレス類の変更

「IP アドレス類」とは、
・IP アドレス
・ネットマスク
・デフォルトゲートウェイ
・ネームサーバ
等である。

/etc/netinfo にそれぞれ
IP アドレスmy_ipaddress
ネットマスクmy_subnetmask
デフォルトゲートウェイmy_dgw
ネームサーバmy_dns1, my_dns2
を書けば良いようだ。

デフォルトでは、

~ # cat /etc/netinfo
my_ipaddress=dhcp
my_subnetmask=
my_dgw=
~ #
となっていて、起動時には
	:
	:
===== Starting networking.sh =====
create network files..
IP=[dhcp], netmask=[], dgw=[], dns1=[], dns2=[]
killall: dhcpcd: no process killed
route: SIOC[ADD|DEL]RT: No such process
Configuration network interface: lo eth0
requesting DHCP  tout=30[s]
eth0: link down
eth0: link up<5>, full duplex<5>, speed 1 Gbps<5>
/etc/dhcpc/dhcpcd.exe ::: /etc/dhcpc/dhcpcd-eth0.info up
dhcpcd.exe: interface eth0 has been configured with old IP=192.168.1.40
hostname is setted to kup
[Success]
	:
	:
と表示されている。
/etc/resolv.conf は以下の通り。
~ # cat /etc/resolv.conf
nameserver 192.168.1.1
~ #

固定 IP の設定をしてみる。といっても同じ設定だが、、、

~ # mv /etc/netinfo /etc/netinfo.orig
~ # echo my_ipaddress=192.168.1.40 > /etc/netinfo
~ # echo my_subnetmask=255.255.255.0 >> /etc/netinfo
~ # echo my_dgw=192.168.1.1 >> /etc/netinfo
~ # echo my_dns1=192.168.1.1 >> /etc/netinfo
~ # cat /etc/netinfo
my_ipaddress=192.168.1.40
my_subnetmask=255.255.255.0
my_dgw=192.168.1.1
my_dns1=192.168.1.1
~ # 
再起動してみる
	:
	:
===== Starting networking.sh =====
create network files..
IP=[192.168.1.40], netmask=[255.255.255.0], dgw=[192.168.1.1], dns1=[192.168.1.1], dns2=[]
killall: dhcpcd: no process killed
route: SIOC[ADD|DEL]RT: No such process
Configuration network interface: lo eth0
/sbin/ifconfig eth0 192.168.1.40 netmask 255.255.255.0
eth0: link down
Configuration resolv.conf
hostname is setted to kup
[Success]
	:
	:
表示の上だけでしかないが、固定 IP アドレスに設定されている。
ログインして確認する。
KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
kup login: root
Password:
login[663]: root login on 'ttyS0'


BusyBox v1.4.1 (2007-02-06 15:15:35 JST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:01:A4:CA:A5
          inet addr:192.168.1.40  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:512
          RX bytes:66 (66.0 B)  TX bytes:2454 (2.3 KiB)
          Interrupt:21

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  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:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

~ # cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.40 kup
~ # cat /etc/resolv.conf
nameserver 192.168.1.1
~ #
OK。

/etc/netinfo では、MTU の設定もできるが、略

/etc/resolv.conf は 起動の度、新規に作成されリブート前に手動で設定しても消えてしまう。
現在は手動で設定するしかない domain や search の設定をしても 消えてしまうので、/etc/netinfo で設定できるようになって欲しい。

余談:
今から夜勤に行ってきます。
たった2レコード更新するだけなんですが、徹夜で対応なんですよね、、、トホホ




KURO-BOX/PRO
玄人志向
楽天市場
TSUKUMO ネットショップ
Yahoo!ショッピング
Sofmap
クレバリー
TwoTop New!


ハックキット作り直し3たび+確認
ハックの記録
LinkStation/玄箱 をハックしよう

外付け USB HDD で NAS

Copyright (C) 2003-2007 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市