- ネットワークの設定 + DHCP -
ここでは、サーバーをインターネットに繋ぐための設定 と LAN内のPCに自動的にIPアドレスを振ってくれるDHCPサーバーの設定を行います。
また、ルーター機能のひとつとして、LAN 内の PC を外部に接続できるようにするための設定(マスカレード)も行います。
インストール時にネットワークの設定をした方は、すでに設定済みだと思われるので、どのような設定になっているか確認してみるのもいいと思います。
- NIC(LANカード) & ホスト名の設定 -
NIC ( Network Interface Card )の設定を行います。私の環境では、サーバー兼ルーターとしておりますので、LANカードが2枚刺さっております。
Linux では LAN カードのことを、eth0 とか eth1 と呼んでいます。
そこで、eth0 、及び eth1 に対してIPアドレスの設定を行います。
私の環境では、eth0 がプライベート( LAN )側、eth1 がグローバル( WAN )側となっております。各自の環境に合わせ設定してください。
こちらに設定ファイルがあります。 # cd /etc/sysconfig/network-scripts eth0 (LAN側) の設定 # vi ifcfg-eth0 DEVICE=eth0 ← インタフェースの名前を指定します BOOTPROTO=static ← 静的(固定)に IP アドレスを設定します。 BROADCAST=192.168.0.255 ← ブロードキャストアドレス IPADDR=192.168.0.1 ← IP アドレス NETMASK=255.255.255.0 ← ネットマスク NETWORK=192.168.0.0 ← ネットワークアドレス ONBOOT=yes ← システム起動時にインタフェースを有効にします eth1 (WAN側) の設定 # vi ifcfg-eth1 DEVICE=eth1 BOOTPROTO=dhcp ← YBB なので動的にIPアドレスを取得します(DHCPクライアントになります) ONBOOT=yes ホスト名の設定 # vi /etc/hosts # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.0.1 server.e-hiro.net server ← この行を追加 # hostname ← hostname コマンドで今の設定を確認できます server.e-hiro.net ネットワーク内のホスト名の設定 # cd /etc/sysconfig # vi network NETWORKING=yes HOSTNAME=server.e-hiro.net 上記のようなネットワーク関連の設定を変更した場合には、 network サービスを再読込、または再起動してください。 # /etc/rc.d/init.d/network reload (または restart) インターフェース eth0を終了中: [ OK ] インターフェース eth1を終了中: [ OK ] ループバックインターフェース を終了中 [ OK ] IPv4パケット転送を無効化中: [ OK ] ネットワークパラメータを設定中: [ OK ] ループバックインターフェイスを呼び込み中 [ OK ] インターフェース eth0を活性化中: [ OK ] インターフェース eth1を活性化中: [ OK ] 自分で設定した、もしくはDHCPサーバー(YahooBB)によって割り当てられたIPアドレスなどの情報を 確認するには、ifconfig コマンドを使用します。 # ifconfig eth0 Link encap:Ethernet HWaddr 00:AA:BB:CC:DD:EE inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:284970 errors:0 dropped:0 overruns:0 frame:0 TX packets:586714 errors:0 dropped:0 overruns:11 carrier:0 collisions:0 txqueuelen:100 RX bytes:21613182 (20.6 Mb) TX bytes:809418649 (771.9 Mb) Interrupt:5 Base address:0x4000 eth1 Link encap:Ethernet HWaddr 00:FF:AA:CC:EE:55 inet addr:xxx.xxx.xxx.xxx Bcast:yyy.yyy.yyy.yyy Mask:zzz.zzz.zzz.zzz UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1341682 errors:0 dropped:0 overruns:0 frame:0 TX packets:1129249 errors:0 dropped:0 overruns:10 carrier:0 collisions:0 txqueuelen:100 RX bytes:1248026271 (1190.2 Mb) TX bytes:818737804 (780.8 Mb) Interrupt:11 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:45289 errors:0 dropped:0 overruns:0 frame:0 TX packets:45289 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2845627 (2.7 Mb) TX bytes:2845627 (2.7 Mb) 赤で示したものが設定したものになります。 xxx.xxx.xxx.xxx などはプロバイダにより動的に割り当てられたアドレスとなります。
- DHCP の設定 -
DHCP ( Dynamic Host Configuration Protocol )とは、クライアントコンピュータ(LAN 内のPC)がIP アドレスを自動取得するという設定を行うとクライアントがIP アドレスを必要とした時点で、IP アドレス割り当て要求のためのブロードキャストアドレスを流します。DHCP サーバーがこのブロードキャストアドレスを認識すると発信したホストにIP アドレスを貸し出します。
要するに、自動的に LAN 内のPCにIP アドレスを割り当ててくれるサーバーのことを指します。
では、DHCPの設定をしていきます。
DHCPはインストール済として話を進めていきますが、インストールされていない方は、インストールCDの2枚目の dhcp-3.0pl1-23.i386.rpm というファイルをインストールしてください。
DHCP のサンプルファイルを探すため rpm コマンドを使用しました。 # rpm -ql dhcp /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcrelay /etc/sysconfig/dhcpd /etc/sysconfig/dhcrelay /usr/bin/omshell /usr/sbin/dhcpd /usr/sbin/dhcrelay /usr/share/doc/dhcp-3.0pl1 /usr/share/doc/dhcp-3.0pl1/CHANGES /usr/share/doc/dhcp-3.0pl1/README /usr/share/doc/dhcp-3.0pl1/RELNOTES /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /usr/share/man/man1/omshell.1.gz /usr/share/man/man5/dhcp-eval.5.gz /usr/share/man/man5/dhcpd.conf.5.gz /usr/share/man/man5/dhcpd.leases.5.gz /usr/share/man/man8/dhcpd.8.gz /usr/share/man/man8/dhcrelay.8.gz /var/lib/dhcp /var/lib/dhcp/dhcpd.leases /etc ディレクトリ内に dhcpd.conf というファイル名としてコピーしてください。 # cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf DHCPの設定 vi エディタで、DHCP の設定ファイルを編集します。 # vi /etc/dhcpd.conf ddns-update-style interim; ignore client-updates; subnet 192.168.0.0 netmask 255.255.255.0 { # --- default gateway option routers 192.168.0.1; ← LAN側として設定したIPアドレスです。 option subnet-mask 255.255.255.0; option domain-name "server.e-hiro.net"; ← ホスト名 option domain-name-servers xxx.xxx.xxx.xxx,yyy.yyy.yyy.yyy; ↑ ↑ プロバイダ(YBB)から提供されてるDNSサーバーのアドレスです。 option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.0.11 192.168.0.20; ← LAN内のPCに割り当てるIPの範囲です。 default-lease-time 21600; max-lease-time 43200; ※ MACアドレスを設定することで特定のPCのIPアドレスを指定することができます。 # we want the nameserver to appear at a fixed address host linux { hardware ethernet 00:AA:BB:CC:EE:FF; fixed-address 192.168.0.10; } } DHCPサービスを行うNICの設定(デフォルトでeth0となっています) # vi /etc/sysconfig/dhcpd DHCPDARGS=eth0 DHCPサーバーをシステム起動時に自動的にオンになるように設定します。 # chkconfig dhcpd on ランレベル2〜5でオンになったか確認できます。 # chkconfig --list dhcpd
- IP マスカレード (IP Masquerade) -
DHCPの設定では、LAN内のPCにIPアドレスを自動的に割当てることはできますが、これだけではLAN内のPCはインターネットに繋ぐことはできません。
LAN 内のPC がインターネット接続をできるようにするには、サーバーにルーター機能を持たす必要があります。
ここでは、IP マスカレードについて説明します。詳細な設定についてはIPTABLESの設定を参照してください。
IP マスカレードとは、LAN 内でプライベートアドレスを使用している端末でも、インターネット上のサーバーと通信ができる技術のことを言います。
具体的には、NAT機能により、プライベートアドレスをグローバルアドレスに変換させることでインターネット上のサーバーと通信が可能となります。
難しい言葉が色々でてきてますが、後々まとめたいとは思っています(汗)
それでは、設定に移りたいと思います。あまり長々書くと墓穴を掘りそうなもので・・・(^^;
パケット中継機能(パケットを転送する機能)を有効にします。 IP マスカレードを使用する場合は有効にする必要があります。 # vi /etc/sysctl.conf # Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 1 ← 0から1に変更[パケット中継を有効] # Controls source route verification net.ipv4.conf.default.rp_filter = 1 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 rc.local にコマンドを追加しシステム起動時にマスカレードが有効になるように設定します。 # vi /etc/rc.d/rc.local /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE ↑ マスカレードの設定の行を追加します。 これで、起動時に自動的に実行してくれます。 -o はeth1(WAN側)から出て行くパケットをマスカレードします。※ 詳細に設定するには、iptables の設定をshスクリプトで作成する必要があります。iptables の設定も当サイトで行なっていますので、そちらを参考にしてください。