【3日目】TCP/IPネットワーク入門(第3章Network Namespace編)
皆さん,こんにちは.bb_lotusです. さて,今回はTCP/IPネットワークに関しての3日目のアウトプットになります.
すぐアウトプットだけ見たい人はこちらから
(ネットワーク初学者のため,記載内容等間違いがありましたらどしどしコメント,指摘等していただければと思います.)
使用する教材はこちらです.
「Linuxで動かしながら学ぶTCP/IPネットワーク入門」
--------------↓ここからアウトプット--------------
今回は第3章のNetwork Namespaceをやっていきます.
Q.そもそも「Network Namespace」ってなんぞや.
A.簡単にネットワークが作れる.壊しても大丈夫.仮想的なコンピュータのようなもの.
→つまり,Network Namespaceを使えば,自分の思い通りに好きなネットワークが組めるようになる!!
ということで早速組んでみよう!
今回組むネットワークはこちら.
続いて,ネットワークを組む手順
その1. Network Namespaceの作成
その2. ネットワークインターフェースを作成し,つなげる.
その3. 2をNetwork Namespaceで使えるようにする.
その4. お互いが通信できるようにインターフェースにIPアドレスを付与する.
その5. ネットワークインターフェースを有効にする.
その6. pingで疎通確認.
→TCP/IPの実験環境の完成!!
・実際に作ってみる.
その1. Network Namespaceの作成
今回はns1,ns2という名前のNetwork Namespace
$ sudo ip netns add ns1 //netnsはNetwork Namespaceの略?
$ sudo ip netns add ns2
その2. ネットワークインターフェースを作成し,つなげる.
$ sudo ip link add ns1-veth0 type veth peer name ns2-veth0
その3. 2をNetwork Namespaceで使えるようにする.
$ sudo ip link set ns1-veth0 netns ns1
$ sudo ip link set ns2-veth0 netns ns2
その4. お互いが通信できるようにインターフェースにIPアドレスを付与する.
$ sudo ip netns exec ns1 ip address add 192.0.2.1/24 dev ns1-veth0
$ sudo ip netns exec ns2 ip address add 192.0.2.2/24 dev ns2-veth0
その5. ネットワークインターフェースを有効にする.
$ sudo ip netns exec ns1 ip link set ns1-veth0 up
$ sudo ip netns exec ns2 ip link set ns2-veth0 up
その6. pingで疎通確認.(ns1からns2へ)
$ sudo ip netns exec ns1 ping -c 3 192.0.2.2
下のようになれば成功!!
$ sudo ip netns exec ns1 ping -c 3 192.0.2.2
PING 192.0.2.2 (192.0.2.2) 56(84) bytes of data.
64 bytes from 192.0.2.2: icmp_seq=1 ttl=64 time=0.194 ms
64 bytes from 192.0.2.2: icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from 192.0.2.2: icmp_seq=3 ttl=64 time=0.043 ms
--- 192.0.2.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2048ms
rtt min/avg/max/mdev = 0.035/0.090/0.194/0.073 ms
とりあえず今回で人生初めてネットワーク(メチャクチャ簡単な)が組めました.
わからないことが多すぎて困っていますが,今はコマンド等を覚えるというより根本となる原理現象を理解することに徹しようと考えております!
今回はここまで!
ではまた次回!!