2021-06-11に更新

月収30万のポケモントレーナー

はじめに

タイトルに深い理由も関係もない。月収30万のポケモントレーナーとサングラスをかけた自己防衛おじさんっていう寝言を言ったらしいけど覚えてないんだよなっていうくだりを思い出したのでタイトルにした。
たまにはアウトプットして理解を深めなきゃと思うお年頃。
そういえばスタバの新作飲んでないからスタバに行ったら飲みたいなぁ~...チョコレートティーケーキフラペチーノだっけ。あれ考えるだけでよだれが出てくるジュルリ...
話は置いといて、IT用語って意味は分かっててもいざ手を動かそうってなった時何もできないんだよな。当たり前か。
でも意味を広く知っておくと良いことは、今からどうするのかって明確に分かるので専門でIT用語詰め込んでよかった~と思う。
どうでもいいけど友達が東大に行ったらしい。でもオンラインばっかで出会いがないってキレ散らかしてた。

NATとは

一言でいうとIPアドレスを変換してくれる技術。
Network Address Translationの略で、ネットワークアドレス変換というらしい。グローバルIPアドレスとプライベートIPアドレスを変換する奴。
まぁでもあるんだよ。NAPTは一つのネットワークアドレスを複数のマシンで共有するアドレス変換技術であり、この記事のDHCPで少し取り上げたやつ。

ciscoの仮想マシンでポチポチしてみる。

仮としてPC×2とルーター一つだけを用意して分かりやすく簡潔にまとめる事にした。
image

('ω')ノ①→IP:192.168.1.100/24,GW:192.168.1.1
('ω')ノ②→IP:200.1.1.1/24,GW:200.1.1.254
('ω')ノ🄬→G0/0:192.168.2.100,G0/1:192.168.1.100
の構成でいく。
まずはどちらがinsideかoutsideか決めるが、ここは順序良く右がoutside、左をinsideにしたいと思う。そのコマンドが
Router(config-if)# ip nat inside(or outside)
であるので実際に叩いてみた。

Router(config)#interface gigabitethernet 0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#interface gigabitethernet 0/1
Router(config-if)#ip nat outside

これで外部ネットワークと内部ネットワークに分断された。

スタティックNAT

スタティックって何ぞや?public static void mainのstaticか?....純粋にスタティックは「Static」と書き、意味は「静止しているさま」や「静的」などがある...静的はStaticで良いのか。
個人的にITの世界でいう静的って手動(の設定)だと思ってるけど間違ってるかな。
追記:Staticの場合は1対1の設定らしい。

スタティックNATの設定

Router(config)#ip nat inside source static (内部ローカルアドレス) (内部グローバルアドレス)
Router#show ip nat translations
という風になっているので実際に打ってみる。

Router(config)#ip nat inside source static 192.168.1.100 100.1.1.1
Router(config)#end
Router#
%SYS-5-CONFIG_I: Configured from console by console

Router#sh ip nat translations 
Pro  Inside global     Inside local       Outside local      Outside global
---  100.1.1.1         192.168.1.100      ---                ---

出来た。('ω')ノ🄬と('ω')ノ②の間にSnifferを設置、('ω')ノ①から('ω')ノ②へping飛ばしてSniffer上でSourceが100.1.1.1になってればおけ。
Snifferはネットワーク上のパケットをモニターするソフトウェアの総称らしい。WireSharkと何が違うんだろうとたまに思ってる。
そんなこんなでまずはpingを飛ばしたい。

C:\>ping 200.1.1.1

Pinging 200.1.1.1 with 32 bytes of data:

Reply from 200.1.1.1: bytes=32 time=9ms TTL=127
Reply from 200.1.1.1: bytes=32 time=2ms TTL=127
Reply from 200.1.1.1: bytes=32 time=4ms TTL=127
Reply from 200.1.1.1: bytes=32 time=6ms TTL=127

Ping statistics for 200.1.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 9ms, Average = 5ms

通った。次はSnifferでの確認。
image
大丈夫っぽい。静的NATはいけてるっぽい。多分行けてると思う。そう思っとこう。

ダイナミックNAT

ダイナミックって言葉からしてなんか規模大きそうな感じだよな。分からんか。
ちなみにダイナミックは「Dynamic」と書き、動的という意味を持っている。多分自動でやってくれるんですかね。動的と静的がよくわかんないけど...前述の通り手動か自動かで判断してます。間違ってたらごめんね、

ダイナミックNATの設定

  1. 先にプールを定義する。
    ITの世界で「プール」というのはまんまみんながご存じの通りのプールと同じような意味で合ってる。貯水池とか何かを蓄えるという意味でITでもプール(pool)が使われている。ここでは動的に割り振るIPアドレスをあらかじめ用意(貯めて)おくという意味合いで良いんじゃないかなと思われ。
    プールの定義は
    Router(config)#ip nat pool (IPアドレスプールの名前(任意)) (先頭のIPアドレス) (最後のIPアドレス) netmask (サブネットマスク)
Router(config)#ip nat pool nyanko 100.1.1.1 100.1.1.5 netmask 255.255.255.0
  1. 次に変換対象となる送信元IPアドレスをACLで定義
    ACLの意味はざっくりいうと通信を許可したり遮断したりする名簿みたいなもの。ホワイトリスト(全拒否から徐々に許していくタイプ)なので通信したい分(ここでは変換対象)のリストを作成していく。permitは「許可」という意味。
    ACLの定義は
    Router(config)#access-list (リスト番号(任意?)) permit (送信元IPアドレス) (ワイルドカードマスク)
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
  1. ACLとアドレスプールを紐づける
    Router(config)#ip nat inside source list (アクセスリスト番号) pool (IPアドレスプール名)
Router(config)#ip nat inside source list 1 pool nyanko

通してみる。image
ちゃんと100.1.1.1に変換されてるっぽい。プールの定義で下0.1.1.1~0.1.1.5と5つ設定している。そのうち1台...一つのIPアドレスしか使っていないのでPCを増やしてみる。

image
増やしたので各pingを通してみる。
image
写真多いとめんどくさくなるので下4のほうを出した。確認した限りは1~4まであるので成功と言っていいかも。

最後に

一応成功したから静的と動的の基礎的な部分を理解したので良かったと思う。
長く書いたけど、基礎はしっかり自分なりの解釈でもいいので理解したほうが良いかも知れない。何故NATが必要なのか、どういう仕組みで動いているのかをしっかり理解しないとイメージつきにくいのでアウトプットしただけ。
それよりもコーラが飲みたい。ゼロコーラしか勝たん~

ツイッターでシェア
みんなに共有、忘れないようにメモ

.

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント