中二病でも繋げたい

以前、あるイベントで回線契約をして、もらった接続情報を元にルータを設定しようとした時に遭遇したトラブルを今回出題しました。

問題文  

問題文は以下の通りです。

network.png.webp
あなたはある企業の情報システム部に所属しています。上司から「今の回線遅いから新しいのに変えといて」と言われたため、Aさんが新しくプロバイダと契約し、上に記載した/32のIPアドレスとPPPoEの接続情報をもらいました。Aさんはその接続情報を元に`CSR_client`にPPPoEとNATの設定を行なったんですが、上の図の`ubuntu`から外部のwebサービスを利用しようと思ったけど繋がりませんでした。`CSR_client`で接続を確認したところPPPoEのセッションは張れていることが確認できたんですが、依然として外部のサービスを利用できません。Aさんの代わりにこの原因を突き止め解決してほしいです。

初期状態と終了状態  

初期状態  

  • ubuntuから外部ネットワークに繋がらない

終了状態  

  • ubuntuから外部ネットワークに繋がる

解説  

今回発生していた問題はインターフェースの設定にありました。 プロバイダから受け取った/32のIPアドレスはGigabitEthernetに設定できません。そのため、/32のIPアドレスを設定できるLoopbackを用いる必要があります。 初期状態で不足している、または間違っているコンフィグは以下の3つです

  1. Loopbackのインターフェースがない
  2. ip nat ousideがDialerに設定されていない
  3. NAPTの設定が間違っている(1.に起因するもの)

CSR-clientの初期状態は以下のコンフィグになっていました。

interface GigabitEthernet1
 no ip address
 ip nat outside
 duplex auto
 speed auto
 pppoe enable
 pppoe-client dial-pool-number 1
!         
interface GigabitEthernet2
 192.168.51.254 255.255.255.0
 ip nat inside
 duplex auto
 speed auto
!
interface Vlan1
 no ip address
!
interface Dialer1
 no ip address
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 ppp authentication chap callin
 ppp chap hostname XXXXXXXXXXXXXXXXXXX
 ppp chap password 0 XXXXXXXXXXXXXXXXX
!
ip nat inside source list 1 interface GigabitEthernet1 overload

上記の問題を解決したコンフィグが以下の通りです。

interface Loopback0
 ip address xxx.xxx.xxx.xxx 255.255.255.255
 !
!
interface GigabitEthernet1
 no ip address
 ip virtual-reassembly
 duplex auto
 speed auto
 pppoe enable group global
 pppoe-client dial-pool-number 1
 !
!         
interface GigabitEthernet2
 ip address 192.168.51.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 duplex auto
 speed auto
 !
!
interface Dialer1
 ip unnumbered Loopback0
 ip nat outside
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 ppp authentication chap callin
 ppp chap hostname XXXXXXXXXXXXXXXXXXX
 ppp chap password 0 XXXXXXXXXXXXXXXXX
!
ip forward-protocol nd
!
ip http server
no ip http secure-server
!
ip nat inside source list 1 interface Loopback0 overload
ip route 0.0.0.0 0.0.0.0 Dialer1
!
access-list 1 permit any
ping_result.png.webp

このコンフィグを入れてubuntuからpingを8.8.8.8に送ると以下のように通ってることが確認できます。 

採点基準  

  • Loopbackを用いて/32のipを設定している(10%)
  • GigabitEthernet1からip nat outsideが外れている(10%)
  • ip unnumberd loopbackがdialerに設定されている(20%)
  • ip nat outsideがDialerに設定されている(10%)
  • ip nat inside source list list-number interface loopback list-number overload が設定されている(20%)
  • ubuntuから1.1.1.1などの外部サービスにpingが通る(30%)

講評  

お詫び  

あるチームで展開に失敗している環境がありました。環境の不備をお詫びします。

解答について  

みなさんIPアドレスを設定する時に、Dialerに/31を設定しているチームがありました。しかし、問題文にもらった接続情報を使って設定してくださいと明記していなかったため、そのように設定しているチームは点数を与えました。

15チーム中、12チームが解答し満点は6チームでした。難易度的には適切だったのかなと思います。