DHCPの設定方法

この部分の記述は Qube2 を対象に書かれています。 中口(takao-n@pop07.odn.ne.jp)さんからの情報です。

状況

今回の事例は、おおよそケーブルテレビ・インターネットの場合の例です。
  1. 貰える IP アドレスは 1つ。
  2. DHCP で配られる。
  3. DNS サーバアドレスも DHCP で配られる。

目的

  1. Qube2を DHCP クライアントとしてインターネットに接続したい。

    更に、

  2. Qube2にNATさせて、ローカルネット側に接続したPCでもインターネットに アクセスしたい。
  3. ローカル側でも DNS が使いたい。

問題

  1. インターネット側につなぐのはセカンダリインターフェースである(仕様)
  2. ブート時にセカンダリインターフェースは DHCP クライアントとして機能 しない。(プライマリはする)

基本方針

  1. 目的と問題から、セカンダリインターフェースを DHCP クライアントに することが必要になります。そのために、スクリプト(eth1up) と設定ファイル(ifcfg-eth1.master) を作ってスクリプトを実行します。
  2. NATのために、管理者サイトのネットワークページで NAT オプション、 IP転送オプションを on。
  3. プロバイダが提供するDNSを利用するために、QubeII の resolv.conf 内の DNS アドレスをローカルネット上のマシンに設定。 (プロバイダがDNSアドレスを明示していればそれでもいいでしょう。)
という方針で作業します。

(インターフェイスの名前は、プライマリ=eth0、セカンダリ=eth1 です。)

作業内容

ローカルネットワーク (192.168.75.0 とする)
        ↓
QubeII プライマリインターフェース(ローカル用アドレス 192.168.75.xで初期化)
        ↓
QubeII セカンダリインターフェース(DHCPで設定)
        ↓
インターネット

このようなネットワーク構成とします。

まず、/etc/sysconfig/network-scripts/ に、以下の内容で
ifcfg-eth1.master というファイルを作成

------------
DEVICE=eth1
IPADDR=
NETWORK=192.168.75.0
NETMASK=255.255.255.0
BROADCAST=192.168.75.255
-----------

次に、以下の内容で eth1up というファイルを作成

----- eth1up -----
#!/bin/bash

echo "Initializing eth1.  It takes about 60 seconds..."

if [ -f /etc/resolv.conf ]; then
  rm /etc/resolv.conf
  touch /etc/resolv.conf
fi

if [ -f ifcfg-eth1.master ]; then
  cp ifcfg-eth1.master ifcfg-eth1
else
  echo "file not found: ifcfg-eth1.master"
  exit 1
fi

if [ -f eth1uplog ]; then
  rm eth1uplog
  touch eth1uplog
fi

ifup ifcfg-eth1 >> eth1uplog
ifdown eth0 >> eth1uplog
/sbin/dhcpcd eth1 >> eth1uplog
sleep 60
ifup eth0 >> eth1uplog

if [ -f /etc/dhcpc/resolv.conf ]; then
  cp /etc/dhcpc/resolv.conf /etc/
  echo "eth1 successfully initialized."
else
  echo "failed to initialize eth1."
fi
----------

chmod 744 eth1up し、./eth1up として実行
作業はもちろん root で行います。
成功したら、ブラウザでQube2の管理画面を利用して、IP 転送等の
オプションを設定します。(「コントロールパネル」の一つ上に「ネットワーク」
メニューがあり、ここで設定します。)

私の環境では今のところこれで 100% 初期化できています。

ローカルネットワーク上のマシンのゲートウェイアドレスは
QubeII のプライマリインターフェースのアドレスに、
DNS は /etc/resolv.conf を見て設定します。

ちょっと困るところ

リース期限が切れた場合、一度ネットワークをリセット(背面パネルで操作) してから、eth1up とブラウザでの設定を行います。

面倒ですが、このリセットをしないと telnet などを受け付けないのです。
一番の解決策は起動時のスクリプトでセカンダリを DHCP で 初期化してやることなんでしょうけど、まだ方法が良くわかりません。


This page is administrated by
Cobalt Users Group. (usersgroup@cobaltqube.org)
All rights are reserved.
[BACK]