• 締切済み
  • すぐに回答を!

プライベートアドレス帯のルーティングルールについて

みなさんこんにちは。 標記について、ご教示ください。 172.16.x.0/24というネットワークにホストA(172.16.x.A/24)、ホストB(172.16.x.B/24)、ホストC(172.16.x.C/24)というサーバがあります。 ホストCにはNICが2つありもう片方には192.168.x.C/24というアドレスを所有しています。 ホストBには、ホストCの192.x.x.Cへ到達するためのstaticがあります。 上記の場合のままで、ホストAからホストCの192.x.x.Cへpingを実施すると以下のなルーティングになると思います。 行きの経路:ホストA→ホストB→ホストC 返りの経路:ホストC→ホストA このルーティングは、諸事情により実施したくないため返りのパケットをホストB経由にしたく、その対策として以下のようなstaticの設定をホストCへ入れようと考えています。 172.16.x.A via 172.16.x.B 前置きが長くなりましたが、ここからが質問させて頂きたい部分です。 ----- 1.上記のstaticでルーティング自体ができることはおおよそわかっていますが、何か問題等が発生する既知の懸念等ありますでしょうか? 2.この設定はRFC等のネットワーク(ルーティング)ルールにおいて問題ないものなのでしょうか? よく、同一セグメント上のアドレスを同一セグメント内へstaticの設定を施すことはよくないと聞くのですが、どのような理由からなのかまでは誰も知りませんでした。 RFC等の規約で記載されているよ!とか、ご存知の方がいましたら教えて頂けますと幸いです。 それとも、そもそも問題ないのでしょうか?(ガセネタ?) ----- 補足: 当方、Linuxサーバを用いてルーティングを行っております。よって、Ciscoルータ等は利用しておりません。 よろしくお願い致します。

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.2
  • EF_510
  • ベストアンサー率50% (306/604)

ホストA~Cは同じネットワークセグメントにいてCだけ別なネットワークセグメントへの接続を持っているのですよね?   A  B   |-+--+--+-| 172.16.x.0/24         C |-------+-| 192.168.x.0/24 上記の図でいいとすると、AとBに route add 192.168.x.0 172.16.x.c などと書けばいいような気がしますがどうでしょうか? 「Bを通過させないと困る」という事情があるのでしたらまた考える必要がありますが、その場合ルーティングで解決するようなことではないがします。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 お礼が遅くなり申し訳ありません。 NWはご認識の通りです。 また、ご指摘頂いた通り簡潔に済ませるのであれば、ホストAにroute addをすれば問題ないのですが、ご認識頂いている通り「Bを通過させないと困る」という問題を孕んでいます。 本問題は、ルーティングでないとするとどのような解決方法がありますでしょうか?お知恵を拝借できると幸いです。 NWの再構成は最終案として検討はしていますが。。。 それ以外の案があれば助かります。

  • 回答No.1

ホストA,B,Cのネットワーク構成図を描いて(NICの位置とIPアドレスとルート設定を明記して) その上で 各ホストからのpingの経路を記載されたルート情報のみに基づいて辿ります 同様に応答の経路も辿ります これができればルート設定は適切です が 自分で設計・設定した場合には、どうしても、記載されていないルート情報を(頭の中で)適用してしまうことが多々起こります これに陥ると自力で抜け出すのは困難です、他人に辿ってもらうと簡単に発見されてしまいます 頭をよく冷やしてから確認することが必須です

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 ご指摘頂いた点、ごもっともだと思います。 補足させて頂くと、NW設計図レベルまで記載しており、pingやsnmp等も正常に実施できました。通常であればここで終了ですが、本来必要のないstaticを施すことによる弊害として、既知の問題があるようであればご教示頂ければ幸いと思い投稿させて頂きました。 もし、既知の問題や「2.」のRFC的なものをご存知でしたら教えて頂けますか?

