NetworkTraining2_aso - careerbeat/dit-ehime GitHub Wiki

NetworkT raining Part2

トレーニング内容

下記のネットワーク構成でvm01から存在しないIPアドレス宛てのパケットをiptablesでnatし、別のIPアドレスで受け取ることができるか検証する

ネットワーク構成

ホスト名 NIC IPアドレス
vm01 eth0 192.168.100.1
vm02 eth0 192.168.100.2
eth1 192.168.200.1
vm03 eth0 192.168.200.3

問題点

vm01から192.168.100.3宛にパケットを送ることができない。

解決手順

0. 準備

0.1. ネットワークを構築する

各ホストのIPアドレスを上記の表に合わせて設定する。
DEVICEのethはホストごとに適切な値を設定する。 本環境では以下のように設定した。

ホスト名 NIC IPアドレス
vm1 eth3 192.168.100.1
vm2 eth5 192.168.100.2
eth6 192.168.200.1
vm3 eth4 192.168.200.3
0.2. vm02のipfowardの値を変更する

vm02は他ホストへパケットを飛ばす必要があるため、/etc/sysctl.conf 内の net.ipfoward の値を編集し、0から1に変更する

1. vm01のルーティングを追加する

同一ネットワーク内のホストへのpingを飛ばせるようにする。
ルーティングテーブルに設定を追加し、 192.168.100.2 へpingを飛ばせるようにする。

ここで、vm01から 192.168.200.3 へパケットは送ることができないため、
vm01にスタックルーティングを追加し、vm02へ送るようにする。

これで 192.168.100.3 宛てのパケットがvm02へ届くようにある。

2. DNAT設定

存在しない宛先IPアドレス 192.168.100.3 を、 192.168.200.3 に変換するため、
vm02のiptablesにDNATの設定を追加する。

設定した後にvm01から 192.168.100.3 へpingを飛ばすと、 vm03にvm01からのpingが届いていることが確認できる。

3. SNAT設定

vm01からvm03へpingは届けることができたが、vm01への返信は来ていない。
vm02のiptablesにSNATの設定を追加する。

設定した後にvm01から 192.168.100.3 へpingを飛ばすと、 vm03からの応答が帰ってきていることが確認できる。

4. 結果

vm01から 192.168.100.3 へpingを飛ばした際の結果を表示する。

・vm01

192.168.100.3 にpingを飛ばす

・vm02

tcpdumpにより通信状況を確認する

・vm03

tcpdumpにより通信状況を確認する