- PR -

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

投稿者投稿内容
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2008-11-20 20:22
こんばんは.
引用:

美那さんの書き込み (2008-11-20 16:48) より:

私は、Gatewayが何であるかを分かっていないです。


まず,「自分の知らない network はどこにあるか?」を考えてみてください.
PC1 は 自分の IP address が 192.168.0.100/24 であることから,
自分が 192.168.0.0/24 の network があることを知っています.
ですが,192.168.10.0/0 の network がどこにあるのか知りません.
その場合,default gateway を設定しておくと
「知らない network は default gateway の向こうにある」として
default gateway を通じて通信しようとします.
これは default gateway だけでなく,static route を設定しても同様です.
「default gateway は 192.168.0.1」とせずに
「192.168.10.0/0 は 192.168.0.1」とすると,
PC1 は default gateway を設定しなくても PC2 と通信する準備ができます.
PC2 でも同様で,PC1/PC2 双方で然るべき routing 設定がなされていないと
お互いの存在する場所を知らないので通信できないわけです.
引用:

NICが2枚あればGatewayというのは2つ存在し、NICが3枚あればGatewayは
3つ存在するものなのでしょうか?


NIC が1つでも gateway が複数存在することはありますし,
NIC がいくつあっても gateway を設定しなくて良い場合もあります.
結局通信したい先が自分と違う network である場合,
routing 設定をしてあげないと通信できません.
かといって,通信したい対象を個別に全部 routing 設定していたらきりがないので,
まとめて「default は」と設定するわけです.

今回の下記のような network では,あまり routing の勉強にはならないと思います.

[PC1]IP:192.168.0.100
 |
 |
eth0:192.168.0.1
[サーバ]
eth1:192.168.10.1
 |
 |
[PC2]IP:192.168.10.50

本当に困るのは下記のような場合

[PC1]IP:192.168.0.100
 |
 |
eth0:192.168.0.1
[サーバ A]
eth1:192.168.10.1
 |
 |
eth0:192.168.10.254
[サーバ B]
eth1:192.168.100.1
 |
 |
eth0:192.168.100.254
[サーバ C]
eth1:192.168.200.1
 |
 |
[PC2]IP:192.168.200.50

でしょう.
この場合,
PC1/PC2 には同様に default gateway を設定すればよいでしょう.
でも,サーバ A/C もそれぞれ サーバ B へ default gateway を向ければ同じです.
では,サーバ B はどうします?
この場合は
「192.168.200.0/0 は 192.168.100.254 の向こう側」
「192.168.0.0/0 は 192.168.10.1 の向こう側」という static route を
サーバ B に設定すればよいわけです.
そうすることで,PC1/2 がお互いに通信できるようになります.

それぞれのサーバにさらに別の network interface が増えても理屈は同じで,
「通信したい network はどの IP address の向こうにあるか?」を
辿っていくように rouitng 設定をしていけばよいわけです.
実際には dynamic routing を駆使したり,いろいろとやり方はありますが,
前述のようなのが原則的な内容になると思います.

以上,ご参考までに.
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-21 10:35
皆様、おはようございます。
美那です。

皆様のお返事のお陰で以下の設定によりPC1⇔PC2にてpingを通すことができました。

===================================================================
【環境】
サーバはTurboLinux11 Trial版
iptablesは起動させておらずすべてACCEPTの状態です。
スタンドアローン環境で、ネットワーク図は以下のようになってます。

【ネットワーク図】
[PC1]IP->192.168.0.100
 |
 |
 |
eth0:IP->192.168.0.1、GW->192.168.0.1
[サーバ]
eth1:IP->192.168.10.1、GW->192.168.10.1
 |
 |
 |
[PC2]IP->192.168.10.50

☆サーバ上の以下のファイルを修正
/etc/sysconfig/network-scripts/配下
ifcfg-eth0
 →"GETEWAY=192.168.0.1"を追加

ifcfg-eth1
 →"GETEWAY=192.168.10.1"を追加

/etc/sysconfig/配下
network
 →"GATEWAY"パラメータをコメントアウト

/etc/sysctl.confに以下を追記
net.ipv4.ip_forward = 1
# sysctl -pにて反映

☆PC1設定内容
# ipconfig /all
-------------------------------------------------------------------
IP Address -> 192168.0.100
Subnet Mask -> 255.255.255.0
Default Gateway -> 192.168.0.1
DNS Server -> 192.168.0.2

