2019-02-01 06:31 PM 2019-03-22 06:20 AM 更新
当コミュニティの事例にあるような発信元のクライアントPCによって回線を使い分けるやり方ではなく、1台のクライアントPCから、宛先によって回線を使い分けたいと考えています。
拠点1のルータに プロバイダA(IPアドレス a.a.a.a) と プロバイダB(IPアドレス b.b.b.b)2つの PPPoE セッションを設定しました。
また拠点2では プロバイダB の別回線(IPアドレス c.c.c.c)を使用しています。
拠点1のLAN内のクライアントPCから拠点2にアクセスする際は、拠点1のプロバイダB のIPアドレス b.b.b.b に変換されてプロバイダB内を通り c.c.c.c にアクセスしする。拠点2の側からみるとアクセス元が b.b.b.b に見える。また接続先が拠点2以外であrる場合は、デフォルトルートの設定に従いプロバイダA のIPアドレス a.a.a.a に変換されて欲しいというものです。
しかし、LAN内のクライアントPCからの接続が思うような挙動になりません。クライアントPCから拠点2に traceroute を実行すると僅か8ホップで到達します。続いて ssh で接続すると、これも正しく接続できるものの、相手先で who am i コマンドを実行して接続元を確認すると、プロバイダBから払い出されたb.b.b.b ではなく、デフォルトルートでありプロバイダAから払い出された a.a.a.a になってしまっています。
そのまま拠点2から、拠点1の b.b.b.b に traceroute すると11ホップで到達します。 a.a.a.a に traceroute すると、こちらは16ホップで到達します。経路は異なっているように見えます。
現状は、ルーターのNAT機構でIPアドレス a.a.a.a に変換されてから、経路としては interface Dialer2 の外側のIPアドレス b.b.b.b からプロバイダBを通っていて、応答パケットなどはプロバイダーBからプロバイダーAを経由して戻ってきているように思われます。(つまり、行きと帰りとで違う経路になっている)
冒頭の目論見通り、拠点1のLAN内クライアントPCから拠点2のサーバーにアクセスする際、拠点1の b.b.b.b のIPアドレスにてPATし、拠点2から正しく b.b.b.b からの接続だと見えるようにし、経路もプロバイダB内のみで通信してくれるようにするには、どうしたらよいでしょうか。
コンフィギュレーションの抜粋を掲載します
!
ip inspect name INTERNET tcp
ip inspect name INTERNET udp
ip inspect name INTERNET icmp
!
interface GigabitEthernet8
description DSL Modem
ip address 192.168.116.2 255.255.255.0
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
pppoe enable group global
pppoe-client dial-pool-number 2
pppoe-client dial-pool-number 1
!
interface Vlan1
description $ETH_LAN$
ip address 192.168.1.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
!
interface Dialer1
description Provider_A
mtu 1448
ip address negotiated
ip nat outside
ip inspect INTERNET out
ip virtual-reassembly in
encapsulation ppp
ip tcp adjust-mss 1408
dialer pool 1
dialer idle-timeout 0
dialer-group 1
ppp authentication chap callin
ppp chap hostname username@providerA.jp
ppp chap password 0 password_A
!
interface Dialer2
description Provider_B
mtu 1448
ip address negotiated
ip nat outside
ip inspect INTERNET out
ip virtual-reassembly in
encapsulation ppp
ip tcp adjust-mss 1408
dialer pool 2
dialer idle-timeout 0
dialer-group 2
ppp authentication chap callin
ppp chap hostname username@providerB.jp
ppp chap password 0 password_B
!
ip nat inside source list 103 interface Dialer1 overload
ip nat inside source list 104 interface Dialer2 overload
ip nat inside source list 105 interface GigabitEthernet8 overload
ip nat inside source static tcp 192.168.1.10 22 a.a.a.a 22 extendable
ip nat inside source static tcp 192.168.1.10 22 b.b.b.b 22 extendable
<<スタティックNAT(PAT)の設定については実際には数多く設定されている>>
!
ip route 0.0.0.0 0.0.0.0 Dialer1 permanent
ip route c.c.c.c 255.255.255.255 Dialer2 permanent
!
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 103 deny ip 192.168.1.0 0.0.0.255 host 192.168.116.1
access-list 103 deny ip 192.168.1.0 0.0.0.255 host c.c.c.c
access-list 103 permit ip 192.168.1.0 0.0.0.255 any
access-list 104 permit ip 192.168.1.0 0.0.0.255 host c.c.c.c
access-list 104 deny ip 192.168.1.0 0.0.0.255 any
access-list 105 permit ip 192.168.1.0 0.0.0.255 host 192.168.116.1
access-list 105 deny ip 192.168.1.0 0.0.0.255 any
現状でもデフォルトルート方面は正しく動作しており、今回の主な狙いである拠点1から拠点2へのTCP通信は狙い通りのスループットは得られているので、方向別に経路が違うことにさえ目をつむれば使えないことはないのですが・・・
以上よろしくお願いします。
※ ちなみに、192.168.116.1 は ADSLモデムです。LAN 内のクライアントPCからモデムの設定・ステータス画面にアクセスするため、拡張ACLを用いで宛先別のPATを使用しています。
2019-02-01 11:49 PM 2019-02-05 06:11 AM 更新
解決しました。config のさまざまな項目を、設定から外したり、再び設定したりしているうちに直ったため、それらのどこかに typo(打ち間違い)があったものと思われます。
(先の投稿では、IPアドレスを a.a.a.a や b.b.b.b という表現に置き換えているため、"間違い" は現れてきません)
お騒がせいたしました。
エキスパートの回答、ステップバイステップガイド、最新のトピックなどお気に入りのアイデアを見つけたら、あとで参照できるように保存しましょう。
コミュニティは初めてですか?これらのヒントを活用してスタートしましょう。 コミュニティの活用方法 新メンバーガイド