🗂

JANOG47 NETCON 問題解説(300-3)

2021/03/05に公開

問題文

「Kyoto」拠点と「Fukuoka」の2拠点のネットワーク整備を行っている

・VLAN100(192.168.0.0/24)は管理用ネットワーク
・VLAN101(192.168.1.0/24)はKyoto拠点用ネットワーク
・VLAN210(192.168.10.0/24)はサーバネットワーク
・VLAN211(192.168.11.0/24)はFukuoka拠点用ネットワーク
である。

〇サーバはKyoto拠点にのみ設置していたが、バックアップサーバをFukuoka拠点に設置することになったため、L2TPによってVLANを延長して対応することにした。

作業1 Kyotoの拠点にスイッチを1台(SWA02)を追加しSWA01と接続したのち、APP_SVをSWA02に接続する。

config

https://drive.google.com/file/d/1E51de1RUct2txvS6v3yMhxjdFkJeTWOT/view?usp=sharing

問題1

PCA01(192.168.1.61)からゲートウェイ(192.168.1.1)へpingで通信できることを確認した。

しかし、APP_SV(192.168.10.101)からKyoto拠点内のサーバ(192.168.10.11)宛にpingを打つと次のような結果になった。

なお、192.168.10.11はSWA01のスイッチに接続されているものとする。

APP_SV> ping 192.168.10.11
 
 host (192.168.10.11) not reachable

Kyoto拠点内のサーバ(192.168.10.11)にAPP_SVからpingを打った結果が次のようになるように原因を特定し、設定を修正し、pingの結果と修正箇所を記入しなさい。

APP_SV> ping 192.168.10.11
 
84 bytes from 192.168.10.11 icmp_seq=1 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.11 icmp_seq=2 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.11 icmp_seq=3 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.11 icmp_seq=4 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.11 icmp_seq=5 ttl=255 time=XXX.XXXX ms

*応答時間を示すtimeの値は同じでなくてもよい

問題2

作業2 RTA01とRTB01の間でL2TP+IPSECのトンネルを張り、バックアップサーバ(BK_SV)とアプリケーションサーバ(APP_SV)が通信できるようにしたい。そこで、RTA01とRTB01にIPSEC+L2TPの設定を投入した。

作業2を行った後に、APP_SVからBK_SVにpingを打ったところ、以下のような結果になった

APP_SV> ping 192.168.10.102
 
host (192.168.10.102) not reachable

IPSECの設定を確認するため、RTA01において”show crypto isakmp sa”および”show crypto session”の結果を見たところ次のような結果になった

RTA01# show crypto isakmp sa
 
IPv4 Crypto ISAKMP SA
  dst          src      state   conn-id status
 
 
RTA01# show crypto session

L2TPの確認を行うため、RTA01において"show xconnect all”、”show l2tp”の結果を見たところ次のような結果になった

RTA01# show xconnect all
Legend: XC ST=Xconnect State    S1= Segment1 State  S2=Sgument2 State
    UP=Up   DN=Down AD=Admin Down   IA=Inactive
    SB=Standby  HS=Hot Standby  RV=Recovering   NH=No Hardware
 
XC ST   Sgment 1                     S1   Segment 2               S2
------+-----------------------------+---+------------------------+----
DN pri  ac Gi0/1.100:100(Eth VLAN)   DN  l2tp 10.1.0.12:2         DN
DN pri  ac Gi0/1.210:210(Eth VLAN)   DN  l2tp 10.1.0.12:1         DN
 
RTA01#sh l2tp
 
%No active L2TP tunnels

Fukuoka拠点内のBK_SVサーバ(192.168.10.102)にAPP_SVからpingを打った結果、”show crypto isakmp sa”、”show crypto session”、"show xconnect all”、”show l2tp”が次のようになるように原因を特定し、設定を修正し、pingの結果と修正箇所を記入しなさい。

APP_SV> ping 192.168.10.102
 
84 bytes from 192.168.10.102 icmp_seq=1 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.102 icmp_seq=2 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.102 icmp_seq=3 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.102 icmp_seq=4 ttl=255 time=XXX.XXXX ms
84 bytes from 192.168.10.102 icmp_seq=5 ttl=255 time=XXX.XXXX ms

*応答時間を示すtimeの値は同じでなくてもよい

RTA01# show crypto isakmp sa
 
IPv4 Crypto ISAKMP SA
  dst          src      state   conn-id status
10.1.0.11   10.1.0.12   QM_IDLE 1001    ACTIVE
 
 
RTA01# show crypto session
 
Crypto session current status
 
Interface: GigabitEthernet0/0
Session status: UP-ACTIVE
Peer: 10.1.0.12 port 500
    Session ID : 0
    IKEv1 SA: local 10.1.0.11/500 remote 10.1.0.12/500 Active
    Session ID : 0
    IKEv1 SA: local 10.1.0.11/500 remote 10.1.0.12/500 Active
    IPSEC FLOW: permit ip host 10.0.0.51 host 10.0.0.61
        Active Sas: 2, prigin: crypto map

RTA01# show xconnect all
Legend: XC ST=Xconnect State    S1= Segment1 State  S2=Sgument2 State
    UP=Up   DN=Down AD=Admin Down   IA=Inactive
    SB=Standby  HS=Hot Standby  RV=Recovering   NH=No Hardware
 
XC ST   Sgment 1                     S1   Segment 2               S2
------+-----------------------------+---+------------------------+----
UP pri  ac Gi0/1.100:100(Eth VLAN)   UP  l2tp 10.0.0.61:2         UP
UP pri  ac Gi0/1.210:210(Eth VLAN)   UP  l2tp 10.0.0.61:1         UP
 
