ネットワーク構成

ppp_negotiated.png
図 [PPP] IPアドレス割り当て ネットワーク構成

設定概要

R1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface Serial0/0
ip address 192.168.12.1 255.255.255.0
encapsulation ppp
!
ip route 2.2.2.2 255.255.255.255 Serial0/0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Loopback0
ip address 2.2.2.2 255.255.255.255
!
interface Serial0/0
no ip address
encapsulation ppp
!
ip route 1.1.1.1 255.255.255.255 Serial0/0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

問題

R2のSerial0/0には、明示的にIPアドレスの設定を行いません。R2 Serial0/0には、R1から192.168.12.2/32のIPアドレスを取得できるようにしたいと考えています。

R1、R2にはどのような設定を行えばよいでしょうか。

解答

R1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Serial0/0
peer default ip address 192.168.12.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Serial0/0
ip address negotiated
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

解説

PPPのIPCPによって対向のルータのインタフェースにIPアドレスを割り当てることもできます。まず、IPCPでのIPアドレスの割り当てについて簡単に解説します。

IPCPで対向ルータに割り当てるIPアドレスの指定は、以下の3通りあります。

  • 特定のIPアドレス
  • ローカルのプールアドレス
  • DHCP

以降でそれぞれについて設定コマンドを確認しましょう。

【特定のIPアドレスの割り当て】

IPCPで特定のIPアドレスを割り当てるためには、インタフェースコンフィグレーションモードで次のコマンドを入力します。

(config-if)#peer default ip address <ip-address>

解答は、この設定コマンドによってR1で特定のIPアドレス 192.168.12.2の割り当てを行なうという設定です。

【ローカルのプールアドレス】

IPCPでアドレスを配布するローカルプールアドレスの設定は、グローバルコンフィグレーションモードで次のコマンドを入力します。

(config)#ip local pool {<pool-name> | default} <start-ip-address> <end-ip-address>

そして、アドレスを配布する対向ルータが接続されるPPPインタフェースでローカルプールを関連付けます。

(config-if)#peer default ip address pool [<pool-name>]

【DHCP】

DHCPサーバからIPCPで割り当てるIPアドレスを決めるための設定は、さらに2通りにわかれます。ルータローカルのDHCPサーバ機能を利用する場合と外部のDHCPサーバを利用する場合です。

ルータローカルのDHCPサーバ機能を利用するときには、インタフェースコンフィグレーションモードで次のコマンドを入力します。

(config-if)#peer default ip address dhcp-pool <dhcp-pool-name>

一方、外部のDHCPサーバを利用するときには、次のコマンドを入力します。

(config-if)#peer default ip address dhcp

そして、外部のDHCPサーバのIPアドレスを次のコマンドで指定します。

(config)#ip dhcp-server <ip-address>

【IPアドレスの割り当てを受けるクライアント側の設定】

IPアドレスの割り当てを受けるクライアン後側の設定は、インタフェースコンフィグレーションモードで、次のコマンドを入力します。

(config-if)#ip address negotiated

【R1およびR2での設定】

では、実際にR1、R2でIPCPによるIPアドレスの割り当てについて設定します。今回は、一番シンプルな特定のIPアドレスの割り当ての設定を行います。

R1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Serial0/0
peer default ip address 192.168.12.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Serial0/0
ip address negotiated
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

IPCPによるIPアドレスの割り当ては、debug ppp negotiationで詳細を確認できます。R2でのdebug ppp negotiationは、次のようになります。

