サイズ: 2386
コメント:
|
サイズ: 14884
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
#acl Known:read,write,delete,revert,admin Room:read All:read | |
行 12: | 行 13: |
相互に通信可能な複数のコンピュータと関連する機器からなる系。これの実現方法と応用について解説する予定です。 == パケット通信とは == 通信の形態は2つあります。一つは回線交換、もう一つはパケット通信です。 回線交換はデータの伝送路(これを回線という)を占有して通信を行います。電話はこの方式をとっています。 パケット通信ではデータを細分化して(この細分化されたデータをパケットという)送ります。伝送路上の中継器まで送れる時に送ります。中継器も同じようにしてパケットを送ります。こうして目的の端末までパケットを送ります。 これから扱うコンピュータネットワークはすべてパケット通信で成り立っています。 == ノードとは == ネットワーク上のコンピュータや専用機器など,データを送受信したり中継したりする機器をノードといいます。コンピュータと言ってしまうと専用のルーターなどの機器が入るのか入らないのか微妙なためここではノードという用語を使います。 == トポロジーとは == ネットワークの形態のこと。Wikipediaの記事が分かりやすい。http://ja.wikipedia.org/wiki/ネットワーク・トポロジー |
|
行 14: | 行 31: |
通信時の取り決め。使う周波数はこの辺ねーとか使う文字コードはこれねーとかこの信号送ったら処理能力の限界まできてるからしばらく待ってねーとか。 | |
行 15: | 行 33: |
== OSI Reference Model == | 手旗信号とかモールス符号とか考えると分かりやすいかな。 == OSI Reference Model(OSI参照モデル) == 例えばテキストファイルを送るプロトコルを作るとして、そのために電気信号やらエラーが起きたときの処理やら使用する文字コードやらを単一のプロトコルで決めてるといろいろと不都合が起きます。通信に使用する物理媒体が変わった(今まで有線でやってたけど今度から無線でやることに)とか、そもそも1からプロトコル全部作るの面倒くさくてやっとれんとか。 そんなわけで通信に必要な機能をいくつかのプロトコルに分けて決定することを考えるわけです。 ISO(International Organization for Standardization、国際標準化機構)とITU-Tが作った標準がOSI(Open Systems Interconnection)です。この標準が普及することはなかったのですが、モデルとしてよくできているのでコンピュータネットワークの解説でよく使われます。 OSI Reference Model(長いので以下OSI)では通信を7つのLayer(層)に分けて考えます。 * Application Layer * Session Layer * Presentation Layer * Transport Layer * Network Layer * Data Link Layer * Physical Layer(物理層) 下から順に第1層,第2層・・・ということもあります。 各層役割が分けられています。実際にはOSIは普及せず、TCP/IPというプロトコル群が普及しました。そんなわけで各層の機能については細かく覚えなくても構いません。ただネットワーク機器の名前に使われていたり日常会話でたまに使ったりするので大体何をするのかは知らないと困ることがあります。 |
行 18: | 行 57: |
現在のインターネット(the Internet)で使用されているプロトコル群(プロトコルの集合)です。IETF(Internet Engineering Task Force)がRFC(Request for Comments)という形で標準化しています。OSIのように明確な階層モデルをとりません。 この講習の前半はTCP/IPについての講習です。 == 物理層の規格 == TCP/IPはネットワークの物理的実装(OSIの物理層・データリンク層に位置する部分)に依存しないよう設計されています。そんなわけで物理的実装には別の規格がいくつかあります。その内Ethernet(IEEE802.3)とWi-Fi(IEEE802.11)についても解説します。 |
|
行 20: | 行 65: |
詳しくはやらない(やれない)。物理層(10BASE-T等の規格)について少しとMACアドレスとEthernet Frameの話さえしてればいい気がする。 | 有線LANに使われているのは大体これです。 IEEE802.3で標準化されています。 ネットワークの管理に最低限必要な部分以外は解説しません。wikipediaに十分詳しい記事があります。http://ja.wikipedia.org/wiki/イーサネット == MACアドレス == 各ネットワークインターフェースにはMACアドレスという全世界で一意なアドレスが割り当てられています。このアドレスをもとに通信が行われます。 インターフェースのMACアドレスを調べるにはifconfigコマンドを使用します。 {{{#!wiki solid ifconfig ''interface'' }}} 出力のetherで始まっている部分がMACアドレスです。izの端末のEthernetインターフェースでは04:20:9a:40:a8:6bでした。 すべてのインターフェースについて調べることもできます。 {{{#!wiki solid ifconfig -a }}} === ブロードキャストアドレス === ネットワークに接続しているインターフェースすべてを指す特殊なアドレスです。ff:ff:ff:ff:ff:ffがそれです。 ネットワーク全体にデータを送信するとき、相手のMACアドレスが分からないときに使用します。後述するARP、DHCPなどで使われます。 |
行 23: | 行 90: |
Ethernetではデータをframeという単位でやりとりします。frameには同期信号(送られてくるデータのどこからどこまでが1frameか認識するための信号)、宛先MACアドレス、送信元MACアドレス、転送するデータ、エラー検知のためのデータが含まれています。 | |
行 24: | 行 92: |
== MACアドレス == | 詳しくは http://ascii.jp/elem/000/000/427/427324 で解説されています。 |
行 26: | 行 94: |
= IP = IPアドレスについてが主。ICMPもここでやるか。 ルーティングに関しては深く立ち入らず別個に解説を加えたほうがいいだろう。 |
== Ethernetの各規格について == Ethernetというのは複数個ある規格の総称です。基本的な機能は同じですが、速度、通信形態(半二重通信か全二重通信か)などが異なります。適切な規格のものを選びましょう。詳しくはwikipedia見てください。 == 機器 == Ethernetに関する機器で覚えておくべきこと === LANケーブル === 複数個規格があることに留意してください。お使い頼まれたときに用途に合わないケーブル持ってったりしたら時と場合によっちゃ怒られます。 === ハブ === === スイッチングハブ === = IP(Internet Protocol) = IPの機能はデータを特定のホストに届けることです。送信先ホストが別のネットワーク上にあるものでも送信可能です。これをEnd-to-Endの通信といいます。 OSIのネットワーク層に位置するプロトコルです。データの転送にはデータリンク層・物理層のEthernetやWiFiを使用します。 == Routing == End-to-Endの通信では相手が同一ネットワークにいるとは限らないため,相手まで通信を中継してもらう必要があります。ネットワークを越えてデータを中継するノードをGatewayとかRouterと呼びます。中継するノードを選択する作業をRoutingと呼びます。 == End-to-End Principle == TCP/IPを設計するに当たって採用された原則です。要約するとネットワーク上の中継器は単に中継するだけで,通信エラーの検知やトラッフィク制御といった機能はすべて通信しているノードが行うというものです。 この原則に従い,IPではネットワークの制御やデータが届いたかどうか,届いたデータにエラーがないかの検知は'''行いません'''。こういった機能はTCPが備えています。 |
行 31: | 行 119: |
IPではノードを特定するためにIPアドレスという32bitのアドレスを使用します。例えばsunのアドレスは | |
行 32: | 行 121: |
== ARP == | {{{#!wiki solid 10000010100110011100010001101 }}} 読みにくいので普通は8bitずつ区切って10進に直したものをドットでつなげて表示します。 |
行 34: | 行 126: |
== Routing == ルーティングとは何かを軽く話すだけにとどめる。詳しくは別に解説する。 |
{{{#!wiki solid 130.153.24.141 }}} IPアドレスはホストではなくインターフェースに割り当てられます。 |
行 37: | 行 131: |
== ICMP == | == Default Gateway == 同一ネットワーク上にないホストとは直接通信ができません。別のネットワーク上にいるホストと通信したいときはGatewayに中継してもらいます。使用するGatewayが特に指定されなかった時に使用するGatewayをDefault Gatewayといいます。 |
行 39: | 行 134: |
== サブネットマスク == === ネットワーク部とホスト部 === インターネットというのは全世界規模のネットワークです。考えられるIPアドレスは2の32乗(4,294,967,296)あるわけで、こんなもんを1つのネットワークとして1団体で管理するなんてことは当然できないわけです。そこで複数のネットワークに分けておのおの勝手に管理してもらうようになってます。で、どうやってわけてるかというとまずIPアドレスは最初の何ビットかをネットワーク部、残りをホスト部というふうに分けられています。ネットワーク部が各団体に割り振られ、ホスト部をどうするかは各団体にまかされています。 === サブネットマスク === 各団体に必要なIPアドレスの数は当然異なりますので、ネットワーク部の長さを適当に変える必要があります。このときどこからどこまでがネットワーク部なのか判別するためにサブネットマスクというものがあります。 サブネットマスクもIPアドレスと同様32ビットのデータで、IPアドレスとの論理積がネットワークアドレスになるように設定されます。IPアドレス同様、8ビットずつ10進に直し、ドットで区切って表示します。 例えばネットワーク部か最初16ビットならば、そのサブネットマスクは11111111111111110000000000000000(255.255.0.0)です。 サブネットマスクはルーティング時に相手ホストが同一ネットワークにいるかどうかの判定に使用します。つまりこれが適切に設定されていないとケーブルが直接ぶっ刺さってようが電波がわんわん飛んでようが同一ネットワーク上に居ない(=ゲートウェイを通さず直接データを渡すことができない)と判断され、正常に通信できません。 === CIDR === ネットワーク部は最初何ビットというふうに決めるので、人間様としてはサブネットマスクなんてものがなくても何ビット目までがネットワーク部かさえ分かればいいわけです。そんな表記法があります。IPアドレスの後にスラッシュ(/)を入れ、その後に何ビット目までがネットワーク部かを書きます。 例えばIPアドレスが192.168.0.10でサブネットマスクが255.255.255.0のとき、 {{{#!wiki solid 192.168.0.10/24 }}} この表記法をCIDR(サイダーと発音)といいます。 == IPアドレスの割り当て方 == IPアドレスを割り当てるにもifconfigコマンドを使用します。 {{{#!wiki solid ifconfig ''interface'' ''ip_address'' netmask ''subnetmask'' }}} 例えばインターフェースeth0に130.153.24.141/16を割り当てるには次のようにします {{{#!wiki solid ifconfig eth0 130.153.24.141 netmask 255.255.0.0 }}} さてこのアドレスはsunのアドレスでした。というか130.153.0.0 〜 130.153.255.255は電通大が所有しています。ところがこのIPアドレスで正常に設定できてしまいます(やってみましょう)。この設定をしたとき何が起こるか考えてみましょう。 まずインターネットに接続するにはインターネットに接続できるゲートウェイ(ルーター)が同一ネットワーク上に必要です。IPアドレスのネットワーク部が130.153であるゲートウェイを設置し、このゲートウェイを使用するよう設定しなければいけません。この設定がなされていないときインターネットに継いでくれるゲートウェイが見つからず、インターネットにはつなげません。 ではゲートウェイのアドレスを130.153.0.1としてこのゲートウェイを使用する、などと設定すればどうなるでしょうか。実はこの設定もできてしまいます。ただし我々は電通大のネットワーク管理者ではないため、他のどのゲートウェイも130.153.0.0 〜 130.153.255.255へと継いでくれるゲートウェイが我々の管理下にあるゲートウェイだとは認識してくれません。おそらくはインターネットに投げるデータすべてがガン無視されるか電通大のゲートウェイから中継されたと思われて電通大のゲートウェイに返答がいくかでしょう。 == ARP(Address Resolution Protocol) == |
|
行 40: | 行 178: |
= ICMP = = TCP(Transmission Control Protocol) = == Port == == Handshake == == フロー制御 == == 輻輳制御 == == TCP Segment == = UDP(User Datagram Protocol) = == UDP Packet == |
|
行 41: | 行 188: |
= TCP = TCP/IPでいうところのトランスポート層について。要はTCPとUDPについて。 == Port == == TCP == === Handshake === === TCP Segment === == UDP == === UDP Packet === = Routing = サークル棟ネットワークとなると多分いるよなあ・・・ == EGP(BGP)・IGP == * BGP4 * OSPF・RIP あたりについてさらっと == gated == = DNS = == BIND == = DHCP = = Proxy = = Security = == 暗号方式 == === 共通鍵 === === 公開鍵 === == PKI == == TLS(SSL) == == Firewall == = SSH = = VLAN = = VPN = = World Wide Web = == HTTP == == Apache == == Proxy・Reverse Proxy == = EMail = == プロトコル == === SMTP === === POP・IMAP === == サーバーソフトウェア(Postfix or Sendmail) == どうもPostfixとSendmail両方つかってるっぽい? できれば片方だけにしたい。 = NFS = = PXE = = 無線LAN(IEEE802.11) = = File System = = OS仮想化 = jailとかLXRについて。さすがにXenはいらんだろ。 正直解説できる気がしない。 |
= 参考書籍 = . [[http://www.amazon.co.jp/gp/product/B0043EWVH4/|TCP/IP Network Administration]] . [[http://www.amazon.co.jp/コンピュータネットワーク第4版-A・S・タネンバウム/dp/4822221067/|コンピュータネットワーク第4版]] . [[http://www.amazon.co.jp/gp/product/B0043EWUNE/|Running Linux]] . [[http://www.amazon.co.jp/dp/4822283119/|ネットワークはなぜつながるのか 第2版]] . [[http://www.amazon.co.jp/dp/4774153745/|プロのための〔図解〕ネットワーク機器入門]] |
講習会に向けたメモ
ネットワーク講習会でなにやるか。MMA,ひいてはサークル棟のネットワーク管理者になれるレベルの知識をつけることを目標とする。
まだ妄想段階。順番結構テキトー。書いてみたけど実現できる気がしない。でも全部使ってるよなあ・・・。必要だよなあ・・・。
目次
基礎知識
基本的な用語とか概念とかの解説。
コンピュータネットワークとは
相互に通信可能な複数のコンピュータと関連する機器からなる系。これの実現方法と応用について解説する予定です。
パケット通信とは
通信の形態は2つあります。一つは回線交換、もう一つはパケット通信です。
回線交換はデータの伝送路(これを回線という)を占有して通信を行います。電話はこの方式をとっています。
パケット通信ではデータを細分化して(この細分化されたデータをパケットという)送ります。伝送路上の中継器まで送れる時に送ります。中継器も同じようにしてパケットを送ります。こうして目的の端末までパケットを送ります。
これから扱うコンピュータネットワークはすべてパケット通信で成り立っています。
ノードとは
ネットワーク上のコンピュータや専用機器など,データを送受信したり中継したりする機器をノードといいます。コンピュータと言ってしまうと専用のルーターなどの機器が入るのか入らないのか微妙なためここではノードという用語を使います。
トポロジーとは
ネットワークの形態のこと。Wikipediaの記事が分かりやすい。http://ja.wikipedia.org/wiki/ネットワーク・トポロジー
プロトコルとは
通信時の取り決め。使う周波数はこの辺ねーとか使う文字コードはこれねーとかこの信号送ったら処理能力の限界まできてるからしばらく待ってねーとか。
手旗信号とかモールス符号とか考えると分かりやすいかな。
OSI Reference Model(OSI参照モデル)
例えばテキストファイルを送るプロトコルを作るとして、そのために電気信号やらエラーが起きたときの処理やら使用する文字コードやらを単一のプロトコルで決めてるといろいろと不都合が起きます。通信に使用する物理媒体が変わった(今まで有線でやってたけど今度から無線でやることに)とか、そもそも1からプロトコル全部作るの面倒くさくてやっとれんとか。
そんなわけで通信に必要な機能をいくつかのプロトコルに分けて決定することを考えるわけです。
ISO(International Organization for Standardization、国際標準化機構)とITU-Tが作った標準がOSI(Open Systems Interconnection)です。この標準が普及することはなかったのですが、モデルとしてよくできているのでコンピュータネットワークの解説でよく使われます。
OSI Reference Model(長いので以下OSI)では通信を7つのLayer(層)に分けて考えます。
- Application Layer
- Session Layer
- Presentation Layer
- Transport Layer
- Network Layer
- Data Link Layer
- Physical Layer(物理層)
下から順に第1層,第2層・・・ということもあります。
各層役割が分けられています。実際にはOSIは普及せず、TCP/IPというプロトコル群が普及しました。そんなわけで各層の機能については細かく覚えなくても構いません。ただネットワーク機器の名前に使われていたり日常会話でたまに使ったりするので大体何をするのかは知らないと困ることがあります。
TCP/IP
現在のインターネット(the Internet)で使用されているプロトコル群(プロトコルの集合)です。IETF(Internet Engineering Task Force)がRFC(Request for Comments)という形で標準化しています。OSIのように明確な階層モデルをとりません。
この講習の前半はTCP/IPについての講習です。
物理層の規格
TCP/IPはネットワークの物理的実装(OSIの物理層・データリンク層に位置する部分)に依存しないよう設計されています。そんなわけで物理的実装には別の規格がいくつかあります。その内Ethernet(IEEE802.3)とWi-Fi(IEEE802.11)についても解説します。
Ethernet
有線LANに使われているのは大体これです。 IEEE802.3で標準化されています。
ネットワークの管理に最低限必要な部分以外は解説しません。wikipediaに十分詳しい記事があります。http://ja.wikipedia.org/wiki/イーサネット
MACアドレス
各ネットワークインターフェースにはMACアドレスという全世界で一意なアドレスが割り当てられています。このアドレスをもとに通信が行われます。
インターフェースのMACアドレスを調べるにはifconfigコマンドを使用します。
ifconfig interface
出力のetherで始まっている部分がMACアドレスです。izの端末のEthernetインターフェースでは04:20:9a:40:a8:6bでした。
すべてのインターフェースについて調べることもできます。
ifconfig -a
ブロードキャストアドレス
ネットワークに接続しているインターフェースすべてを指す特殊なアドレスです。ff:ff:ff:ff:ff:ffがそれです。
ネットワーク全体にデータを送信するとき、相手のMACアドレスが分からないときに使用します。後述するARP、DHCPなどで使われます。
Ethernet Frame
Ethernetではデータをframeという単位でやりとりします。frameには同期信号(送られてくるデータのどこからどこまでが1frameか認識するための信号)、宛先MACアドレス、送信元MACアドレス、転送するデータ、エラー検知のためのデータが含まれています。
詳しくは http://ascii.jp/elem/000/000/427/427324 で解説されています。
Ethernetの各規格について
Ethernetというのは複数個ある規格の総称です。基本的な機能は同じですが、速度、通信形態(半二重通信か全二重通信か)などが異なります。適切な規格のものを選びましょう。詳しくはwikipedia見てください。
機器
Ethernetに関する機器で覚えておくべきこと
LANケーブル
複数個規格があることに留意してください。お使い頼まれたときに用途に合わないケーブル持ってったりしたら時と場合によっちゃ怒られます。
ハブ
スイッチングハブ
IP(Internet Protocol)
IPの機能はデータを特定のホストに届けることです。送信先ホストが別のネットワーク上にあるものでも送信可能です。これをEnd-to-Endの通信といいます。
OSIのネットワーク層に位置するプロトコルです。データの転送にはデータリンク層・物理層のEthernetやWiFiを使用します。
Routing
End-to-Endの通信では相手が同一ネットワークにいるとは限らないため,相手まで通信を中継してもらう必要があります。ネットワークを越えてデータを中継するノードをGatewayとかRouterと呼びます。中継するノードを選択する作業をRoutingと呼びます。
End-to-End Principle
TCP/IPを設計するに当たって採用された原則です。要約するとネットワーク上の中継器は単に中継するだけで,通信エラーの検知やトラッフィク制御といった機能はすべて通信しているノードが行うというものです。
この原則に従い,IPではネットワークの制御やデータが届いたかどうか,届いたデータにエラーがないかの検知は行いません。こういった機能はTCPが備えています。
IPアドレス
IPではノードを特定するためにIPアドレスという32bitのアドレスを使用します。例えばsunのアドレスは
- 10000010100110011100010001101
読みにくいので普通は8bitずつ区切って10進に直したものをドットでつなげて表示します。
- 130.153.24.141
IPアドレスはホストではなくインターフェースに割り当てられます。
Default Gateway
同一ネットワーク上にないホストとは直接通信ができません。別のネットワーク上にいるホストと通信したいときはGatewayに中継してもらいます。使用するGatewayが特に指定されなかった時に使用するGatewayをDefault Gatewayといいます。
サブネットマスク
ネットワーク部とホスト部
インターネットというのは全世界規模のネットワークです。考えられるIPアドレスは2の32乗(4,294,967,296)あるわけで、こんなもんを1つのネットワークとして1団体で管理するなんてことは当然できないわけです。そこで複数のネットワークに分けておのおの勝手に管理してもらうようになってます。で、どうやってわけてるかというとまずIPアドレスは最初の何ビットかをネットワーク部、残りをホスト部というふうに分けられています。ネットワーク部が各団体に割り振られ、ホスト部をどうするかは各団体にまかされています。
サブネットマスク
各団体に必要なIPアドレスの数は当然異なりますので、ネットワーク部の長さを適当に変える必要があります。このときどこからどこまでがネットワーク部なのか判別するためにサブネットマスクというものがあります。
サブネットマスクもIPアドレスと同様32ビットのデータで、IPアドレスとの論理積がネットワークアドレスになるように設定されます。IPアドレス同様、8ビットずつ10進に直し、ドットで区切って表示します。
例えばネットワーク部か最初16ビットならば、そのサブネットマスクは11111111111111110000000000000000(255.255.0.0)です。
サブネットマスクはルーティング時に相手ホストが同一ネットワークにいるかどうかの判定に使用します。つまりこれが適切に設定されていないとケーブルが直接ぶっ刺さってようが電波がわんわん飛んでようが同一ネットワーク上に居ない(=ゲートウェイを通さず直接データを渡すことができない)と判断され、正常に通信できません。
CIDR
ネットワーク部は最初何ビットというふうに決めるので、人間様としてはサブネットマスクなんてものがなくても何ビット目までがネットワーク部かさえ分かればいいわけです。そんな表記法があります。IPアドレスの後にスラッシュ(/)を入れ、その後に何ビット目までがネットワーク部かを書きます。
例えばIPアドレスが192.168.0.10でサブネットマスクが255.255.255.0のとき、
192.168.0.10/24
この表記法をCIDR(サイダーと発音)といいます。
IPアドレスの割り当て方
IPアドレスを割り当てるにもifconfigコマンドを使用します。
ifconfig interface ip_address netmask subnetmask
例えばインターフェースeth0に130.153.24.141/16を割り当てるには次のようにします
ifconfig eth0 130.153.24.141 netmask 255.255.0.0
さてこのアドレスはsunのアドレスでした。というか130.153.0.0 〜 130.153.255.255は電通大が所有しています。ところがこのIPアドレスで正常に設定できてしまいます(やってみましょう)。この設定をしたとき何が起こるか考えてみましょう。
まずインターネットに接続するにはインターネットに接続できるゲートウェイ(ルーター)が同一ネットワーク上に必要です。IPアドレスのネットワーク部が130.153であるゲートウェイを設置し、このゲートウェイを使用するよう設定しなければいけません。この設定がなされていないときインターネットに継いでくれるゲートウェイが見つからず、インターネットにはつなげません。
ではゲートウェイのアドレスを130.153.0.1としてこのゲートウェイを使用する、などと設定すればどうなるでしょうか。実はこの設定もできてしまいます。ただし我々は電通大のネットワーク管理者ではないため、他のどのゲートウェイも130.153.0.0 〜 130.153.255.255へと継いでくれるゲートウェイが我々の管理下にあるゲートウェイだとは認識してくれません。おそらくはインターネットに投げるデータすべてがガン無視されるか電通大のゲートウェイから中継されたと思われて電通大のゲートウェイに返答がいくかでしょう。
ARP(Address Resolution Protocol)
IPv6
ICMP
TCP(Transmission Control Protocol)
Port
Handshake
フロー制御
輻輳制御
TCP Segment
UDP(User Datagram Protocol)
UDP Packet