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により通信状況を確認する