関連するQ&A

  • スタティックルーティングについて

    ネットワーク初心者です。 スタティックルーティングの設定についてですが、 以下のネットワーク経路でホスト(1)がホスト(2)と通信を行う為には、 ルータAだけではなく、ルータBにもホスト(2)のセグメントへのルーティングを設定しなければならないでしょうか? 又、ホスト(2)からの返りについても、ルータCだけでなく、ルータBについてもホスト(1)へセグメントへのルーティング設定が必要でしょうか? ホスト(1)⇒(ルータA)⇒(ルータB)⇒(ルータC)⇒ホスト(2)

  • ルーティング情報について

    セグメントA----ルータX-----ルータY----セグメントB 上記のような構成のルーティングについて教えてください。 (1)TCPパケットをセグメントAからセグメントBにパケットを送信する場合について教えてください。。 ルータX,Yには、セグメントA、セグメントB向けのルーティング情報をテーブルを登録する必要があるのでしょうか。 (セグメントA向けのルーティング情報を登録しなくても、コネクション型なのでセグメントAから送信したパケットは戻ってくることができるのでしょうか。それとも、登録していないと帰りパケットはルーティングできないのでしょうか) (2)IPパケット(Ping)をセグメントAからセグメントBにパケットを送信する場合について教えてください。。 ルータX,Yには、セグメントA、セグメントB向けのルーティング情報をテーブルを登録する必要があるのでしょうか。それとも、セグメントA向けのルーティング情報をルータに登録しなくても、セグメントAから送信したIPパケットは戻ってくることができるのでしょうか。

  • ルーティングについて

    セグメントA---------ルータ---------セグメントB 上記のような構成のルーティングについて教えてください。 (1)TCPパケットをセグメントAからセグメントBにパケットを送信する場合について教えてください。。 ルータには、セグメントA、セグメントB向けのルーティング情報をテーブルを登録する必要があるのでしょうか。 (セグメントA向けのルーティング情報を登録しなくても、コネクション型なのでセグメントAから送信したパケットは戻ってくることができるのでしょうか) (2)IPパケット(Ping)をセグメントAからセグメントBにパケットを送信する場合について教えてください。。 ルータには、セグメントA、セグメントB向けのルーティング情報をテーブルを登録する必要があるのでしょうか。それとも、セグメントA向けのルーティング情報を登録しなくても、セグメントAから送信したIPパケットは戻ってくることができるのでしょうか。

  • ルーティングについて

    セグメントA・・・192.168.10.xxx セグメントB・・・172.16.1.xxx という環境があり、このセグメントの間に、NIC2枚挿しの端末(端末A)があり、それぞれのセグメントに足を出しています。 セグメントBからセグメントA(もしくは逆)にping疎通をする必要があり、セグメントA上の端末、セグメントB上の端末に、それぞれroute addコマンドで、(端末A経由の)ルーティングを設定し、ping疎通が確認できました。 このような環境に、さらに、 セグメントC・・・172.16.2.xxx が追加されることになりました。これは、セグメントBとルーターで繋がることになります(セグメントCとセグメントBはping疎通可)。このとき、セグメントCからセグメントAにping疎通できるようにするには、どのようにすればよいのでしょうか?(できれば、ルーターの設定は変更せず、route addコマンドだけで解決できれば良いのですが...)

  • ルーティングの愚問

     Aルータ - Bルータ -Cホスト とルーティングプロトコルなしで接続した場合(A-B間が「ネットワーク1」、B-C間が「ネットワーク2」)、CホストからBルータのA側インターフェースにPINGを飛ばすことが可能であるのに、AルータからBルータのC側インターフェースにPINGを飛ばすことができないのは何故なのでしょうか?  かなり愚問なのだと思いますが、わからなくなってしまっているのでご指導をお願いします。

  • 同じ宛先IPに複数経路のルーティングができるか

    同じ宛先IP(ホスト)に対して、Windowsのroute addを用い普段は経路Aを使用し、Aと通信できなくなった場合に、経路B使用させるといったことは可能でしょうか。 WindowsのデフォルトゲートウェイはA、B共に同一セグメントにあります。 例 Windows設定 LANカード1 IP:192.168.10.30/24 if:0x10001 このとき、同じ宛先ipアドレスでかつ、複数の経路を設定する。 route -p add 192.168.200.5 mask 255.255.255.255 192.168.10.1 metric 10 if 0x10001 route -p add 192.168.200.5 mask 255.255.255.255 192.168.10.2 metric 20 if 0x10001 上記のように設定した場合、通常は10.1の経路を使用し、それが使用できなくなった場合10.2を使用させる。といったことはやはり、ルータ等を用いたルーティングが必要になりますでしょうか。 よろしくお願いします。

  • ルーティングプロトコルの実装

    アドホックネットワークのルーティングプロトコルのプログラムをCで作成し、 ダイクストラの経路選択法を用いてサーバまでの最短経路を求めています。     /[端末A]-・・\ [サーバ]         [クライアント]     \[端末B]-・・/ 最短経路以外の予備経路も保持したいのですが、ダイクストラ法では 最短経路しか保持しないので困っています。第一経路+第二経路 を作りたいのですが・・ よい案がないか、どなたかご指南いただけないでしょうか。

  • ネットワークのルーティングが不自然な気がします。

    ネットワークのルーティングが不自然な気がします。 画像のようにローカルなネットワークを構築しましたが、色々無駄があるような気がしてなりません。 なおNodeにはubuntu10.04がインストールされています。 以下、ノードごとの設定です。 Node Aの設定 (/etc/network/interfaces内) #(なおすべて固定アドレスですので、B以降はauto とifaceは省略します) auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.2 (/etc/network/if-up.d/static-routes内) #!/bin/sh /sbin/route add -net 192.168.1.0 gw 192.168.0.5 netmask 255.255.255.0 dev eth0 /sbin/route add -net 192.168.2.0 gw 192.168.0.5 netmask 255.255.255.0 dev eth0 NodeBの設定 (/etc/network/interfaces内) # eth0 address 192.168.0.2 netmask 255.255.255.0 # eth1(外部に通じてます) address xxx.yyy.zz.a netmask 255.255.255.bbb gateway xxx.yyy.zz.ccc (/etc/network/if-up.d/static-routes内) #!/bin/sh /sbin/route add -net 192.168.1.0 gw 192.168.0.5 netmask 255.255.255.0 dev eth0 /sbin/route add -net 192.168.2.0 gw 192.168.0.5 netmask 255.255.255.0 dev eth0 Node Cの設定 (/etc/network/interfaces内) # eth0 #これ以降サブネットは全部/24なので文字数のため省略します。 address 192.168.1.3 gateway 192.168.1.5 Node Dの設定 (/etc/network/interfaces内) # eth0 address 192.168.2.4 gateway 192.168.2.5 Node Eの設定 (/etc/network/interfaces内) # eth0 address 192.168.0.5 gateway 192.168.0.1 # eth1 address 192.168.1.5 # eth2 address 192.168.2.5 ###/etc/network/if-up.d/static-routes内## #!/bin/sh /sbin/route add -net 192.168.1.0 gw 192.168.1.3 netmask 255.255.255.0 dev eth1 /sbin/route add -net 192.168.2.0 gw 192.168.2.4 netmask 255.255.255.0 dev eth2 これで互いにpingを届け合うことはできるのですが、そもそもNode Eでルーティングを設定する必要はあったのでしょうか? /etc/network/if-up.d/static-routes内を今回はいろいろ書き換えましたが、何も設定せずともCからDに向かってping 192.168.2.4を打てば、Node Eは192.168.2というネットワーク部分を見てDの方に向かってパケットを流すのではないのでしょうか? 今回は設定をしない段階ではpingはCとDの間を通りませんでしたが、どこか釈然としません。 またこの構築において最後に設定したのは、Node Bのフォワーディング許可なのですが、許可する前はAとC, AとDの間もpingが通りませんでした。 許可前でも、Bからはどこにでもpingを送れたのですが、これが何故かもよくわかりません。 Aからping 192.168.2.4を打てば、ルーティングから考えると→E→D→E→Aとpingが通る気がするのですが、なぜBが関係あったのでしょう? 最近この分野に触れるようになったので、私が常識的なことを知らないだけのかもしれませんが、どうかNode Eのルーティングの設定とNode Bのフォワーディング許可についての疑問についてお答えいただけたら嬉しいです。

  • NATとルーティングについて

    教えてください。 ルータが以下の通りネットワーク経路に2台あります。 ローカルネットワークでの運用です。 PC-1 ⇔ Router A ⇔ Router B ⇔ PC-2 Router BでNATをします。NAT用アドレスを用いて1対1のアドレス変換をします。 変換前のPC-2のアドレスでアクセスが来たら、PC-2のアドレスに変換します。 PC-1からPC-2へping通信できるようにしたいです。 Router Aには、PC-2のネットワークアドレス(NAT変換された先のネットワークアドレス)のルーティングを書く必要があるのでしょうか? また、Router AでNATする場合でも同じくPC-2のネットワークアドレスをルーティングとして書く必要がありますでしょうか? よろしくお願いします。

  • Fortigateのルーティング設定について

    勉強のためにFortigate-40cを中古で購入したのですが、L3のルーティングが上手くできません。 現在、以下のように設定しているのですが、PC1からPC2への疎通ができません。 逆も同じ状況です。 ■NW構成 PC1 (192.168.10.2/24) ↓ Fortigate (Internal1(Port1) 192.168.10.1/24を設定) ┃※Staticルーティング(1)と(2)を設定 Fortigate (Internal2(Port2) 192.168.20.1/24を設定) ↓ PC2 (192.168.20.2/24) ■Staticルーティングの設定内容 (1) 宛先IPアドレス :192.168.10.0/24 ゲートウェイ  :192.168.10.1 インターフェース:Internal1 (2) 宛先IPアドレス :192.168.20.0/24 ゲートウェイ  :192.168.20.1 インターフェース:Internal2 上記の設定は間違っているのでしょうか? もしかして根本的に間違っているのか…。 ネットワークに関してはど素人のため、アドバイスを頂けますと幸いです。 よろしくお願いいたします。