2009年05月23日

ネットワークの再設定

Radiance上では様々なネットワークサービスが稼動している。例えば

  • PPP接続
  • ルータ
  • ファイアウォール・NAT
  • DHCPサーバ
  • HTTPサーバ(外向き・内向き)
  • Sambaサーバ
などがある。これらのサーバをReady to useな状態に持っていかなければいけない。厄介なことに、このあたりの設定はハードウェアの構成に強く依存するのでノートPC上で設定することができない。


まずはPPP接続の修復。アクセスポイント名とパスワードがどうにも思い出せないので設定ファイルをコピーしてしまった。/etc/sysconfig/network-scripts/ifcfg-ppp0.cfgと/etc/ppp以下の全ファイルをコピーする。

接続のリース期限が切れるとIPアドレスが変わってしまう場合がある。IPアドレスが変わった時にダイナミックDNSのレコードを書き換えるサービスを走らせる。RadianceはDynDNSを使っているので、DynDNSを公式にサポートしているddclientをダウンロードした。READMEにしたがって設定ファイルを/etc/ddclient以下に配置してスクリプトファイルを/etc/init.d以下に配置する。起動時にddclientが立ち上がるようにchkconfigを使って設定する。

PPP接続をゼロから設定するときはadsl-setupコマンドを使う。手元にISPの契約書類を用意しておくこと。


ルータ・ファイアウォールの設定はiptables(今はnetfilterっていうんだっけ?)を使う。設定自体は横着して旧サーバからコピーしてしまったが、それでも結構ハマった。iptables周りは変更が激しいので、カーネルをビルドすると必ずトラブルが発生する。

CentOSのデフォルトカーネル(2.6.18)から最新カーネル(2.6.29)にスイッチしたところ、起動時に早速エラーが出た。ip_conntrack_netbios_nsが無いとのことである。とりあえずクラッシュしないので、見なかったことにして先に進む。 続いて、iptablesを再現するコマンド列をsourceコマンドで実行したところ、natチェインが使えないとの警告を食らってしまった。lsmodをかけてみると、確かにnatチェインに必要なiptable_natモジュールがロードされていない。っていうかipv4向けのiptable関連モジュールが何一つロードされていない。一方、ipv6向けのiptable関連モジュールは正常にロードされている。こうなるとカーネルの設定が怪しくなってくる。

カーネルの設定を対話的に確認・修正するにはmake menuconfigする。iptablesの設定はTOP→Networking support→Networking options→Network packet filtering framework(Netfilter)以下にある。設定を見ると多くのチェックボックスが空欄になっている。いつの間にやらディレクトリ構造自体が大分変わっているので、oldconfigに失敗したようである。IP→IP connection tracking supportやIP→Full NAT、IP→MASQUERADEなど、NATに必要なモジュール一式にチェックを入れる。いやむしろ全部入れる。どうせモジュールなんだ。 Core Netfilter Configuration以下もスイッチを入れまくる。外れているとマッチングルール類(-p tcp -m lengthとか)が効かなくなる。

Core Netfilter Configuration以下にNetwork name service protocol supportなるスイッチがあった。名前から察するに起動時にコケていた理由はこれじゃないだろうか。

あらかたスイッチを入れた後でカーネルを再コンパイルして再起動する。やっぱりip_conntrack_netbios_nsは見つからないらしい。ハズレか。でもnatチェインは使えるようになったみたいで、これまで通りのファイアウォールが展開される。最後に、起動時に現在のiptablesが再構成されるようにする。

# iptables-save > /etc/sysconfig/iptables

再起動すると、ファイアウォールは正しく構成されているみたいだが、ポートフォワード機能が働いていない。起動時に復旧されるのはiptables(またはnetfilter)の設定だけである。フォワードを有効にするには/proc/sys/net/ipv4/ip_forwardに1を書き込まなくてはならない。/etc/rc.localを編集して起動時に再設定されるようにする。

/etc/rc.local
##最後に付け加える
echo 1 > /proc/sys/net/ipv4/ip_forward

最後の仕上げ。ip_conntrack_netbios_ns.koを探して/lib/modules以下をさまよってみる。kernel-2.6.18以下には確かに存在するが、kernel-2.6.29以下には存在しない。変わりにnf_conntrack_netbios_ns.koが置かれていた。ソースを読み比べると同じ処理をしているように見える。また、チェンジログを見ると、kernel 2.6.19あたりでnf_conntrack_netbios_nsが追加された旨が書いてある。置き換わったのだろうか? /etc/sysconfig/iptables-config内のIPTABLES_MODULESを書き換えてnf_conntrack_netbios_nsをロードするように設定したら、起動時にメッセージが出なくなった。


DHCPサーバは/etc/dhcpd.confを設定する。 ぶら下がっているマシン全てにアドホックなアドレスを与えるならこんな感じ

/etc/dhcpd.conf
default-lease-time 3600;
max-lease-time 7200;
log-facility local6;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.16.255;
option routers 192.168.16.1;
option domain-name-servers 192.168.16.1;
##domain-name-serversにカンマ区切りでプロバイダのdnsサーバを入れる
ddns-update-style ad-hoc;

subnet 192.168.16.0 netmask 255.255.255.0 {
        range 192.168.16.2 192.168.16.32;
}

Sambaサーバの設定は、/etc/samba/smb.confを編集する。さらにユーザも追加する。

# smbpasswd -a yuji
Sambaのパスワードをタイプする
posted by yuji_at_radiance at 20:50| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。