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