- PR -

ルーティング設定(NIC2枚)に関して

投稿者投稿内容
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2008-11-23 19:22
続き

次にサーバのルーティングの例を挙げますが、これと上で挙げた喩えが同じであると思えるでしょうか?

例:あるサーバのルーティング
前提:サーバには eth0, eth1 のNICがあり、eth0のIPアドレスは 192.168.1.1/24、eth1 は 192.168.2.1/24 となっている。
eth0に繋がるネットワークにはルータA 192.168.1.2 とVPN装置B 192.168.1.3 が、eth1に繋がるネットワークにはルータC 192.168.2.2がある。
VPNネットワーク10.0.0.0/8へは B を経由するが、実験用ネットワーク 172.16.1.0/24〜172.16.7.0/24 へは Cを経由する。
172.16.0.0/24 も実験用ネットワークだが、こちらは A を経由する。
インターネットへはルータAを経由する。

ルーティング設定
 **ネットワーク**:**出口**:**分類**
 192.168.1.0/24:eth0:直接送信可
 192.168.2.0/24:eth1:直接送信可
 10.0.0.0/8:eth0:192.168.1.3を経由して送信
 172.16.0.0/24:eth0:192.168.1.2を経由して送信
 172.16.0.0/21:eth1:192.168.2.2を経由して送信
 0.0.0.0/0:eth0:192.168.1.2を経由して送信

 各ネットワークの包含関係は、
  192.168.1.0/24 ⊂ 0.0.0.0/0
  192.168.2.0/24 ⊂ 0.0.0.0/0
  10.0.0.0/8 ⊂ 0.0.0.0/0
  172.16.0.0/24 ⊂ 172.16.0.0/21 ⊂ 0.0.0.0
  ※172.16.1.0/24〜172.16.7.0/24 ⊂ 172.16.0.0/21 に注意

なお、この形でルーティング設定を見るのであれば、Linux の場合“/sbin/ip route list”コマンドが良いです。
この例の場合、
 192.168.1.0/24 dev eth0 scope local
 192.168.2.0/24 dev eth1 scope local
 10.0.0.8/0 via 192.168.1.3 dev eth0
 172.16.0.0/24 via 192.168.1.2 dev eth0
 172.16.0.0/21 via 192.168.2.2 dev eth1
 default via 192.168.1.2 dev eth0  (※default とは 0.0.0.0/0 のこと)
と表示されることになります。
この話が違和感なく受け入れられるのであれば、「NICにgatewayの設定を行う」という表現がありえないことも分かると思います。
未記入
会議室デビュー日: 2008/11/24
投稿数: 13
投稿日時: 2008-11-24 15:34
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
未記入
会議室デビュー日: 2008/11/24
投稿数: 13
投稿日時: 2008-11-24 15:35
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-25 11:09
kazさん、おはよーございます。美那です。
本当は休暇予定だったのですが、開発案件の打ち合わせがあるということで、
出勤です。はぁ〜…

引用:

>>自分が "192.168.1.0/24" の network に所属しているときに,
>>rouitng table で "192.168.10.0/24" の gateway は "192.168.0.1" です,
>>と設定されているとして,
>>送信先 IP が "192.168.10.XXX" で合致するとその network と通信することができる.
>んん〜…!?

>このお話ですと送信先IPが"192.168.10.XXX"でクライアントPCからサーバに
>受け取ったときに送信先"192.168.10.0/24"へ繋がる橋、つまりgatewayを探すが、
>NICに設定されているgatewayの設定は"192.168.0.1"で、"192.168.10.0/24"への
>橋は見つからないと思ってます。

>これがgateway"192.168.0.1"ではなく、"192.168.10.1"だとしたら、
>"192.168.10.0/24"への橋は見つかり、通信することはできると思ってます。

"gateway" は橋の手前です.
上述の場合,"192.168.0.0/24" の network に所属しているのであれば,
"192.168.10.0/24" へ繋がる橋の手前が gateway になります.
つまり,gateway は同じ network になければなりません.


ようやく言ってることが分かりました。
gatewayは橋の手前(入り口)なんですね。
私は送信先(出口)のことだと思ってました。


引用:

>個人的にはdefault gatewayは使用せずに明示的にgatewayを設定してあげるのが
>いいような気がするのですが、どうなんでしょう?

case by case だと思います.
最低限必要な routing だけを設定すれば確かに
「想定しない通信は発生しない」ことになりますから secure であるかもしれません.
しかし,例えば internet へ接続する場合はドウでしょう?
「知っている network」であれば明示的に設定できますが,
無数にある,あるいは任意の時点で増減があるかもしれない場合,
予め default として包括的に設定しておいた方が便利だと思います.


