= ルーティングテーブルとは = * 特定のIPへの通信をどのルータに流せばいいかの情報 * netstat -rnあたりで見れる * たとえばこんなの == FreeBSD == {{{ Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.0.254 UG 0 18471 em0 127.0.0.1 link#4 UH 0 98 lo0 192.168.0.0/24 link#1 U 5 1185181 em0 192.168.0.205 link#1 UHS 0 0 lo0 }}} == Linux == {{{ Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 }}} * 主に必要になるのはDestinationとGateway = Destination = * 宛先のIPアドレス(ホストあるいはネットワーク)を指定する場所。 * IPv4の0.0.0.0とIPv6の::はデフォルトゲートウェイと呼ばれる設定で、他に設定が書かれていない場合はこの設定が適用される(Linux) * FreeBSDではdefaultという表記がされる * LinuxのGenmaskはFreeBSDではここに統合され、/24などの形で表されている。詳しくはGenmaskの項目を参照 = Gateway = * 送り先のルータ。 * Gatewayが0.0.0.0の場合(Linux)やLink#n(FreeBSD)の場合はルータを通さず自力で通信する。 = Genmask = * サブネットマスクと呼ばれる物 * ルーティングテーブルではどこまでを1つのネットワークとしてまとめるかを設定する必要がある * FreeBSDでは192.168.0.0/24などDestinationにまとめられている。 == ネットマスクの意味(IPv4) == * 192.168.1.0 netmask 255.255.255.0の表記の場合 * それぞれを2進数として見る * maskで1が立っている部分はネットワークを示し、0は個別のコンピュータを示す {{{ IP (10) 192 168 1 0 IP ( 2) 11000000 10101000 00000001 00000000 mask(10) 255 255 255 0 mask( 2) 11111111 11111111 11111111 00000000 }}} * 192.168.1.0/24の表記の場合 * /以下の数値が頭何bitがネットワークを示しているのかを表す * /24の場合は24bit、上の例と同じ = 設定方法 = routeコマンドを使って設定する。 == FreeBSD == おおよそこれだけ覚えておけば書けると思う。 === 書式 === {{{ route add [-inet6] [-net|-host] [/] }}} {{{ route del [-inet6] [-net|-host] [/] }}} * -netで特定のネットワーク全体を転送するように指定。 * ネットワークアドレスを指定した場合、``に値を指定する。 * defaultを指定することもできる。 * -hostで特定のホストのみを転送するように設定。 * IPv6を操作するためには-inet6が必要。 === 例 === {{{ route add -net 192.168.0.0/24 192.168.11.254 }}} * これは無線LANのセグメントに適用される物。 {{{ route del -net 192.168.0.0/24 }}} * 上記の設定を削除する。 {{{ route add -inet6 -net default fe80::202:2aff:feda:2acf%vlan1 }}} * IPv6のデフォルトゲートウェイをvlan1のfe80::202:2aff:feda:2acfに向ける。 == Linux == === 書式 === {{{ route add [-net|-host] netmask gw }}} {{{ route del [-net|-host] netmask }}} * 分かりづらいが、「``」と「``」と「``」に具体的な値が入る。 === 例 === {{{ route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.11.254 }}} * FreeBSDの例をLinuxで書きなおした物。 {{{ route del -net 192.168.0.0 netmask 255.255.255.0 }}} * 上記の設定を削除する。 ---- CategoryNetwork CategoryDocument CategoryWikiBooks