tag:crieit.net,2005:https://crieit.net/users/Nata-Ikebe/feed
Nataの投稿 - Crieit
CrieitでユーザーNataによる最近の投稿
2020-12-23T22:02:48+09:00
https://crieit.net/users/Nata-Ikebe/feed
tag:crieit.net,2005:PublicArticle/16412
2020-12-23T22:02:48+09:00
2020-12-23T22:02:48+09:00
https://crieit.net/posts/Wireshark
Wiresharkの基本
<h3 id="Wiresharkとは"><a href="#Wireshark%E3%81%A8%E3%81%AF">Wiresharkとは</a></h3>
<p>Wiresharkはネットワークの解析ソフトウェアの名前。<br />
近年様々な業界でIT化が推進されている為、どの業界でもエンジニアには必須となりつつある(のかもしれない)…</p>
<h5 id="実行環境"><a href="#%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83">実行環境</a></h5>
<ul>
<li>OS・・・・・・・・・・・・Windows10 Pro</li>
<li>Wireshark Version・・・・・3.4.0</li>
</ul>
<h5 id="Wiresharkの基本操作"><a href="#Wireshark%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C">Wiresharkの基本操作</a></h5>
<ul>
<li>キャプチャを開始する<br />
Wiresharkを起動すると下記の画面が表示される。<br />
キャプチャの開始方法は次の通り<br />
<a href="https://crieit.now.sh/upload_images/83faef344aee0abca06a7aab0e346e765fe33ece3f647.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/83faef344aee0abca06a7aab0e346e765fe33ece3f647.png?mw=700" alt="image" /></a></li>
</ul>
<p>①インターフェースを直接選択する<br />
この欄にはWiresharkが自動的に読み込んだインターフェースの一覧が表示<br />
される。<br />
表示されているインターフェースをダブルクリックすると、<br />
そのインターフェースの通信をキャプチャする。</p>
<p>②メニューバーから選択する<br />
メニューバーから、「キャプチャ」→「オプション」と選択すると、<br />
インターフェースの一覧が表示される。<br />
ここではNICの動作選択でプロミスキャスモードのON/OFFができるので、<br />
変更が必要な場合はここから開始すると良い。<br />
※プロミスキャスモードとは・・・同一ネットワーク内のパケットを<br />
全て受信して読み込むモード。<br />
公共のネットワークなどで行うのはクラッキング行為とみなされるので注意</p>
<p>③ツールバーから選択する<br />
ツールバーの「キャプチャオプション」を選択すると②と同じウィンドウが開く。</p>
<p>④プロトコルでフィルターを掛ける<br />
キャプチャを開始すると、選択したインターフェース上を流れる全ての通信が延々と表示・更新され<br />
続ける。<br />
キャプチャしたいプロトコルが決まっている場合、「表示フィルター」にプロトコル名を入力して、<br />
フィルターを有効化する。</p>
<ul>
<li><p>キャプチャを停止する<br />
<a href="https://crieit.now.sh/upload_images/1bf1fbfafafb5226bdd22e187ee049795fe29925e8ccb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1bf1fbfafafb5226bdd22e187ee049795fe29925e8ccb.png?mw=700" alt="image" /></a><br />
①ツールバーの「パケットキャプチャを停止します」を選択すると、パケットのキャプチャを停止する。<br />
キャプチャしている限り画面は常に更新し続けるため、必要なデータがとれたらキャプチャを停止して<br />
からパケット解析をすると良い。</p></li>
<li><p>キャプチャの読み取り方<br />
<a href="https://crieit.now.sh/upload_images/07c48ae5f6b52cae3d65af35d040ff915fe303b282e23.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/07c48ae5f6b52cae3d65af35d040ff915fe303b282e23.png?mw=700" alt="image" /></a></p></li>
</ul>
<p>①【No.】<br />
キャプチャされた順番。No.の値が大きいほど最新のパケット情報を表す。</p>
<p>②【Time】<br />
Wiresharkでキャプチャを開始してから経過した時間を表す。</p>
<p>③【Source】<br />
通信の送信元情報。MACアドレスだったり、IPアドレスだったりする。<br />
※表示されるMACアドレスは、メニューバーから「表示」→「名前解決」の<br />
「物理アドレスを解決」にチェックが入っていると、ベンダーコード(MACアドレス上位の6桁)を<br />
文字列に変換してくれる。<br />
例としてはApple_xx:xx:xxやBuffalo_xx:xx:xxといった感じ。</p>
<p>④【Destination】<br />
通信の宛先情報。③と同じくMACアドレスやIPアドレスが表示される。<br />
ブロードキャスト通信だった場合、「名前解決」機能でBroadcast表記される。</p>
<p>⑤【Protocol】<br />
その通信で扱っている通信プロトコルを表示する。</p>
<p>⑥【Length】<br />
その通信のフレーム長を表示する。単位は[byte]</p>
<p>⑦【Info】<br />
通信内容に関するインフォメーション。<br />
例)ICMPのエコー要求、HTTPのGETメソッド</p>
<p>⑧【パケット詳細ペイン】<br />
通信の詳細情報を表示する。<br />
この図だと、上から順にEthernetフレーム、Ethernetヘッダ、ARPヘッダを表示している。<br />
各項目の左側にある「>」マークをクリックすると、そのフレーム・ヘッダ情報を<br />
詳しく見ることができる。</p>
Nata
tag:crieit.net,2005:PublicArticle/16380
2020-12-17T11:46:33+09:00
2020-12-23T16:40:17+09:00
https://crieit.net/posts/bda5f98ff5a11f3e54c79efdd30ca9db
ネットワーク基礎~通信のカプセル化~
<h5 id="OSI参照モデルとTCP/IPモデル"><a href="#OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8TCP%2FIP%E3%83%A2%E3%83%87%E3%83%AB">OSI参照モデルとTCP/IPモデル</a></h5>
<p>OSI参照モデルとTCP/IPモデルは共に、端末から端末へデータを通信する際に必要な処理を、<br />
いくつかのステップをまとめたもの。</p>
<ul>
<li><p>OSI参照モデル<br />
全7階層からなる通信モデル。通信の流れを細かく規定していたが、あまり浸透しなかった。<br />
そのため、現在では通信の考え方を学ぶために参照される程度となっている。<br />
<a href="https://crieit.now.sh/upload_images/f54cef13db3868e26498af2ad01d5c595fdac251d7e93.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f54cef13db3868e26498af2ad01d5c595fdac251d7e93.png?mw=700" alt="image" /></a></p></li>
<li><p>TCP/IPモデル<br />
全4階層からなる通信モデル。インターネットを中心とした、現在のネットワークでよく使われるプロトコルを4つの階層にまとめた通信の基本ルール。<br />
現在のネットワークはこちらの通信モデルで設計されている。<br />
<a href="https://crieit.now.sh/upload_images/66bc1d1ba53ef9a645963d5cd6a15cf85fdac26ac2e6d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/66bc1d1ba53ef9a645963d5cd6a15cf85fdac26ac2e6d.png?mw=700" alt="image" /></a></p></li>
</ul>
<h5 id="ヘッダとカプセル化/非カプセル化について"><a href="#%E3%83%98%E3%83%83%E3%83%80%E3%81%A8%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96%2F%E9%9D%9E%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">ヘッダとカプセル化/非カプセル化について</a></h5>
<p>通信を行う際には通信モデルの上位層から、ヘッダをデータに付与していく。<br />
この一連の流れをカプセル化という。<br />
カプセル化とは、送信側の機器がデータを通信できる形に加工すること。<br />
カプセル化のイメージをTCP/IPモデルで表すと下記のとおり。<br />
<a href="https://crieit.now.sh/upload_images/fa6372f0409a65ff57342097dc8427365fd950914dfad.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fa6372f0409a65ff57342097dc8427365fd950914dfad.png?mw=700" alt="image" /></a></p>
<p>データの送信側が梱包したデータを、ヘッダの情報に基づいて受信側が開封していく作業を非カプセル化という。<br />
非カプセル化とは、受信側の機器が通信データから必要な情報を切り取っていくこと。<br />
非カプセル化のイメージをTCP/IPモデルで表すと下記のとおり。<br />
<a href="https://crieit.now.sh/upload_images/80ac78d2b59035647d6315f45683bce65fd950a985e7b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/80ac78d2b59035647d6315f45683bce65fd950a985e7b.png?mw=700" alt="image" /></a></p>
<h5 id="ヘッダの種類"><a href="#%E3%83%98%E3%83%83%E3%83%80%E3%81%AE%E7%A8%AE%E9%A1%9E">ヘッダの種類</a></h5>
<p>ヘッダにはそれを取り付けた通信モデルの階層によって異なる名前がつけられる。<br />
以下、一例。</p>
<ul>
<li><p>Ethernetヘッダ・・・データリンク層、ネットワークインターフェース層でつくヘッダ。制御情報の中身は送信元(Source)のMACアドレスと送信先(Destination)のMACアドレス。</p></li>
<li><p>Ethernetトレーラ・・・データリンク層、ネットワークインターフェース層ではデータの末尾にトレーラと呼ばれる制御情報がセットで付与される。これは送信先でデータが欠けていないかをチェックする為のチェックコードとなっている。</p></li>
<li><p>IPヘッダ・・・ネットワーク層、インターネット層でつくヘッダの一種。IPアドレスで通信する際に使用される。制御情報の中身は送信元(Sender)IP Address、送信元(Sender)MAC Address、送信先(Target)IP Address、送信先(Target)MAC Addressとなる。</p></li>
<li><p>TCPヘッダ・・・トランスポート層でつくヘッダの一種。<br />
送信元のポート番号、送信先のポート番号や、送信データの読み取り順序情報などが含まれる。</p></li>
</ul>
<h5 id="各層でのデータの名前"><a href="#%E5%90%84%E5%B1%A4%E3%81%A7%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%90%8D%E5%89%8D">各層でのデータの名前</a></h5>
<p>通信モデルでは、カプセル化する事で各層でデータの中身が異なる。上位の層から受け取ったデータ(ペイロード)と、現在の階層ヘッダを合わせた物を、PDU(Protocol Data Unit)と呼び階層ごとに名称が異なる。</p>
<ul>
<li>アプリケーション層(+プレゼンテーション層+セッション層)でのPDUの名前はメッセージ。</li>
<li>トランスポート層でのPDUの名前はセグメント。L4ヘッダ+メッセージ</li>
<li>ネットワーク層(もしくはインターネット層)でのPDUはパケット。L3ヘッダ+セグメント</li>
<li>データリンク層(もしくはネットワークインターフェース層)でのPDUはフレーム。L2ヘッダ+パケット+L2トレーラ</li>
</ul>
Nata
tag:crieit.net,2005:PublicArticle/16360
2020-12-14T17:24:35+09:00
2020-12-21T08:48:08+09:00
https://crieit.net/posts/IPv4
ネットワーク基礎~IPv4アドレスの計算方法~
<h1 id="IPv4アドレスの計算方法"><a href="#IPv4%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E8%A8%88%E7%AE%97%E6%96%B9%E6%B3%95">IPv4アドレスの計算方法</a></h1>
<p>IPv4アドレスの基数変換(2進数⇔10進数)は、CCNAなどの資格勉強でよく出てきます。<br />
<del>仕事する上では、計算はExcelやらアプリやらで行うのが、ミスがなくて良いと思うけど</del><br />
計算方法が分かっていた方が理解が深まるし、打合せの場などいざという時に役に立つと思う…</p>
<h3 id="■IPv4アドレスとは"><a href="#%E2%96%A0IPv4%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%AF">■IPv4アドレスとは</a></h3>
<p> IPv4アドレスは2進数8ビット、4オクテット=32ビットの値で、<br />
10進数で表記される。<br />
※1オクテット = 8bit</p>
<p> 192.168.100.1<br />
11000000.10101000.01100100.00000001</p>
<p>・2進数の計算になれる<br />
2進数の桁上がりは2のn乗で加算される<br />
00000001 = 2^0 = 1<br />
00000010 = 2^1 = 2<br />
00000100 = 2^2 = 4<br />
00001000 = 2^3 = 8<br />
00010000 = 2^4 = 16<br />
00100000 = 2^5 = 32<br />
01000000 = 2^6 = 64<br />
10000000 = 2^7 = 127</p>
<h3 id="■組み合わせを覚える"><a href="#%E2%96%A0%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%92%E8%A6%9A%E3%81%88%E3%82%8B">■組み合わせを覚える</a></h3>
<p>この8ビットの範囲での最大値は255</p>
<ul>
<li>上位ビットからの加算<br />
2進数で上位のビットから加算していくと、下記になる<br />
※この値はサブネットマスクからプレフィックス値を求めるのに便利なので覚えておく</li>
</ul>
<p>10000000 = 128<br />
11000000 = 192<br />
11100000 = 224<br />
11110000 = 240<br />
11111000 = 248<br />
11111100 = 252<br />
11111110 = 254<br />
11111111 = 255</p>
<ul>
<li><p>下位ビットからの加算<br />
2進数で下位のビットから加算していくと、「次の上位ビット-1」した数値になる。<br />
例えば、01111111は「次の上位ビット(128)-1」で127とすぐに出てくる。<br />
これは2進数では全てのビットが1になったら桁上がりするルールに基づく。<br />
00000001 = 1<br />
00000011 = 3<br />
00000111 = 7<br />
00001111 = 15<br />
00011111 = 31<br />
00111111 = 63<br />
01111111 = 127<br />
11111111 = 255</p></li>
<li><p>間に1個だけ0がある数値<br />
例として11011111をすぐに10進数変換するには、先ほどの2進数の桁上がりを意識すると良い。<br />
この値に1を足すと、11100000となるので、「桁上がりした数値(224)-1」で223になる。</p>
<ul>
<li>他よく使う値<br />
01100000 = 96<br />
01100100 = 100<br />
10100000 = 160<br />
10101100 = 172</li>
</ul></li>
</ul>
<h3 id="■10進数から2進数へ変換"><a href="#%E2%96%A010%E9%80%B2%E6%95%B0%E3%81%8B%E3%82%892%E9%80%B2%E6%95%B0%E3%81%B8%E5%A4%89%E6%8F%9B">■10進数から2進数へ変換</a></h3>
<p> 先ほどの組み合わせを覚えていると、計算時間が短くなるが、<br />
それを考慮しない場合は次の計算で求められる。<br />
<br />
226を2進数に基数変換する</p>
<h5 id="方法① 教科書通り"><a href="#%E6%96%B9%E6%B3%95%E2%91%A0+%E6%95%99%E7%A7%91%E6%9B%B8%E9%80%9A%E3%82%8A">方法① 教科書通り</a></h5>
<p>226/2 = 113・・・余り0<br />
113/2 = 56 ・・・余り1<br />
56/2 = 28 ・・・余り0<br />
28/2 = 14 ・・・余り0<br />
14/2 = 7 ・・・余り0<br />
7/2 = 3 ・・・余り1<br />
3/2 = 1 ・・・余り1</p>
<p>と、解が1もしくは0になるまで除算していき、解1に余りの値を下から足していく<br />
11100010<br />
基数変換できた。</p>
<h5 id="方法②上位のビットから最大数を減算していく"><a href="#%E6%96%B9%E6%B3%95%E2%91%A1%E4%B8%8A%E4%BD%8D%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%E3%81%8B%E3%82%89%E6%9C%80%E5%A4%A7%E6%95%B0%E3%82%92%E6%B8%9B%E7%AE%97%E3%81%97%E3%81%A6%E3%81%84%E3%81%8F">方法②上位のビットから最大数を減算していく</a></h5>
<p>226 - 128 = 98<br />
98 - 64 = 34<br />
34 - 32 = 2<br />
2 - 2 = 0<br />
こちらは解が0になるまで減算していく方法だが、<br />
この時注意が必要なのは引く値は最大ビットから選択する事である。<br />
そうすることで、2進数表記で1がたっているビットだけが、減算式のなかにでてくる<br />
今回は128,64,32,2のビットが1で、それ以外は全て0である。<br />
11100010</p>
<h5 id="方法③組み合わせの暗記"><a href="#%E6%96%B9%E6%B3%95%E2%91%A2%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%81%AE%E6%9A%97%E8%A8%98">方法③組み合わせの暗記</a></h5>
<p> 今回の10進数226は224に2だけ足した値である。<br />
そのため、前述の組み合わせから224 = 11100000 2 = 00000010<br />
あとは足してやればすぐに求まる。<br />
組み合わせを覚えておくと、パターンに近い値はすぐに求まる。</p>
Nata
tag:crieit.net,2005:PublicArticle/16357
2020-12-14T10:42:15+09:00
2020-12-18T17:30:06+09:00
https://crieit.net/posts/e41b5dd88814dba07b06fba075eabfb3
ネットワーク基礎
<h1 id="ネットワーク基礎"><a href="#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%9F%BA%E7%A4%8E">ネットワーク基礎</a></h1>
<p>ネットワークについて学習していく中で、「なんとなく」「そうゆうもの」として覚えて来た知識が多かった為、人へ伝えられるようにまとめを作ることとする。</p>
<h3 id="通信ポートの種類"><a href="#%E9%80%9A%E4%BF%A1%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E7%A8%AE%E9%A1%9E">通信ポートの種類</a></h3>
<p>ネットワークポートの規格MDI/MDI-Xについて<br />
- MDI <br />
端末(ルータ、PC)の接続ポート<br />
1,2番ピンで送信<br />
3,6番ピンで受信</p>
<ul>
<li><p>MDI-X <br />
集線装置(スイッチ、リピーターハブ)の接続ポート<br />
1,2番pinで受信<br />
3,6番pinで送信</p></li>
<li><p>クロス結線について<br />
RJ45端子の線は全部で8pin<br />
1番⇔3番<br />
2番⇔6番<br />
をそれぞれ入れ替える(現場だと"りゃんこ"、”てれこ”とか言う)<br />
と、同じポート同士で通信できる。</p></li>
</ul>
<h3 id="IPアドレス"><a href="#IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9">IPアドレス</a></h3>
<ul>
<li>IPアドレスについて<br />
ネットワークの住所情報のこと<br />
通信先を指定する為に、各端末やネットワークに振られる値。</li>
</ul>
<h3 id="IPアドレスの種類"><a href="#IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E7%A8%AE%E9%A1%9E">IPアドレスの種類</a></h3>
<p>IPアドレスには2つのバージョンがある<br />
- IPv4<br />
2^32=約43億個のアドレスがある<br />
2進数で8ビットずつ区切り、4オクテットのフィールドがある<br />
10進数で表記する</p>
<ul>
<li>IPv6<br />
2^128=約340澗(カン)個のアドレスがある<br />
2進数で16ビットずつ区切り、8オクテットのフィールドがある<br />
16進数で表記する</li>
</ul>
<h3 id="■URLについて"><a href="#%E2%96%A0URL%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">■URLについて</a></h3>
<ul>
<li>URLとは<br />
URLは、端末に割り振られたIPアドレスを人間が認識しやすい形に表記した住所情報。</li>
</ul>
<p><a target="_blank" rel="nofollow noopener" href="https://www.example.co.jp.">https://www.example.co.jp.</a><br />
スキーム ホスト名 ドメイン名<br />
- スキーム :通信方式を指定する部分<br />
- ホスト名 :端末名<br />
- ドメイン名:端末の所属するネットワーク(地域、団体等)を識別する為の住所情報</p>
<ul>
<li><p>DNS(domain name system)とは<br />
URLとIPアドレスの紐づけを行ってくれる仕組みのこと。<br />
GoogleのWebサーバのIPアドレスを知らなくても、URL窓で「https://www.google.com/」とすれば、検索エンジンが表示されるのはDNSのおかげ。<br />
このURL⇔IPアドレスの変換を「名前解決」という。</p>
<ul>
<li>名前解決の流れ<br />
①クライアントからDNSサーバへWebサイトのIPを問い合わせる<br />
②DNSサーバが答えを知っていれば、クライアントへ返答。<br />
知らない場合は、問い合わせ先のDNSサーバが下位のDNSサーバへ問い合わせる。<br />
③IPアドレスを知っているDNSサーバが見つかるまで②を繰り返す</li>
</ul>
<h3 id="■実機演習"><a href="#%E2%96%A0%E5%AE%9F%E6%A9%9F%E6%BC%94%E7%BF%92">■実機演習</a></h3>
<p>WANポートFastEthernet0と、GigabitEthernet8にパソコンを繋いぎ、PCの設定でデフォルトゲートウェイを設定。<br />
それぞれのパソコンからpingが通る事を確認した。</p></li>
<li><p>実機情報<br />
Cisco 800 Series (891F)</p>
<ul>
<li>ポート名</li>
</ul></li>
</ul>
<pre><code>interface FastEthernet0
interface GigabitEhternet8
</code></pre>
<ul>
<li><p>演習手順</p>
<ol>
<li>ルータのWANポートに、IPアドレスを設定する<br />
FastEthernet0 = 192.168.1.254/24<br />
GigabitEthernet8 = 192.168.10.254/24<br />
をそれぞれ割り振る</li>
</ol>
<pre><code>#FastEthernet0の設定
Router(config) # interface FastEthernet0
Router(config-if) # ip address 192.168.1.254 255.255.255.0
Router(config-if) # no shutdown
Router(config-if) # exit
#GigabitEthernet8の設定
Router(config) # interface GigabitEthernet8
Router(config-if) # ip address 192.168.10.254 255.255.255.0
Router(config-if) # no shutdown
Router(config-if) # exit
</code></pre>
<ol start="2">
<li><p>二人一組となって、それぞれパソコンに固定のIPアドレス、サブネットマスク、デフォルトゲートウェイを割り振る。<br />
ルーティングのテストなので、それぞれ異なるネットワークアドレスを設定する。<br />
(例)<br />
Aさん<br />
IPアドレス 192.168.1.2<br />
サブネットマスク 255.255.255.0<br />
デフォルトゲートウェイ 192.168.1.254</p>
<p>Bさん<br />
IPアドレス 192.168.10.100<br />
サブネットマスク 255.255.255.0<br />
デフォルトゲートウェイ 192.168.10.254</p></li>
<li><p>AさんはFastEthernet0にパソコンを繋ぎ、BさんはGigabitEthernet8にパソコンを繋ぐ</p></li>
<li><p>互いのPCでコマンドプロンプトを開き、pingを確認する</p>
<pre><code>#Aさんの場合
ping 192.168.10.100
</code></pre></li>
</ol>
<h5 id="■なぜ繋がるのか?"><a href="#%E2%96%A0%E3%81%AA%E3%81%9C%E7%B9%8B%E3%81%8C%E3%82%8B%E3%81%AE%E3%81%8B%EF%BC%9F">■なぜ繋がるのか?</a></h5>
<p>今回ルータにはWANポートにIPアドレスを設定しただけだが、<br />
FastEthernet0とGigabitEthernet8間のルーティングが行われた。<br />
なぜこれだけの設定で繋がるのか?それは、<strong>WANポートに繋いだのが端末だった</strong>為。<br />
ルータは直接接続されている機器・ネットワーク同士の通信は、<br />
特に設定を追加しなくともルーティングしてくれる。</p></li>
</ul>
<h5 id="■コンフィグ情報の保存と削除"><a href="#%E2%96%A0%E3%82%B3%E3%83%B3%E3%83%95%E3%82%A3%E3%82%B0%E6%83%85%E5%A0%B1%E3%81%AE%E4%BF%9D%E5%AD%98%E3%81%A8%E5%89%8A%E9%99%A4">■コンフィグ情報の保存と削除</a></h5>
<p>・Ciscoのrunning-configとstartup-configについて<br />
Ciscoのネットワーク機器(物によるが)では、コンフィグ情報を編集しても、それは一時的な編集に過ぎない。<br />
電源を抜き差しすると、設定が消えてしまう。<br />
これは、編集したコマンドの保存・実行先が揮発性メモリ(いわゆるRAM)である為。<br />
そのため、不揮発性メモリ(NVRAM)に設定を書き込む必要がある。</p>
<p>startup-configにrunning-configをコピーするコマンドは下記になる。</p>
<pre><code>Router# copy running-config startup-config
</code></pre>
<p>NVRAM(スタートアップコンフィグの保存先、不揮発性メモリ)をクリアするコマンド。</p>
<pre><code>Router# erase startup-config
</code></pre>
<h5 id="おまけ"><a href="#%E3%81%8A%E3%81%BE%E3%81%91">おまけ</a></h5>
<p>もし、スイッチでVLANを構成している場合は、VLANのテーブルも削除すると、完全初期化できる。<br />
以下、Ciscoスイッチの初期化手順。</p>
<pre><code>Switch# erase startup-config
Switch# delete flash:vlan.dat
Switch# reload
</code></pre>
Nata
tag:crieit.net,2005:PublicArticle/16331
2020-12-10T18:46:32+09:00
2020-12-22T15:16:41+09:00
https://crieit.net/posts/e61b5563eb1246819cf43ca835610123
ネットワーク基礎~ルーティング~
<h3 id="ルーティング基礎"><a href="#%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E5%9F%BA%E7%A4%8E">ルーティング基礎</a></h3>
<p>複数ホップのルーティングでハマったので、まとめ。</p>
<p><strong>下記の例から、端末間のルーティングを考える</strong><br />
<a href="https://crieit.now.sh/upload_images/ff93e27b2aeb8e52c22203b0383e36c95fd1eafa05647.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ff93e27b2aeb8e52c22203b0383e36c95fd1eafa05647.png?mw=700" alt="image" /></a><br />
実機情報<br />
・Cisco 800 series他</p>
<h5 id="ルーティングとは"><a href="#%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%A8%E3%81%AF">ルーティングとは</a></h5>
<p>異なるネットワーク間で通信が行えるようにする事</p>
<h5 id="接続の種類"><a href="#%E6%8E%A5%E7%B6%9A%E3%81%AE%E7%A8%AE%E9%A1%9E">接続の種類</a></h5>
<p>ルータの接続には3種類ある。<br />
直接接続された端末・ネットワークに対してはルータ自身が相手の住所情報を知っているため、<br />
別途ルーティング設定を行わなくとも接続できる。<br />
以下はルータの接続方式</p>
<ol>
<li>直接接続・・・端末、ネットワークを直接WANポートに接続する。<strong>最も信頼性の高い接続。</strong></li>
<li>スタティックルーティング・・・管理者が手動で接続先のネットワークへの経路を決定する。<strong>二番目に信頼性の高い接続</strong></li>
<li>ダイナミックルーティング・・・ルータが同じネットワーク内のルータと情報交換を行い、自動で接続先のネットワークへの経路を決定する。<strong>信頼性は3つの中では最低。</strong></li>
</ol>
<p>接続の信頼性はダイナミックルーティングで用いられる。<br />
今回はスタティックルーティングで考える。</p>
<h5 id="ルーティングテーブルとは"><a href="#%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%A8%E3%81%AF">ルーティングテーブルとは</a></h5>
<p>ルータが持っているネットワークの接続情報。<br />
ルーティングを行う際には、このテーブルに情報が載っているかどうかをチェックする。<br />
以下のコマンドで現在の接続情報を確認できる</p>
<pre><code>Router#show ip route
///略///
C 192.168.1.0/24 is directly connected, FastEthernet0
</code></pre>
<p>[C]=直接接続でパソコンが接続している。</p>
<p><del>クライアントPC1にデフォルトゲートウェイ</del>「<del>192.168.1.254</del>」<del>を設定して直接通信できるのは</del>、<del>RT2のポート</del>「<del>192.168.11.2</del>」<del>までである。</del><br />
今回、RT1インターフェース「192.168.11.1」の先に直接接続されている機器はルータのみなので、<br />
ルーティング設定をしないで接続できるインターフェースは存在しない。<br />
<strong>RT2の代わりに同じIPアドレス(192.168.11.2)を設定されたPCが繋がっている場合は通信可能。</strong><br />
ルータはネットワークを分割する為の機材なので、そのインターフェースは直接接続のネットワークとは判定されない。</p>
<h5 id="ネクストホップアドレスとは"><a href="#%E3%83%8D%E3%82%AF%E3%82%B9%E3%83%88%E3%83%9B%E3%83%83%E3%83%97%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%AF">ネクストホップアドレスとは</a></h5>
<p>接続したいネットワークが自身のルーティングテーブルにない時、<br />
ルータが問い合わせをかけるネットワークのこと</p>
<pre><code>#RT1の設定
RT1(config)# ip route 192.168.100.0 255.255.255.0 192.168.11.2
</code></pre>
<p>上記の例だと、クライアントからの要求がネットワーク「192.168.100.0」宛だった場合、<br />
「192.168.11.2」に要求を転送する。<br />
<strong>その先の経路については関与しない。</strong><br />
要求を受け取ったRT2は、自身のルーティングテーブルを検証し、「192.168.100.0」が登録されていればクライアントからの要求を届けるが、今回は存在しない。<br />
その為、RT2にも「192.168.100.0」の問い合わせ先を登録しなければならない。</p>
<pre><code>#RT2の設定
RT2(config)# ip route 192.168.100.0 255.255.255.0 192.168.12.2
</code></pre>
<p>これにより、クライアントPC1からの要求はRT3に届けられる。<br />
RT3は「192.168.100.0/24」がルーティングテーブルにある為、クライアントPC1の要求はPC2へ届けられる。</p>
<h5 id="ネットワークは双方向"><a href="#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AF%E5%8F%8C%E6%96%B9%E5%90%91">ネットワークは双方向</a></h5>
<p>この時注意しなければいけないのは、ネットワーク通信は要求→返答で1セットになっていることだ。<br />
今のままだと、PC1からの要求だけが届けられ、PC2からの返答が返ってこない。<br />
また、PC2からPC1への通信も当然ながら失敗する。<br />
なので、先ほど作ったのとは反対方向に経路を作成する必要がある。</p>
<pre><code>#RT3の設定
RT3(config)# ip route 192.168.1.0 255.255.255.0 192.168.12.1
#RT2の設定
RT2(config)# ip route 192.168.1.0 255.255.255.0 192.168.11.1
</code></pre>
<p>これでようやくPC1とPC2が通信可能となる。</p>
Nata
tag:crieit.net,2005:PublicArticle/16307
2020-12-07T18:40:21+09:00
2020-12-21T17:14:56+09:00
https://crieit.net/posts/Linux-NIC
LinuxサーバにNICのドライバをインストールした話
<h1 id="作業背景"><a href="#%E4%BD%9C%E6%A5%AD%E8%83%8C%E6%99%AF">作業背景</a></h1>
<p><strong>昔、HPE製のタワー型サーバをキッティングした時の話</strong><br />
- 設計段階でNICがテキトーに選定された為、標準搭載のNICと、追加したNICがそれぞれ別の製造元だった。<br />
<del>誰がそんなテキトーしたのか?自分自身である。</del></p>
<ul>
<li>標準搭載されていたNICはBroadcom製 追加したNICはIntel製<br />
サーバにはIntel製NICのドライバが入っていなかった。</li>
</ul>
<h1 id="作業環境"><a href="#%E4%BD%9C%E6%A5%AD%E7%92%B0%E5%A2%83">作業環境</a></h1>
<ul>
<li>タワー型サーバ ML30Gen10</li>
<li>OS CentOS7.4</li>
</ul>
<h1 id="作業手順"><a href="#%E4%BD%9C%E6%A5%AD%E6%89%8B%E9%A0%86">作業手順</a></h1>
<p><strong>1.NICの製造元とコントローラを確認する</strong><br />
NICの情報を確認する手段はいくつかあるが、複数NICのインターフェース名も確認したかった為、ここではnmcliコマンドを使っている。</p>
<pre><code>$ nmcli
</code></pre>
<p>※作業当時のサーバにはそもそもインストールされていなかった為、確認していなかったが、インターフェースのドライバ情報(ドライバ名、バージョン)等はethtoolコマンドで確認できる。</p>
<pre><code>$ ethtool -i <インターフェース名>
</code></pre>
<p><strong>2.必要なパッケージをインストールする</strong></p>
<pre><code>$ sudo yum install -y wget #ドライバのダウンロードに使用
$ sudo yum install -y rpm-build #ダウンロードしたドライバのコンパイルに使用
$ sudo yum install -y kernel-devel #コンパイルする時に必要なヘッダファイル等をインストールする
</code></pre>
<p>kernel-develをインストールしたら、一度再起動する。</p>
<pre><code>$ sudo reboot
</code></pre>
<p><strong>3.ドライバをダウンロードする</strong></p>
<pre><code>$ mkdir /home/user/Downloads #ダウンロード先を用意する
$ cd /home/user/Downloads #ダウンロードフォルダに移動
$ wget https://sourceforge.net/projects/e1000/files/igb%20stable/5.3.5.36/igb-5.3.5.36.tar.gz #NICのベースドライバ
$ wget https://sourceforge.net/projects/e1000/files/e1000e%20stable/3.5.1/e1000e-3.5.1.tar.gz #当時最新のPCIe用のネットワークアダプタドライバ
</code></pre>
<p><strong>4.ダウンロードしたドライバをrpmパッケージにコンパイルする</strong></p>
<pre><code>$ rpmbuild -tb --clean igb-5.3.5.36.tar.gz
$ rpmbuild -tb --clean e1000e-3.5.1.tar.gz
</code></pre>
<p>rpmbuildは、設定を変更せずにコンパイルを実行すると、デフォルトで$HOME/rpmbuildディレクトリ以下を生成するので移動する。</p>
<pre><code>$ cd /home/user/rpmbuild/RPMS/x86_64
</code></pre>
<p><strong>5.ドライバをインストールする</strong></p>
<pre><code>$ rpm -ivh igb-5.3.5.36.x86_64.rpm
</code></pre>
<p><strong>6.ネットワークを再起動する</strong></p>
<pre><code>$ sudo systemctl restart network
</code></pre>
<p>ネットワークの再起動後、LANケーブルを挿してNICが認識されることを確認したら終了。</p>
Nata