はい。
分かりました。


引用:

>default gatewayとして設定すると行き先の橋、gatewayが見つからなかったときに
>最終手段としてdefault gatewayの世界へと繋げてしまうイメージなんですが…
>それでも送信先IPとdefault gatewayが合致しなければ、通信はさせないんですよね?

「送信先 IP と default gateway が合致しない」というのはあり得ますか?
自分が所属する network は local network として認識できています.
ですが,default gateway ということは「自分が所属していない network すべて」
という暗黙の rule ですし,さらにその向こうに別の router があったとしても
手前ではそれを認識できない道理です.
ですから default gateway は local network 以外はすべて合致してしまいます.
ただ,distination IP address が存在していない,
あるいは通信できない状態であれば,通信「させない」のではなくて
「通信できない」という表現が適切だと思います.
※例えば,distination IP address の routing の設定が適切でないとか.


この話もgatewayは橋の手前だという認識ではなかったので、それを知らなかった私は
愚問を展開してしまいました。


ALL理解までには至らない部分があり、また質問することがあるかもしれませんが
また質問がありましたら、お時間のあるときでよろしいので相手をしてあげて下さい。
kazさんの回答は私が何を分かっていないのかを文章から切り分け、その不明点を
噛み砕いて説明して頂けるので、助かってます。

宜しくお願い致します。
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-25 11:47
こんにちわ。美那です。
angelさん、休日なのに長文なご返答有難う御座いました。


引用:

次にサーバのルーティングの例を挙げますが、これと上で挙げた喩えが同じであると思えるでしょうか?

例:あるサーバのルーティング
前提:サーバには eth0, eth1 のNICがあり、eth0のIPアドレスは 192.168.1.1/24、eth1 は 192.168.2.1/24 となっている。
eth0に繋がるネットワークにはルータA 192.168.1.2 とVPN装置B 192.168.1.3 が、eth1に繋がるネットワークにはルータC 192.168.2.2がある。
VPNネットワーク10.0.0.0/8へは B を経由するが、実験用ネットワーク 172.16.1.0/24〜172.16.7.0/24 へは Cを経由する。
172.16.0.0/24 も実験用ネットワークだが、こちらは A を経由する。
インターネットへはルータAを経由する。

ルーティング設定
 **ネットワーク**:**出口**:**分類**
 192.168.1.0/24:eth0:直接送信可
 192.168.2.0/24:eth1:直接送信可
 10.0.0.0/8:eth0:192.168.1.3を経由して送信
 172.16.0.0/24:eth0:192.168.1.2を経由して送信
 172.16.0.0/21:eth1:192.168.2.2を経由して送信
 0.0.0.0/0:eth0:192.168.1.2を経由して送信

 各ネットワークの包含関係は、
  192.168.1.0/24 ⊂ 0.0.0.0/0
  192.168.2.0/24 ⊂ 0.0.0.0/0
  10.0.0.0/8 ⊂ 0.0.0.0/0
  172.16.0.0/24 ⊂ 172.16.0.0/21 ⊂ 0.0.0.0
  ※172.16.1.0/24〜172.16.7.0/24 ⊂ 172.16.0.0/21 に注意

なお、この形でルーティング設定を見るのであれば、Linux の場合“/sbin/ip route list”コマンドが良いです。
この例の場合、
 192.168.1.0/24 dev eth0 scope local
 192.168.2.0/24 dev eth1 scope local
 10.0.0.8/0 via 192.168.1.3 dev eth0
 172.16.0.0/24 via 192.168.1.2 dev eth0
 172.16.0.0/21 via 192.168.2.2 dev eth1
 default via 192.168.1.2 dev eth0  (※default とは 0.0.0.0/0 のこと)
と表示されることになります。
この話が違和感なく受け入れられるのであれば、「NICにgatewayの設定を行う」という表現がありえないことも分かると思います。


確かにdefault gatewayは曖昧でした。
angelさんが違和感を感じるのは確かだと思われます。

お陰ですべてとは言えませんが、かなりいいところまでクリアになった気がします。
今までの私でしたら、上記の例すらも意味が分かってなかったはずですが、今は
分かります。

"/sbin/ip route list"コマンドが凄く使いやすくていいですね。

routeコマンドは見方が分からなくって困ってました。(汗)


有難う御座いました。
以上、宜しくお願い致します。

スキルアップ/キャリアアップ(JOB@IT)