#author("2024-11-12T23:22:11+09:00","default:k1rou","k1rou") #author("2024-11-12T23:22:39+09:00","default:k1rou","k1rou") *IPv4 とは [#m0cf60d2] -ネットワーク層([[OSI参照モデル]])の通信プロトコル -[[IP]]のバージョン4 -ヘッダは可変長 *IPv4 のIPアドレス [#n7764760] -[[IPアドレス]]のサイズは、4バイト(32bit) --8bit × 4 = 32bit --2^32(42億9496万7296)個の固有アドレスを識別できる。 *IPv4 のIPアドレスの種類 [#v9b1a9f0] **(ローカル)[[ループバックアドレス]] [#p18f80af] -自身のアドレス。127.0.0.1 (localhost)が一般的に使われる。 -127.0.0.0/8 --(127.0.0.0 〜 127.255.255.254) **プライベートアドレス [#uc1302f5] ***クラスA:ネットワーク部(8bit:0~)、ホスト部(24bit) [#cc10ea8b] -10.0.0.0/8 --(10.0.0.0 〜 10.255.255.255) --サブネットマスク(255.0.0.0 〜 255.255.255.255) -100.64.0.0/10 --Shared Address Space ---[[CGN]]で使われる --(10.64.0.0 〜 10.127.255.255) --サブネットマスク(255.0.0.0 〜 255.192.0.0) ***クラスB:ネットワーク部(16bit:10~)、ホスト部(16bit) [#b65073b2] -172.16.0.0/12 --(172.16.0.0 〜 172.31.255.255) --サブネットマスク(255.255.0.0 〜 255.255.255.255) --約65000台のホストの割り当てが可能 ***クラスC:ネットワーク部(24bit:110~)、ホスト部(8bit) [#m83b8fdf] -192.168.0.0/16 --(192.168.0.0 〜 192.168.255.255) --サブネットマスク(255.255.255.0 〜 255.255.255.255) --約250台のホストの割り当てが可能 **[[リンクローカルアドレス]] [#p6c28333] -[[DHCP]]サーバからIPアドレスを割り当てられなかった場合に自動的に設定する([[APIPA]]) -同一リンク上でのみ有効なアドレス -169.254.0.0/16 --(169.254.0.0 〜 169.254.255.255) **テストネットワーク用アドレス [#f1b1408c] -テストや例示で使うためのアドレス -192.0.2.0/24 --(192.0.2.0 〜 192.0.2.255) -198.51.100.0/24 --(198.51.100.0 〜 198.51.100.255) -203.0.113.0/24 --(203.0.113.0 〜 203.0.113.255) **[[マルチキャスト]]アドレス [#y2dac175] ***クラスD:ネットワーク部(4bit:1110~)、ホスト部(28bit) [#e8b5497e] -ホストの全体を指すアドレス -224.0.0.0/4 --(224.0.0.0 〜 239.255.255.255) **実験用アドレス [#n5c41ff2] ***クラスE:ネットワーク部(4bit:1111~)、ホスト部(28bit) [#y8a928f6] -240.0.0.0/4 --(240.0.0.0~255.255.255.255) **制限ブロードキャストアドレス(リミテッドブロードキャストアドレス) [#c998126d] -同じサブネットの全てのホストを宛先として指定する[[ブロードキャスト]]アドレス -255.255.255.255 **ネットワークアドレス [#zc7ce410] -0.0.0.0/8 *IP(IPv4)のデータ構造 [#i178eb50] **IPヘッダ [#a057a972] -1〜32bit --バージョン(4) ※0x04(バージョン4) --ヘッダ長(IHL)(4) ※単位:4Byte(20Byteの場合、0x05) --サービスタイプ(ToS)(8) --全長(16) ※IPヘッダを含めたIPパケットの長さ -33〜64bit --識別子(16) --フラグ(3) --フラグメントオフセット(13) -65〜96bit --パケット生存時間(TTL)(8) ※通過可能なルータの最大数(0〜255)。ルータを経由する度にカウントダウンする --プロトコル番号(8) --チェックサム(16) ※IPヘッダの誤り検出に使われる -97〜128bit --発信元IPアドレス(32) -129〜160bit(20Byte) --宛先IPアドレス(32) -161〜(+32×n bit)bit --オプション(可変長) --パディング(可変長) ***フラグ [#tec5c259] -IPパケットの分割の制御に使われる --1bit目:0(固定) --2bit目:DFビット(0:分割可能、1:分割不可能) --3bit目:MFビット(0:最後のフラグメント、1:後続フラグメントあり) ***プロトコル番号 [#re1329e5] -上位層のプロトコルを識別ための番号 -[[IANA]] のプロトコル番号~ https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml -一部抜粋 | プロトコル番号 | プロトコル名 |h | 1 | [[ICMP]] | | 6 | [[TCP]] | | 17 | [[UDP]] | | 41 | [[IPv6]] | | 47 | [[GRE]] | | 50 | [[ESP]] | | 112 | [[VRRP]] | | 115 | [[L2TP]] | *IPv4 で使われる機能 [#gdafc553] **経路MTU探索(パスMTU探索) [#f87b4a0a] -[[フラグメント]]処理が行われないように送信元から送信先までの通信経路上の最小[[MTU]]を確認する機能 --IPヘッダのフラグフィールドのDFビットと[[ICMP]]メッセージを組み合わせて行われる --ICMP:タイプ3(宛先到達不可能通知)、コード4([[フラグメント]]要求、DFフラフがセットされている) *IPv6 と比較したIPv4 の性質・特徴 [#gc65a9be] -ネットワーク機器の負担 --ヘッダーが可変長であることが、ネットワーク機器に負担がかかることとなり、パフォーマンスを低下させる要因となっている。 *IPv4の脆弱性 [#p87b6b50] -パケットの暗号化が標準的に装備されていない *IPv4 アドレス在庫枯渇問題 [#o2e88e6c] -インターネットに接続する端末の増加により、IPv4 アドレスの中央在庫が枯渇して、新しいIPv4 アドレスが供給されなくなる問題。 **対策 [#ie3a0f61] -[[CIDR]] -[[NAT]] -プライベートアドレス *数値に変換(bash) [#md434279] *IPv4アドレスを数値に変換 [#m22cb7fd] **bash [#e212e168] -10進数 echo -n 127.0.0.1|awk -F'.' '{print $1*256**3+$2*256**2+$3*256+$4}' -8進数 echo -n 127.0.0.1|awk -F'.' '{print $1*256**3+$2*256**2+$3*256+$4}'|echo 'obase=8;ibase=10;'$(cat)|bc|echo 0$(cat) -16進数 echo -n 127.0.0.1|awk -F'.' '{print $1*256**3+$2*256**2+$3*256+$4}'|echo 'obase=16;ibase=10;'$(cat)|bc|echo 0x$(cat) *関連サイト [#yde483f4] -IANA IPv4 Address Space Registry~ https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml -予約されているIPアドレス --例示で使うことが認められているIPアドレス(テストネットワーク用アドレス)(RFC5737) --IPv4 Address Blocks Reserved for Documentation~ https://tools.ietf.org/html/rfc5737 -プライベートアドレス(RFC1918) --Address Allocation for Private Internets~ https://tools.ietf.org/html/rfc1918 -IPv4 アドレスの枯渇時に生じる諸課題に適切に対処するための手順書 (総務省)~ https://www.soumu.go.jp/main_content/000240919.pdf -サブネットマスク計算(IPv4) - CMAN~ https://note.cman.jp/network/subnetmask.cgi *関連用語 [#q92ec041] -[[IP]] -[[IPv6]] -[[CIDR]] -[[NIC(Network Information Center)]] -[[TLV]] -[[ブロードキャスト]] -[[サブネット]]