☆PC2設定内容
# ipconfig /all
-------------------------------------------------------------------
IP Address -> 192168.10.50
Subnet Mask -> 255.255.255.0
Default Gateway -> 192.168.10.1
DNS Server -> 192.168.10.2

☆サーバ上の設定
# route
Destination GW Genmask    Flag Metric Ref Use Iface
-------------------------------------------------------------------
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.10.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.10.1 0.0.0.0 UG 0 0 0 eth1
-------------------------------------------------------------------


===================================================================

【確認内容】
☆サーバ
"ping 192.168.0.1"→通る
"ping 192.168.0.100"→通る
"ping 192.168.10.1"→通る
"ping 192.168.10.50"→通る

☆PC1
"ping 192.168.10.1"→通る
"ping 192.168.0.1"→通る
"ping 192.168.0.50"→通る

☆PC2
"ping 192.168.0.1"→通る
"ping 192.168.0.100"→通る
"ping 192.168.10.1"→通る


================================
あ り が と う ご ざ い ま し た
================================

■■■あとがき■■■
今回の件で私が認識を間違っていたのは、NICに対してIPアドレスとgatewayを
設定する場合、各IPは重複してはならないと思っていたことによるものでした。
なぜか!?
TurboLinuxの"turbonetcfg"というツールでDefault GatewayのIPとethを入力する
欄があったのですが、NICが2枚であろうと3枚であろうとGatewayは1つしか
設定できないと思っていたからです。
また、各NICに割り当てたIPと重複してはならないと思っていたからです。
「思っていた。」という推測の元で作業をしたその部分でも問題ですよね。

今まで不明確だった箇所が少しずつですが、クリアになってきました。
有難う御座いました。(感謝です♪♪♪)

■■■備考■■■
------------------------------------------------------------------
えーっと、kazさんからのgatewayに関するお返事を読んでいませんので、
その件に関しては別途ちゃ〜んと読んでお返事させていただきますね。
------------------------------------------------------------------


宜しくお願い致します。
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-21 11:53
kazさん、おはようございま〜す。
美那です。

引用:

■説明1
まず,「自分の知らない network はどこにあるか?」を考えてみてください.
PC1 は 自分の IP address が 192.168.0.100/24 であることから,
自分が 192.168.0.0/24 の network があることを知っています.
ですが,192.168.10.0/0 の network がどこにあるのか知りません.
その場合,default gateway を設定しておくと
「知らない network は default gateway の向こうにある」として
default gateway を通じて通信しようとします.
■説明2
これは default gateway だけでなく,static route を設定しても同様です.
「default gateway は 192.168.0.1」とせずに
「192.168.10.0/0 は 192.168.0.1」とすると,
PC1 は default gateway を設定しなくても PC2 と通信する準備ができます.
PC2 でも同様で,PC1/PC2 双方で然るべき routing 設定がなされていないと
お互いの存在する場所を知らないので通信できないわけです.


■説明1
この部分は自分の中ですべて分かったとは思ってませんが、今の知識で言おうと
していることは分かります。

■説明2
>「192.168.10.0/0 は 192.168.0.1」とすると,
自分が"192.168.10.0/0"のとき、あるNICにgateway"192.168.0.1"が設定されており、
送信先IPが"192.168.0.XXX"で合致するとそのnetworkへ通信することができる。
…という認識で合ってますか?

なので、送信先IPが"192.168.100.XXX"のときは、gateway"192.168.100.1"に
設定されているNICのnetworkへ通信することができる。
もし、合致するgatewayがなければ破棄される。
…という認識で合ってますか?

引用:

NIC が1つでも gateway が複数存在することはありますし,
NIC がいくつあっても gateway を設定しなくて良い場合もあります.
結局通信したい先が自分と違う network である場合,
routing 設定をしてあげないと通信できません.
かといって,通信したい対象を個別に全部 routing 設定していたらきりがないので,
まとめて「default は」と設定するわけです.

今回の下記のような network では,あまり routing の勉強にはならないと思います.

[PC1]IP:192.168.0.100
 |
 |
eth0:192.168.0.1
[サーバ]
eth1:192.168.10.1
 |
 |
[PC2]IP:192.168.10.50

本当に困るのは下記のような場合

[PC1]IP:192.168.0.100
 |
 |