RTA01#sh l2tp
 
L2TP Tunnel and Session Information Total tunnels 1 sessions 2
 
 LocTunID    RenTunID    Remote Name    State   Remote Address   Sessn   L2TP Class/
                                                                 Count   VPDN Gtoup
3699731456   4012373309  RTB01          est     10.0.0.61        2       L2S
 
 LocID       RemID       TunID        Username, Intf/  State   Last Chg     Uniq ID
                                      Vid, Circuit
1783066710   4012373309  3699731456   2, Gi0/1.100:100  est     03:36:22     0
3532487071   2540918322  3699731456   1, Gi0/1.210:210  est     03:36:22     0

技術要素

VLAN、L2TP、ACL、L2VPN、IPSEC

問題解説

問題1

増設したスイッチ(SWA02)とSWA01の間はport-channel接続(今回は、Staticで冗長化しています)されており、それぞれを接続しているGi0/2とGi0/3ポートはChannel-groupで設定がされている。

しかし、SWA02のVLAN210については、Gi0/3のみに設定が投入されており、Gi0/2に設定されていない。この場合、本来であれば、Port-channel1のallowed vlanに210を追加する必要がある。

また、「sh vlan」でVLAN情報を確認すると、VLAN210が表示されない。IOSスイッチでVLANを扱うには、VLANデータベースへの追加が必要である。

割と発生しやすい凡ミスですね・・・。

SWA02(config)# interface Gi0/3
SWA02(config-if)# switchport trunk allowed vlan remove 210 ←誤った設定を削除します
SWA02(config-if)# exit
SWA02(config)#vlan 210 ←VLANデータベースに追加します
SWA02(config-vlan)# exit
SWA02(config)# interface Po1
SWA02(config-if)# switchport trunk allowed vlan add 210 ←Port-channell1にVLAN210を許可します
SWA02(config-if)# end

問題2

RTA01とRTB01の間で、IPSECトンネルを張った中をL2TPのトンネルを張って通信を通しています。

まずは、正しくIPSECトンネルが張れている必要があります。設定を見てみるとISAKMPのKEY設定において、対抗側のIPアドレスが間違ってます。今回は、IPSECトンネルの中をL2TPトンネルを張りますので、IPSECトンネルの相手側IPアドレスを指定します。

ACLをみると、UDP:500番は通信許可をしているもののそれ以外は許可していません。そのため、L2TPの通信ができなくなっているのでホストアドレス固定で許可します。

また、10.0.0.51をGi0/0へルーティングする設定が必要になります。

RTB01(config)# interface Gi0/1.100 ←IPSEC設定を解除する前にIPSECトンネルを通る通信を一旦切断します。
RTB01(config-subif)# no xconnect
RTB01(config-subif)# exit
RTB01(config)# interface Gi0/1.210
RTB01(config-subif)# no xconnect
RTB01(config-subif)# exit
RTB01(config)# interface Gi0/0
RTB01(config-if)# no crypto map M1 ←IPSECトンネルを切断します。
RTB01(config-if)# exit
RTB01(config)# no crypto isakmp key janog47 address 10.0.0.51
RTB01(config)# crypto isakmp key janog47 address 10.1.0.11 ←対抗側のIPアドレスはIPSECトンネルのI/Fに振られたIPになります。
RTB01(config)# no access-list 101 permit udp host 10.1.0.11 host 10.1.0.12 eq 500 ←ISAKMPの鍵交換はできるが、それ以外の通信はDenyされる
RTB01(config)# access-list 101 permit ip host 10.1.0.11 host 10.1.0.12 ←IPSECトンネル抜けてきた通信は許可する
RTB01(config)# access-list 101 deny ip any any  ←それ以外の通信は不許可
RTB01(config)# ip route 10.0.0.51 255.255.255.255 GigabitEthernet0/0 ←Gi0/0へルーティング
RTB01(config)# interface Gi0/0
RTB01(config-if)# crypto map M1 ←IPSECトンネルを張ります
RTB01(config-if)# exit
RTB01(config)# interface gi0/1.100
RTB01(config-if)# xconnect 10.0.0.51 2 encapsulation l2tpv3 pw-class WA1P ←再度L2TPのトンネルを張ります
RTB01(config-if)# exit
RTB01(config)# interface gi0/1.210
RTB01(config-if)# xconnect 10.0.0.51 1 encapsulation l2tpv3 pw-class WA1P ←再度L2TPのトンネルを張ります

IPSECトンネルを通過させるアドレスはACLで設定します。この場合、L2TPトンネルの両端となるI/Fのアドレスを設定します。

L2TPでは、xcoonectでトンネルを張りますが、xconnectのトンネルは、IPSECトンネルを抜けた後のIPアドレスを指定する必要があります。

RTA01(config)# no access-list 100 ← 間違った設定を削除
RTA01(config)# access-list 100 permit ip host 10.0.0.51 host 10.0.0.61 ← IPSECのトンネルを通すI/Fのアドレスを指定
RTA01(config)# interface Gi0/1.100
RTA01(config-subif)# no xconnect ← 間違った設定を削除
RTA01(config-subif)# xconnect 10.0.0.61 2 encapsulation l2tpv3 pw-class WB1P ← L2TPのトンネルを通すI/Fのアドレスを指定
RTA01(config-subif-xconnect)# exit
RTA01(config-subif)# exit
RTA01(config)# interface Gi0/1.210
RTA01(config-subif)# no xconnect ← 間違った設定を削除
RTA01(config-subif)# xconnect 10.0.0.61 1 encapsulation l2tpv3 pw-class WB1P← L2TPのトンネルを通すI/Fのアドレスを指定

Discussion