質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

解決済

異なるネットワーク間でうまく通信できません。

urbainleverrier
urbainleverrier

総合スコア195

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

1回答

0リアクション

1クリップ

569閲覧

投稿2019/08/30 18:54

※こちらは前回の質問と関連しています。

次のようにBGPを利用してroute情報を交換したいのですが、
通信先のネットワークが異なりうまく通信できません。
質問は、以下の「お聞きしたいこと」に記載させていただきました。
イメージ説明

発生した問題

host2のRR(Route Reflector、172.16.1.111、赤のひし形)にhost1のルーター(10.10.10.11、黄色の丸)から通信することができませんでした。
原因と自分なりの解決策がございますが、うまい方法とは思えません。以下の通りです。

原因

host1からhost2のRRへ通信を行う際、次のようなpacketを送らなければなりません。

10.10.10.11:41715 > 172.16.1.111:179* *左がsrc、右がdst

これは図中の赤線を通って到達することが確認できるのですが、復路(以下)

172.16.1.111.bgp > 10.10.10.11.41715

では非対称通信が認められないのか、青線を通ることはなく、host1にパケットが届かないのが原因でした。

ひとまずの解決策

次のようにすることでとりあえずは通信が可能で、経路情報を交換できました。
host2にて青線を通る復路のパケットの送信先を無理やり赤線にします。

iptables -t nat -A OUTPUT -j DNAT -d 10.10.10.11 -p tcp --sport 179 --to 172.16.1.11 iptables -t nat -A OUTPUT -j DNAT -d 10.10.10.11 -p tcp --dport 179 --to 172.16.1.11:179

host1にて赤線を通ってきた復路のパケットの送信先を無理やり元に戻します。

iptables -t nat -A PREROUTING -i eth1 -j DNAT -p tcp --sport 179 --to 10.10.10.11 iptables -t nat -A PREROUTING -i eth1 -j DNAT -p tcp --dport 179 --to 10.10.10.11:179

これでhost1からhost2のRRへ通信を行い、経路を交換できるのですが、お聞きしたいことが2点あります。

お聞きしたいこと

  1. host1→host2は解決しますが、host2→host1は往路がそもそも届きません。

172.16.1.111:41715 > 10.10.10.11:179
送信元がプライベートアドレスだからでしょうか。
解決策がありましたらご教授いただければ幸いです。

  1. 異なるネットワークに送る場合、もう少しうまい方法はないでしょうか。NATを使わないようにするためにCalicoを使っているのですが、台無しにしているように思います。

少々無理のある設定とは思いますが、何卒よろしくお願いいたします。

環境

  1. 図中のSwithやgatewayのルーターはクラウドプロバイダー管理下のため、設定することはできません。
  2. host1、host2はlinuxサーバーです。
  3. RRはcalicoのルーターと兼務させております。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。