2009年8月28日金曜日

Ubuntu Serverでローカルルータを作る (2)

今回はルータ機のルーティングテーブルへのルーティング情報の追加を扱ってみます.
ルーティングテーブルへの情報の追加は、routeコマンドで行いますが、このコマンドで追加したルーティング情報はマシンを再起動すると消えてしまうため、起動時に自動的に追加されるようにします.
  1. ルータ機にログインし、cdコマンドで/etc/networkに移動します.
  2. 適当なテキストエディタでinterfacesを開く.
  3. このファイルの末尾に、以下のような文を付け足す.
    post-up route add -net 192.168.2.0 gw 192.168.0.254 metric 1 netmask 255.255.255.0 eth0
    
これでネットワークアドレス192.168.2.0のネットワークに対するルートが起動時に自動的に設定されるようになります.
なお、各アドレスは使用しようとする環境に合わせて、適宜読み替えてください.
routeコマンドの解説は、ここで私がするよりも全然出来の良い記事がありますので、そちらを参照ください.

2009年8月19日水曜日

Ubuntu Serverでローカルルータを作る (1)

Ubuntu Serverをローカルルータとして構築した時の記録.
NATやPPPoEを扱えるインターネットルータではなく、あくまで異なるセグメント (192.168.0.0/24と192.168.1.0/24いったような)のネットワークを相互接続するルータについてである点ご注意を.
今回は最低限ルータとして機能するまでを扱います.
  1. 接続するセグメント数分だけNICを差したマシンを用意する.
    今回の例では2ネットワークを接続している.
    ちなみにメモリは、最小構成であれば128MB程で十分に動作する.
  2. Ubuntu Serverをインストールする.
    Ubuntu Serverのインストールでは、最後の方にインストールする機能 (Apache、Sambaなど)の選択画面が出てくるが、ここでは何も選択せずにインストールして構わない.
    但し、ターミナルソフトなどでリモート管理したい場合はここでOpenSSHを入れておいても良いだろう.
  3. インストール完了後、念のため、
    sudo apt-get update
    sudo apt-get upgrade
    
    とコマンドを打ち、OSのアップデートをしておくと良いと思われる.
  4. Ubuntu Serverのインストール時には、複数枚あるNICの内の一枚しか有効にならない上、既にDHCPサーバが存在する環境でインストールした場合、動的にIPアドレスを取得する設定になっているので、ルータとして使用するために固定IPアドレスに変更したり、有効になっていないNICのIPアドレス設定を行う.

    まず、
    ifconfig -a
    

    と入力し、各NICに付けられているデバイス名を確認します.
    通常は、eth0、eth1、eth2・・・といった感じで枚数分だけ連番で付けられているはずです.
    今回はeth0、eth1と付けられていることを前提に話を進めます.

    次に、
    cd /etc/network
    
    と入力し、/etc/networkディレクトリに移動する.

    次に、ディレクトリ内のinterfacesファイルを適当なテキストエディタで開く.
    すると、以下のような内容のファイルが表示されるはずである.
    IPアドレス等の設定は基本的にこのファイルを書き換えることで行うことになる.
    このファイルの、
    auto eth0
    iface eth0 inet dhcp
    

    の部分を、以下のように書き換え、固定IPアドレスの設定に変更する.
    当然ながら設定値は自分の環境に応じて適宜変更してください.
    なお、eth0の部分は有効になっているNICによってはeth1と表示される可能性もありますが、ここではeth0が有効になっているものとして扱います.
    auto eth0
    iface eth0 inet static
    address 192.168.0.253
    netmask 255.255.255.0
    gateway 192.168.0.254
    dns-nameservers 192.168.0.254
    

    2行目の iface eth0 inet dhcp のdhcpの部分をstaticに書き換えることで、固定IPアドレスでの設定になる.
    また書き足した部分の内、addressはIPアドレス、netmaskはサブネットマスク、gatewayはデフォルトゲートウェイ、dns-nameserversは参照するDNSサーバである.
    DNSサーバが複数ある場合、以下のように書くことも出来る.
    dns-nameservers 192.168.0.1 192.168.0.2
    

    同じように、次はもう一枚のNIC (eth1)の設定を行います.
    interfacesに、以下の内容を追記します.
    auto eth1
    iface eth1 inet static
    address 192.168.1.254
    netmask 255.255.255.0
    

    基本的に一枚目のNICとやっていることは同じですが、デフォルトゲートウェイの設定とDNSサーバの設定は不要です.
    ここまで終了したら、interfacesは上書き保存して閉じます.
    次に、以下のコマンドを入力して/etcディレクトリに移動します.
    cd ../
    
    /etcディレクトリ内のsysctl.confをテキストエディタで開き、以下の行を探します.
    大体40行目前後にあると思われますので、割とすぐ見つかるはずです.
    #net.ipv4.ip_forward=1
    
    この行の頭に付いている#を消し、上書き保存して閉じます.
  5. 有効になっていないNIC (eth1)を起動し、今までの設定を反映させます.
    まず、以下のコマンドを入力し、eth1を起動します.
    ifconfig eth1 up
    

    次に、設定を反映させるため、以下のコマンドを入力します.
    /etc/init.d/networking restart
    

    これで最低限の機能を持ったローカルルータとして動作するようになります.
とりあえずはこれで完成でありますが、次回以降DHCPリレーエージェントなどを使用できるようにして、より高機能なローカルルータを作り上げていくことにします.