R2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#debug ppp negotiation
PPP protocol negotiation debugging is on
*Mar  1 00:35:06.803: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
*Mar  1 00:40:23.667: Se0/0 PPP: Outbound cdp packet dropped
*Mar  1 00:40:25.623: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
*Mar  1 00:40:25.631: Se0/0 PPP: Using default call direction
*Mar  1 00:40:25.635: Se0/0 PPP: Treating connection as a dedicated line
*Mar  1 00:40:25.639: Se0/0 PPP: Session handle[4500000C] Session id[13]
*Mar  1 00:40:25.639: Se0/0 PPP: Phase is ESTABLISHING, Active Open
*Mar  1 00:40:25.643: Se0/0 LCP: O CONFREQ [Closed] id 15 len 10
*Mar  1 00:40:25.647: Se0/0 LCP:    MagicNumber 0x003105C9 (0x0506003105C9)
*Mar  1 00:40:25.751: Se0/0 LCP: I CONFREQ [REQsent] id 14 len 10
*Mar  1 00:40:25.755: Se0/0 LCP:    MagicNumber 0x003B58A8 (0x0506003B58A8)
*Mar  1 00:40:25.759: Se0/0 LCP: O CONFACK [REQsent] id 14 len 10
*Mar  1 00:40:25.759: Se0/0 LCP:    MagicNumber 0x003B58A8 (0x0506003B58A8)
*Mar  1 00:40:25.763: Se0/0 LCP: I CONFACK [ACKsent] id 15 len 10
*Mar  1 00:40:25.767: Se0/0 LCP:    MagicNumber 0x003105C9 (0x0506003105C9)
*Mar  1 00:40:25.767: Se0/0 LCP: State is Open
*Mar  1 00:40:25.771: Se0/0 PPP: Phase is FORWARDING, Attempting Forward
*Mar  1 00:40:25.779: Se0/0 PPP: Phase is ESTABLISHING, Finish LCP
*Mar  1 00:40:25.779: Se0/0 PPP: Phase is UP
*Mar  1 00:40:25.783: Se0/0 IPCP: O CONFREQ [Closed] id 1 len 10
*Mar  1 00:40:25.783: Se0/0 IPCP:    Address 0.0.0.0 (0x030600000000)
*Mar  1 00:40:25.787: Se0/0 CDPCP: O CONFREQ [Closed] id 1 len 4
*Mar  1 00:40:25.787: Se0/0 PPP: Process pending ncp packets
*Mar  1 00:40:25.795: Se0/0 IPCP: I CONFREQ [REQsent] id 1 len 10
*Mar  1 00:40:25.799: Se0/0 IPCP:    Address 192.168.12.1 (0x0306C0A80C01)
*Mar  1 00:40:25.803: Se0/0 IPCP: O CONFACK [REQsent] id 1 len 10
*Mar  1 00:40:25.803: Se0/0 IPCP:    Address 192.168.12.1 (0x0306C0A80C01)
*Mar  1 00:40:25.807: Se0/0 CDPCP: I CONFREQ [REQsent] id 1 len 4
*Mar  1 00:40:25.811: Se0/0 CDPCP: O CONFACK [REQsent] id 1 len 4
*Mar  1 00:40:25.815: Se0/0 IPCP: I CONFNAK [ACKsent] id 1 len 10
*Mar  1 00:40:25.815: Se0/0 IPCP:    Address 192.168.12.2 (0x0306C0A80C02)
*Mar  1 00:40:25.815: Se0/0 IPCP: O CONFREQ [ACKsent] id 2 len 10
*Mar  1 00:40:25.815: Se0/0 IPCP:    Address 192.168.12.2 (0x0306C0A80C02)
*Mar  1 00:40:25.823: Se0/0 IPCP: I CONFACK [ACKsent] id 2 len 10
*Mar  1 00:40:25.823: Se0/0 IPCP:    Address 192.168.12.2 (0x0306C0A80C02)
*Mar  1 00:40:25.827: Se0/0 IPCP: State is Open
*Mar  1 00:40:25.831: Se0/0 IPCP: Install negotiated IP interface address 192.168.12.2
*Mar  1 00:40:25.843: Se0/0 IPCP: Install route to 192.168.12.1
*Mar  1 00:40:26.779: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
*Mar  1 00:40:27.755: Se0/0 CDPCP: I CONFREQ [ACKsent] id 2 len 4
*Mar  1 00:40:27.759: Se0/0 CDPCP: O CONFACK [ACKsent] id 2 len 4
*Mar  1 00:40:27.767: Se0/0 CDPCP: Timeout: State ACKsent
*Mar  1 00:40:27.771: Se0/0 CDPCP: O CONFREQ [ACKsent] id 2 len 4
*Mar  1 00:40:27.807: Se0/0 CDPCP: I CONFACK [ACKsent] id 2 len 4
*Mar  1 00:40:27.807: Se0/0 CDPCP: State is Open
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

そして、R2でshow ip interface serial0/0を見ると、確かにIPCPで192.168.12.2のIPアドレスを割り当てられていることがわかります。

R2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#show ip interface se0/0
Serial0/0 is up, line protocol is up
Internet address is 192.168.12.2/32
Broadcast address is 255.255.255.255
Address determined by IPCP
Peer address is 192.168.12.1
MTU is 1500 bytes
~省略~
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ただし、サブネットマスクが/32となっていることに注意してください。IPCPは、通常はサブネットマスクの情報を渡しません。PPPはポイントツーポイントリンクで利用するので、サブネットマスクの情報はあまり重要ではないからです。R2側では、IPアドレスを受け取って/32のサブネットマスクとして利用しています。

まとめ

  • IPCPで対向ルータにIPアドレスの割り当てを行うことができる
  • 割り当てるIPアドレスの指定方法は、次の3通り
    特定のIPアドレス
    ローカルプールのIPアドレス
    DHCPサーバ
  • peer default ip addressコマンドで対向ルータに割り当てるIPアドレスの設定を行う
  • ip address negotiatedコマンドで対向ルータからIPアドレスの割り当てを受ける