eth0:192.168.0.1
[サーバ A]
eth1:192.168.10.1
 |
 |
eth0:192.168.10.254
[サーバ B]
eth1:192.168.100.1
 |
 |
eth0:192.168.100.254
[サーバ C]
eth1:192.168.200.1
 |
 |
[PC2]IP:192.168.200.50

でしょう.
この場合,
PC1/PC2 には同様に default gateway を設定すればよいでしょう.
でも,サーバ A/C もそれぞれ サーバ B へ default gateway を向ければ同じです.
では,サーバ B はどうします?
この場合は
「192.168.200.0/0 は 192.168.100.254 の向こう側」
「192.168.0.0/0 は 192.168.10.1 の向こう側」という static route を
サーバ B に設定すればよいわけです.
そうすることで,PC1/2 がお互いに通信できるようになります.

それぞれのサーバにさらに別の network interface が増えても理屈は同じで,
「通信したい network はどの IP address の向こうにあるか?」を
辿っていくように rouitng 設定をしていけばよいわけです.
実際には dynamic routing を駆使したり,いろいろとやり方はありますが,
前述のようなのが原則的な内容になると思います.

以上,ご参考までに.


今の私には概要レベルまでしか分かってないような気がします。
文章レベルでは言ってることは分かりますが、実際の具体的な設定までは
イメージが沸いて来てないのが本音です。

この辺は少し頭の片隅に置いておきたいと思います。


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


※※※
 なんか…私の立てたスレッドのフォルダが燃えてます。(汗)
 15以上の書込みがあるとこうなるんですね。(・・;)
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2008-11-21 12:26
こんにちは.
引用:

美那さんの書き込み (2008-11-21 11:53) より:

■説明2
>「192.168.10.0/0 は 192.168.0.1」とすると,
自分が"192.168.10.0/0"のとき、あるNICにgateway"192.168.0.1"が設定されており、
送信先IPが"192.168.0.XXX"で合致するとそのnetworkへ通信することができる。
…という認識で合ってますか?


自分が "192.168.1.0/24" の network に所属しているときに,
rouitng table で "192.168.10.0/24" の gateway は "192.168.0.1" です,
と設定されているとして,
送信先 IP が "192.168.10.XXX" で合致するとその network と通信することができる.
ただしこれは,双方で同様の条件にする必要がある.
・・・という話です.

つまり,network の分かれ目は川みたいなもので,
それを渡るには gateway という橋が必要で,
ある任意の network に行くにはどの橋を渡ればよいか?が
gateway の設定になります.
とすると,「どの」がわからないから「一括りにしてしまえ」というのが
default gateway としての設定になります.
引用:

もし、合致するgatewayがなければ破棄される。


ping であれば「行き先がわかりません」と返してきます.
引用:

今の私には概要レベルまでしか分かってないような気がします。
文章レベルでは言ってることは分かりますが、実際の具体的な設定までは
イメージが沸いて来てないのが本音です。


具体的な設定は個別に調べれば良いので,
まずは「こういうもの」という程度の理解でよいと思います.
そうすると,いつぞやの NAT のお話までつながっていきます.
美那
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 58
お住まい・勤務地: 東京都
投稿日時: 2008-11-21 13:36
kazさん、こんにちわ〜。
明日から3連休なので頑張りましょ〜。
と言っても私は明日は休出で、火曜日に代休ですけども…

余談は置いといて…

引用:

自分が "192.168.1.0/24" の network に所属しているときに,
rouitng table で "192.168.10.0/24" の gateway は "192.168.0.1" です,
と設定されているとして,
送信先 IP が "192.168.10.XXX" で合致するとその network と通信することができる.
ただしこれは,双方で同様の条件にする必要がある.
・・・という話です.


>>自分が "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"への橋は見つかり、通信することはできると思ってます。

そういう意味ではない???
もし、違うと言うのであれば理解してないようです…私…

>>ただしこれは,双方で同様の条件にする必要がある.
「この説明では片方向に対する話ですよ〜。」
「だから実際には双方向を意識して下さいね〜。」
って言う今回の説明に対する注意点をこの文面で教えて下さってるんですよね?


引用:

つまり,network の分かれ目は川みたいなもので,
それを渡るには gateway という橋が必要で,
ある任意の network に行くにはどの橋を渡ればよいか?が
gateway の設定になります.
とすると,「どの」がわからないから「一括りにしてしまえ」というのが
default gateway としての設定になります.


