Transcript ppt
情報システム管理
7. DHCP、NAT
水野嘉明
1
本日の内容
1. DHCPサーバ
DHCPの仕組みと設定
2. NAT
NATの仕組みとNATルータの実現
2
1. DHCPサーバ
1.1 DHCPの仕組み
1.2 DHCPサーバの設定
1.3 クライアントの設定
3
1. DHCPサーバ
DHCP
Dynamic Host Configuration
Protocol
クライアントのIPアドレス割り当て
を自動化する仕組み
4
1.1 DHCPの仕組
クライアント全てに、固定IPアドレス
を割り振るのは、無駄が大きい/不
便なことがある
クライアントが起動した時に、プール
してあるIPアドレスの中から、動的に
割り振る
(注) サーバは、固定の方が便利
5
1.1 DHCPの仕組
DHCPサーバは、IPアドレス以外に
も 様々な情報を配布
ネットマスク
DNSドメイン名
ルータ(デフォルトゲートウェイ)の
アドレス
NISドメイン名
その他のサーバアドレス etc.
6
1.1 DHCPの仕組
新しいクライアント
が接続した時に、
IPアドレス等を割り
振る
DHCP
サーバ
IPアドレス
クライアント
7
1.1 DHCPの仕組
【問題】
TCP/IPにて通信するためには、
IPアドレスが必要。IPアドレス等が
未定の時に、どのようにしてDHC
Pサーバと通信するのか?
【答】
ブロードキャストを用いる
8
1.1 DHCPの仕組
(1) IPアドレス要求のブ
ロードキャストを、ネット
ワークに流す
(2) DHCPサーバが、IPア
ドレスを割り当てる
無視
DHCP
サーバ
無視
クライアント
9
1.2 DHCPサーバの設定
KNOPPIXでは、
ISC版 dhcpd を使用
他に次のようなDHCPサーバがある
Dnsmasq (Linux用、DNS機能あり)
Windowsサーバの DHCPサーバ
ルータ内実装
10
1.2 DHCPサーバの設定
設定ファイルは、
/etc/dhcpd.conf
または
/etc/dhcp3/dhcpd.conf
このファイルに、配布する情報を
記述する
11
1.2 DHCPサーバの設定
dhcpd.conf 記述例
##
##
dhcpd.conf
##
ddns-update-style none;
shared-network DHCP {
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
(続く)
12
1.2 DHCPサーバの設定
(続き)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.16 192.168.1.240;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name "xxxx.xx.xx";
option domain-name-servers 192.168.1.1;
}
}
13
1.2 DHCPサーバの設定
記述内容
option subnet-mask
ネットマスクの値
default-lease-time/max-lease-time
IPアドレスの有効期間
range
プールしてあるIPアドレスの範囲
option routers
デフォルトゲートウェイ
など
/etc/dhcpd.conf
14
1.2 DHCPサーバの設定
デーモンを起動
KNOPPIX (Debian系)
$ invoke-rc.d dhcpd start
$ update-rc.d
dhcpd
defaults
RedHat系
$ service
$ chkconfig
dhcpd
dhcpd
start
on
15
1.2 DHCPサーバの設定
注意
ネットワークに、複数のDHCPサー
バは(原則として)存在できない
ルータにDHCPサーバ機能がある
場合は、止める必要がある
16
1.3 クライアントの設定
Linuxクライアントの設定
設定ファイルを編集する
/etc/network/interfaces
(Debian系)
/etc/sysconfig/network-scripts
/ifcfg-eth0
(RedHat系)
17
1.3 クライアントの設定
KNOPPIXでの設定例
(/etc/network/interfaces)
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
18
1.3 クライアントの設定
【参考】 固定IPアドレス時の設定例
(KNOPPIX)
allow-hotplug eth0
iface eth0 inet static
address 133.79.53.115
netmask 255.255.255.0
broadcast 133.79.53.255
gateway 133.79.53.1
19
1.3 クライアントの設定
ifup / ifdown というツールが、 この
/etc/network/interfacesを用いる
ファイルを読み込む
dhclient
(DHCPクライアント)を呼
び出し、IPアドレスを取得
ifconfig を呼び出す
20
1.3 クライアントの設定
Windowsでの
クライアントの設定
21
2. NAT
2.1
2.2
2.3
2.4
2.5
NATとは
ルータによる接続
IPアドレス変換の仕組み
NATルータの実現
iptablesの基本的な使用法
22
2.1 NATとは
NAT
Network Address Translation
プライベートIPアドレスと、グローバ
ルIPアドレスを変換する仕組み
23
2.1 NATとは
グローバルIPアドレスの枯渇問題
プライベートIPアドレスを使用
ローカルなネットワーク内だけで通
用するIPアドレス
外部には、アクセスできない
24
2.1 NATとは
外部にアクセスする時には、プライ
ベートアドレスをグローバルアドレス
に変換し、これで外部にアクセスする
プライベートIPアドレス
変換
グローバルIPアドレス
25
2.1 NATとは
ルータ
NATルータ
ハブ
ハブ
インターネット
プライベート
アドレス空間
グローバルアドレス空間
26
2.1 NATとは
NATルータの機能
パケット中継機能
IPアドレス変換
パケットフィルタリング
(ファイアウォール)
27
2.2 ルータによる接続
ルータとは
ネットワーク間を相互接続する通
信機器
OSI基本参照モデルの第1層「物
理層」から第3層「ネットワーク層」
までの接続を担う
28
2.2 ルータによる接続
ルータは、複数のIPアドレスを持つ
192.168.1.254
192.168.1.0/24
192.168.11.253
192.168.11.0/24
二つのネットワークを相互接続
29
2.2 ルータによる接続
ルータと
TCP/IPの階層構造
コンピュータ
コンピュータ
アプリ
TCP
IP
LAN
アプリ
ルータ
ルータ
IP
IP
LAN WAN WAN LAN
TCP
IP
LAN
30
2.2 ルータによる接続
【参考】 LAN同士の接続には、層(機能
レベル)毎に、異なる装置がある
4~7層
ゲートウェイ
4~7層
ネットワーク
層
データリンク
層
ルータ/
スイッチングハブ
ネットワーク
層
データリンク
層
物理層
リピータ
物理層
レイヤ3スイッチ
ブリッジ/
31
2.2 ルータによる接続
Default: 172.16.4.254
192.168.1.254
192.168.11.253
172.16.4.3
192.168.1.0/24
192.168.1.4
192.168.11.0/24
172.16.4.0/24
172.16.4.254
192.168.11.254
Default: 192.168.1.254
172.16.6.254
192.168.12.254
32
2.2 ルータによる接続
パケット転送に必要な情報
IPアドレスとネットマスク
パケットを送りたいホストが同一
ネットワークに属するかどうかの
判定に必要
ルーティング情報
受取ったパケットをどこへ送るか
デフォルトゲートウェイ
33
2.2 ルータによる接続
ルーティング情報の例
宛先
IPアドレス
ネットマスク
ゲートウェイ インターフェー
IPアドレス ス IPアドレス
10.1.1.0 255.255.255.0 10.1.1.254 10.1.1.254
10.1.2.0 255.255.255.0 10.1.2.254 10.1.2.254
0.0.0.0
0.0.0.0
10.1.1.1
10.1.1.254
デフォルトゲートウェイ
34
2.3 IPアドレス変換の仕組み
NATルータの機能
パケット中継機能
IPアドレス変換
パケットフィルタリング
(ファイアウォール)
35
2.3 IPアドレス変換の仕組み
パケットのヘッダに、以下の情報
送り元のIPアドレス
送り先のIPアドレス
送り元ポート番号
送り先ポート番号 など
これらを書き換える
36
2.3 IPアドレス変換の仕組み
IPアドレス変換
NATルータ
インターネット
ヘッダ データ
(プライベ-ト)
ヘッダ
(グローバル)
37
2.3 IPアドレス変換の仕組み
IPアドレスの変換方式には二通り
(1) プールしてあるIPアドレスを、順
に割り当てる
– 同時に外部にアクセスできる
クライアント数には、限度
(2) IPアドレスと、ポート番号を組に
して、変換する
– NAPT または IPマスカレード
38
2.3 IPアドレス変換の仕組み
NAPTの例
プライベート
グローバル
送り元192.168.1.1 (20031)
⇒ 160.30.21.110 (10001)
送り元192.168.1.2 (20055)
⇒ 160.30.21.110 (10002)
送り元192.168.1.9 (20055)
⇒ 160.30.21.110 (10003)
NAPTは、変換を記憶しておく
39
2.3 IPアドレス変換の仕組み
返信のあて先が
160.30.21.110 (10001)
⇒ 192.168.1.1 (20031) に返す
160.30.21.110 (10002)
⇒ 192.168.1.2 (20055) に返す
:
40
2.3 IPアドレス変換の仕組み
NAPTは、変換結果を記憶しており、
それによって返信を配達する
外部主導のアクセスは拒否する
= ファイアウォール機能
41
2.3 IPアドレス変換の仕組み
メリット
グローバルIPアドレスの節約
外部に対して、内部ネットワークの
アドレス体系を隠蔽
ネットワークの柔軟性
NATの デメリット
パケット遅延
一部アプリケーションが動作しない
NATの
42
2.4 NATルータの実現
ルータ機能(パケット中継機能)は、
UNIXのカーネルに備わっている
Linuxにおけるパケットフィルタリング
とNAPT(IPマスカレード)機能は、
iptables コマンド
による
(「5. ネットワークとファイアウォール」)
43
2.4 NATルータの実現
パケット中継機能
ネットワークインタフェースは、二
つ以上が必要
内部へ
外部へ
44
2.4 NATルータの実現
パケット中継機能
パケット中継機能は、デフォルトで
はオフになっている
⇒ これをオンにする
/proc/sys/net/ipv4/ip_forward に
1を書く
$ echo 1 > /proc/sys/net/ipv4/ip_forward
45
2.4 NATルータの実現
再起動時にも有効にするには、
/etc/sysctl.cont ファイルの
net.ipv4.ip_forward 行を編集
/etc/sysctl.cont
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
:
0から1に変更
46
2.4 NATルータの実現
NAPT(IPマスカレード)機能
iptables の 【POSTROUTING】
チェインにて実現する
ファイアウォール機能
同じく iptablesコマンドにて実現
47
再掲
2.5 iptablesの基本的な使用法
iptablesは、パケットが通過する経路
上に、5つのチェイン を設けている
【INPUT】
【FORWARD】
【OUTPUT】
【PREROUTING】
【POSTROUTING】
48
再掲
2.5 iptablesの基本的な使用法
5つのチェインとパケットの流れ
PREROUTING
入ってくる
パケット
出て行く
パケット
ルーティング
(経路)の
決定
FORWARD
POSTROUTING
INPUT ローカル
プロセス
OUTPUT
49
2.5 iptablesの基本的な使用法
iptables のチェイン
チェイン名
INPUT
OUTPUT
対象
入力(受信)パケット
出力(送信)パケット
インタフェース間をまた
FORWARD
ぐ転送パケット
PREROUTING 受信時にアドレス変換
POSTROUTING 送信時にアドレス変換
50
2.5 iptablesの基本的な使用法
iptablesは、このチェインを監視し
『このパケットの送信元アドレスを
書き換える』
『このパケットは通さない』
『このパケットは通す』
などの処理を行う
チェインをユーザ定義することも可
51
2.5 iptablesの基本的な使用法
iptablesには、テーブル
と言う概念
がある
filter テーブル
パケットフィルタリング用
nat テーブル
IPマスカレード用
52
2.5 iptablesの基本的な使用法
各テーブルで、使用できるチェイン
が異なる
filter テーブル
–INPUT, FORWARD, OUTPUT
nat テーブル
–PREROUTING, OUTPUT,
POSTROUTING
53
2.5 iptablesの基本的な使用法
iptables
コマンド
コマンド
どのチェインに
$ iptables -t table名 -A chain名
パラメータ -j 処理方法
どのテーブルの
どう処理するか
どのようなパケッ
トが通過する時に
54
2.5 iptablesの基本的な使用法
iptablesの主なコマンド
オプション
-A
-I
-D
-F
-P
-L
意味
新しいルールを追加 (末尾)
新しいルールを追加 (先頭)
ルールを削除
すべてのルールを削除(初期化)
ポリシー(基本ルール)を設定
ルールの一覧表示
55
2.5 iptablesの基本的な使用法
どのテーブルの
filter または nat を指定する
どのチェインに
前述のチェイン名を指定する
INPUT, FORWARD, ・・・
56
2.5 iptablesの基本的な使用法
どのようなパケットが通過する時に
項目
インタフェース
プロトコル
送信元アドレス
送信先アドレス
送信元ポート
送信先ポート
接続要求パケット
オプションと指定例
-i eth0
-p tcp
-s 192.168.0.0/24
-d 192.168.0.2
--sport 23
--dport 1024:65535
--syn
57
2.5 iptablesの基本的な使用法
どう処理するか
処理
指定
パケットを許可する
ACCEPT
パケットを拒否する
DROP
IPマスカレード
MASQUERADE
ログをとる
LOG
58
2.5 iptablesの基本的な使用法
iptables コマンドによる設定は、再
起動により リセットされる
⇒ コマンドによりセーブしなければ
ならない
$ invoke-rc.d iptables save filename
$ iptables-save > filename
セーブする場所は、ディストリビューション
により異なる (/etc/sysconfig/iptables等)
59
2.5 iptablesの基本的な使用法
/etc/sysconfig/iptablesファイルの例
60
2.5 iptablesの基本的な使用法
NAPT(IPマスカレード)機能の
設定例
$ iptables -t nat -A POSTROUTING
-s 192.168.0.0/24 -j MASQUERADE
61
次回の予定
アプリケーションのインストール
1. ソースとパッケージの比較
2. ソースによるインストール
3. パッケージ
62
お疲れ様でした
63