2017年6月20日火曜日

DHCPサーバを立てたくてraspberry piを買う。そして御作法に泣かされる

ラズベリーパイ、それは苦行・・・。

基本的にサーバは仮想化せず、全て別サーバとして立てている。
仮想化したり統合することのメリットはよく分かっているのだけれども、パフォーマンス分析やら不具合やらに付き合うとろくでもなかった経験がある。
よっていつも通り別サーバを組んでいこうと思ったのだけれども、予算が無い。
なので今流行の(いや遅い・・・)ラズベリーパイで組んでみようと思い立った。
DHCPサーバは、基本設定を流し込めば終了なので、なんとでもなるだろうと思っていたのが運の尽き。

前提として、僕が付き合ってきたのはcentosである(≒RHEL)。
なので、centosの「御作法」は分かっているつもりである。が、Rasberryはdebian(Rasbianなら)である。御作法が違う。

ログインユーザが「pi」


・・・このユーザは何なのだ。
あと、キー配列が英。コンフィギュレーションを出して編集。
おかしいだろ・・。

気を取り直して少し弄る。
sudoは通る。ただ、ログアウトしてpiで入ろうとするとパスワードが分からない。
・・・とりあえず、rootパスワードを設定する。
sudo passwd root
その次に、得体の知れないpiから離れるために、自分のユーザを作る。
useradd foobar
よく分からない住所やらが求められるが、気にせずエンターで済ませる。
ここではまったのが、なんとsudoerでなければGUIログイン出来ない・・・。
sudoerに追加する。
sudo gpasswd -a foobar sudo
で、piを消す。
sudo userdel -rf pi

次にネットワークだ。

NICに一意の固定IPを持たせるために、/etc/network-scr...と探そうとすると、無い。
ググると/etc/network/interfacesがネットワーク情報とのこと。
ううむ・・・とりあえず編集する。
sudo vi /etc/network/interfaces
ここで驚愕の事実。
ラズパイのviは、viだった・・・。
使い慣れているのはvimである。もう泣きたい。
カーソルの動かし方だけなんとなく思い出して必死に編集。
HJKLでキー移動。カーソルはそれぞれ←↓↑→に対応。
注:192.168.xxx.1はゲートウェイサーバ
eth0のところを
iface eth0 inet static
address 192.168.xxx.xxx
netmask 255.255.255.0
gateway 192.168.xxx.1
とするが、繋がらない。
ifconfigでeth0を見ると、169.254...が出る。
本当に泣きたい。
更にググると、dhcpcd.confに書き込めとのこと。
http://qiita.com/MarieKawasuji/items/b088ffb252a92eee8f5d
・・・どういうことかさっぱり分からない・・・自分自身にDHCP機能を使っているということ?
と思っていたら、dhcp「c」d.confだった。
・・・もう何も気にせず書くことにする。
sudo vi /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.xxx.xxx/24
static routers=192.168.xxx.1
static domain_name_servers=192.168.xxx.1

・・・繋がった・・・。

sudo apt-get update
sudo apt-get upgrade
更に、digを入れたいが無いと言われる。
ググると
http://d.hatena.ne.jp/rx7/20080306/p1
dnsutilか・・・。

sudo apt-get install dnsutils
vimも入れる。
sudo apt-get install vim

・・・次。DHCPサーバ。

sudo apt-get install isc-dhcp-server
centosもそうだけど、linuxは少しはパッケージ名とか気を遣ってほしい。
これが入ってるパッケージはこれ!みたいなのがさっぱり分からない。

vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
#クラスBで立てるので、IPアドレスは172.16.X.X。
subnet 172.16.16.0 netmask 255.255.254.0 {
        option routers          172.16.16.1;
        option subnet-mask           255.255.254.0;

        option domain-name           "ufotable.net.local";
        option domain-name-servers      172.16.16.1;

        option time-offset           -18000; # Eastern Standard Time
        default-lease-time 65530;
        max-lease-time 65535;
        }#EOS

        host insert_client_name {
               hardware ethernet HO:ST:MA:CA:DD:RE;#SS
               fixed-address 172.16.16.XXX;
               }
                                            }#EOT

やっと書けたが、次はサービス追加が分からない。弄っているとsystemdな事が判明するが、dhcpdを立ち上げようとし続けてはまる。
そう、isc-dhcp-server(名前が違うんだ・・・)。

sudo systemctl start isc-dhcp-server
エラーで止まる。
ううむ・・・。
http://www.mugbot.com/2016/08/21/raspberry-pi%E3%81%ABisc-dhcp-server%E3%82%92%E8%A8%AD%E7%BD%AE%E3%80%81%E8%87%AA%E5%8B%95%E8%B5%B7%E5%8B%95%E3%81%95%E3%81%9B%E3%82%8B/


/etc/default/isc-dhcp-serverの編集

・・・はあ?
もう本当によく分からない。
INTERFACES=""

の””の中にeth0を挿入
 ・・・。
sudo vim /etc/default/isc-dhcp-server
でINTERFACEにeth0を指定。
クラスCで指定した固定IPアドレスは、走らせる前にクラスBに指定し直さないと走らないので注意。
しかもその時、interfacesも弄らなきゃいけなくて、全く直感的じゃないし面倒なだけという・・・。
とりあえず諸々で、再度sudo systemctl start isc-dhcp-serverで走った。
自動化は
sudo systemctl enable isc-dhcp-server

御作法、恐るべし・・・。

個人的にはデスクトップ用途でしかdebian≒ubuntu≒mintを弄っていなかったので、良い勉強になった。
嘘です。もうCUIで正直弄りたくありません・・・。
慣れって大事。本当に・・・。

0 件のコメント:

コメントを投稿