はい。
gatewayとdefault gatewayの違いも理解できました。
個人的にはdefault gatewayは使用せずに明示的にgatewayを設定してあげるのが
いいような気がするのですが、どうなんでしょう?

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


引用:

>もし、合致するgatewayがなければ破棄される。
ping であれば「行き先がわかりません」と返してきます.


pingに関して言うとEcho Typeが異なる応答で返答されるんでしたよね?
確か…


引用:

>今の私には概要レベルまでしか分かってないような気がします。
>文章レベルでは言ってることは分かりますが、実際の具体的な設定までは
>イメージが沸いて来てないのが本音です。

具体的な設定は個別に調べれば良いので,
まずは「こういうもの」という程度の理解でよいと思います.
そうすると,いつぞやの NAT のお話までつながっていきます.


はい〜。
ここ最近のこの掲示板のやり取りで色々と各知識がパーツでしか分からなかったことや
知らない部分が鮮明になり、ひとつに繋がりつつあります。

NATの話も繋がっているのも薄っすらと感じています。


色々と有難う御座いました。
まだまだの初心者ですが、またお時間のあるときでよいので、宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2008-11-21 17:51
引用:

美那さんの書き込み (2008-11-21 13:36) より:

>>自分が "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 になければなりません.
引用:

>>ただしこれは,双方で同様の条件にする必要がある.
「この説明では片方向に対する話ですよ〜。」
「だから実際には双方向を意識して下さいね〜。」
って言う今回の説明に対する注意点をこの文面で教えて下さってるんですよね?


はい,そうです.
引用:

個人的には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 の設定が適切でないとか.

以上,ご参考までに.
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2008-11-23 18:43
こんにちは。
横から失礼しますが、「default gateway が知らないネットワークに対する gateway」というのは微妙に違和感を感じます。
default gateway とは、ネットワーク 0.0.0.0/0 への gateway ですから。

例えば、美那さんの構成例で PC1→PC2(192.168.10.50) へ通信する場合、
 ・PC2の所属する 192.168.10.0/24 を PC1 は知らないため、default gateway 192.168.0.1 を用いる

ではなく、
 ・PC1の認識しているネットワークの中で、PC2 192.168.10.50 を含む最も狭いネットワークは 0.0.0.0/0 ( ネットワーク全体 ) であり、0.0.0.0/0 への通信は gateway を経由するよう設定してるため、gateway 192.168.0.1 を用いる

の方が妥当かと思います。
個々の機器がルーティング設定上認識するネットワークと、ネットワーク管理者が個々のエリアに割り振るネットワークはイコールではないのです。
管理者は、192.168.10.50 は 192.168.10.0/24 上にあると意識しているでしょうが、PC1からすれば、0.0.0.0/0 上にある、となるわけです。

[ メッセージ編集済み 編集者: angel 編集日時 2008-11-23 18:54 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2008-11-23 19:09
ルーティングの例であれば、実生活に喩えてもできますし、その方がイメージしやすいのではないかと思います。

例:オフィスビルから出る時のルーティング
前提:ビルには地上出口と地下出口があり、地上から歩いていける範囲にJRと私鉄の駅が、地下街には地下鉄の駅の改札がある。自宅へ帰る時は私鉄を使うが、近隣の得意先に回るときは地下鉄を使うのが良い。支社も近隣にあるが、地下鉄よりもJRで行く方が早い。出張等で遠出するならJRの駅から電車に乗り、その後新幹線に乗り継ぐなり、空港で飛行機に乗るなりする。

ルーティング設定
 **地域**:**ビル出口**:**行き方**
 オフィス周辺:地上出口:徒歩で行く
 地下街:地下出口:徒歩で行く
 地元:地上出口:私鉄の駅から電車
 支社周辺:地上出口:JRの駅から電車
 近隣:地下出口:地下鉄の駅から電車
 全国:地上出口:JRの駅から電車

 各地域の包含関係は、
  オフィス周辺⊂全国
  地下街⊂全国
  地元⊂全国
  支社周辺⊂近隣⊂全国
 となるため、例えば支社に行く場合、支社は「支社周辺」「近隣」「全体」全てに含まれるが、最も狭いのは「支社周辺」のため、「支社周辺」のルーティングに従い、地上出口からJRの駅を経由していくことになる。

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