dhcp サーバーではまる

先日から騒いでいる Linux ルーターの設定なんですが、ネットワーク・カード3枚差しで、eth0 を WAN 側 (WAN と言っても別のルーターを介した LAN の中ですが)、eth1 と eth2 を LAN 側にして、LAN 側の2枚にそれぞれ dhcp サーバー (dhcpd) を実行させるための設定ではまりました。

LAN 側の dhcp サーバーが1枚のネットワーク・カードだけなら、たくさんの設定例がネット上に溢れています。また、LAN 側が2枚の場合でも、そのうち1枚を DMZ にして、dhcp サーバーを実行させるのが結局1枚の場合も情報はたくさんあります。

でも、LAN 側の2枚 (以上) に、それぞれ別の IP レンジを割り当てて実行させるための設定って、ほとんど情報がないんですね。

で、分からなかった設定項目なんですが、rpm 系で言うと DHCPDARGS という部分です。ここで dhcp サーバーを実行させるネットワーク・カードを指定しないと、WAN 側の eth0 も含めたすべてのネットワーク・カードに対して dhcpd を実行してしまいます。

でも、DHCPDARGS という部分で複数のカードを指定する書式がよく分からない。というか、うちは Debian なので、そもそも DHCPDARGS という設定項目ではなく INTERFACES という設定項目になりますが。

記述例としては、rpm 系は /etc/sysconfig/dhcp に DHCPDARGS=eth1、Debian 系は /etc/init.d/dhcp に INTERFACES=eth1 とする、などとあるのですが、はて、eth2 (以降) はどうやって書くのか?

細かいことですが、単にスペースで区切って足すのか、カンマで区切るのか、引用符で囲むのか、これが違うだけでちゃんと動いてくれない可能性があります。

果たして、全部やってみたところ、すべてダメだったんですよ。つまり、他の設定箇所で間違いがあって、ここの記述をどうすべきかがなかなか分からなかったんです。

ま、最終的には「INTERFACES="eth1,eth2"」(間はスペースなしのカンマ区切り) という記述が正解と分かったのですが (rpm 系の方は分かりません)、ここまでたどり着くのに随分時間がかかりました。でもその甲斐あって今は、Linux マシンを DHCP サーバー機能付きルーター・マシンとして、壊れたルーターをハブとして使い、快適な環境が出来上がりました。うれしぃー。


さて、この話を読んでいる人の中には、「そんなことで時間かけたり、古いマシンを再利用しようなどとケチケチせずに、仕事に必要なものには惜しみなくお金をかけなさい!」とおっしゃる人もいるでしょう。いや、ほとんどの人はそう思うでしょうね。

でも、技術系翻訳をする上で、技術にかかわる内容を自分で調べることは重要なんです。そのおかげで IT 業界で仕事したり、その分野の翻訳の仕事ができるようになった訳だし。何より、出来た時の達成感はたまらないですよ。

ま、何にしても、コツコツと積み重ねていくことが、結局は近道であり、大きな目標に確実に近づけるってことだと思います。いや、そう思わないとやってられませんけどね。


さて、これからそのルーター兼予備マシンで、スキャナーを使えるようにしなければ。でも何か、ルーター化が成功してちょっと満足したし、あまり時間かけたくないので、VMWare とか入れて Windows で使うことにしようかなぁ。

あ、それって負けですかね?