キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
1368
閲覧回数
0
いいね!
1
返信

マルチ PPPoE クライアント:ソースではなく宛先による使い分けについて

supersense
Level 1
Level 1

当コミュニティの事例にあるような発信元のクライアント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を使用しています。

1件の返信1

supersense
Level 1
Level 1

解決しました。config のさまざまな項目を、設定から外したり、再び設定したりしているうちに直ったため、それらのどこかに typo(打ち間違い)があったものと思われます。

(先の投稿では、IPアドレスを a.a.a.a や b.b.b.b という表現に置き換えているため、"間違い" は現れてきません)

 

お騒がせいたしました。