ルーティング
ルーティングテーブルとは
- 特定の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
- 宛先のネットワークを指定する場所。
- 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
- もうちょっと
Linux
- まってね