ICTSC2025 一次予選 問題解説: 問20 - 問22

問20

以下はとあるパケットを Wireshark で開いたスクリーンショットである。





このパケットがどんな役割を担っているか、パケットから情報を読み取ったうえで、下記の文章を適切な言葉で補完し完成させよ。なお、複数の表現が可能な場合は、この問題の文脈におけるより具体的な表現を採用すること。

このパケットは L3 アンダーレイ上の L2 オーバーレイネットワークを構成する [A] に関連するパケットで、ネットワークに新たな [B] が参加した際に送付される BGP の UPDATE Message である。このパケットによって、ネットワーク全体は [C] トラフィックを転送すべき相手を知ることができ、[C] トラフィックを [D] キャスト通信に変換したうえで、[E] して送付することが出来る。[E] する方式は [F] と呼ばれており、その他に [G] キャスト通信を使った方式が存在している。

解答例

A : EVPN/VXLAN

B : VTEP

C : BUM

D : ユニ

E : 複製

F : Ingress ReplicationまたはHead-End Replication

G : マルチ

解説・作問者コメント

EVPN/VXLAN の Route Type 3 のパケットに関する問題です。Route Type 3 のパケットがどんな役割を担っていて、同様の役割を担える仕組みが他にどんなものがあるかの知識を試す問題です。BGP の中身を見ていくと、EVPN というワードや、Route Type に関する情報がそのまま記載されており、Encap 方式が VXLAN である旨も記載されており、正答に近づけたかと思います。 本質的な知識からは全く逸れますが、「【】キャスト」という枠に対して、「【ユニキャスト】キャスト」といった回答が結構多くみられました。穴埋め問題のため、このような回答は部分点扱いとさせていただきました。また、「VTEP」という正答に対して、「ホスト」といった回答に関しても、「尚、複数の表現が可能な場合は、この問題の文脈におけるより具体的な表現を採用してください。」という問題文の注意事項を鑑み、部分点扱いとさせていただきました。

問21

Palo Alto Networks 社の PA シリーズのファイアウォールを使用して URL フィルタリングを行おうとしている。

以下のようにコンフィグを設計しポリシーを作っていたが、security rules の設定に不備があり、想定通りの動きにならない。

set rulebase security rules allow_ip from CLIENT
set rulebase security rules allow_ip to SERVER
set rulebase security rules allow_ip source 192.168.1.1
set rulebase security rules allow_ip destination 10.0.0.1
set rulebase security rules allow_ip service service-http
set rulebase security rules allow_ip application any
set rulebase security rules allow_ip action allow

set rulebase security rules allow_url from CLIENT
set rulebase security rules allow_url to SERVER
set rulebase security rules allow_url source 192.168.1.1
set rulebase security rules allow_url destination any
set rulebase security rules allow_url profile-setting profiles url-filtering allow_url_profile 
set rulebase security rules allow_url service service-http
set rulebase security rules allow_url application any
set rulebase security rules allow_url action allow

set rulebase security rules deny_any from CLIENT
set rulebase security rules deny_any to SERVER
set rulebase security rules deny_any source any
set rulebase security rules deny_any destination any
set rulebase security rules deny_any service any
set rulebase security rules deny_any application any
set rulebase security rules deny_any action deny

set profiles custom-url-category allow_url_list type "URL List"
set profiles custom-url-category allow_url_list list [ example.com, example.net, example.org ]

set profiles url-filtering allow_url_profile allow allow_url_list

上記を踏まえ、以下の3つの問いに対する回答を記述せよ。

  1. コンフィグの設計から「想定通りの動き」を読み取り記述せよ
  2. 今のコンフィグではどのような動きになるか想像し記述せよ
  3. 「想定通りの動き」にするにはコンフィグをどのように修正すればよいか記述せよ

解答例

  1. 特定のクライアントからサーバのゾーンに対する通信を、特定の IP や URL によって許可し、どの条件にも該当しない場合は deny するホワイトリスト形式の通信制御を行うこと、が想定通りの動きとなる。

  2. allow_url のポリシーによって、profile-setting が設定されているので、一見指定した URL のみを許可する security rules に設定出来ているように見える。しかし、security rules の考え方として、from, source, to, destination, service, application にマッチした場合は指定した action を取ってしまうため、指定した URL 以外宛ての通信であっても、destination any でクライアントから任意の HTTP 通信が可能になってしまい、deny_any のポリシーに判定が移らない。

  3. allow_url で指定する条件に category を追加し、profile の指定を削除する。profile の設定自体も不要なので削除する。これによって、security rules にマッチする条件にURLが含まれるようになったため、allow_url_list で指定した宛先以外への通信は、allow_url のポリシーにはマッチせずに、deny_any へと判定が移る。

set rulebase security rules allow_ip from CLIENT
set rulebase security rules allow_ip to SERVER
set rulebase security rules allow_ip source 192.168.1.1
set rulebase security rules allow_ip destination 10.0.0.1
set rulebase security rules allow_ip service service-http
set rulebase security rules allow_ip application any
set rulebase security rules allow_ip action allow 

set rulebase security rules allow_url from CLIENT
set rulebase security rules allow_url to SERVER
set rulebase security rules allow_url source 192.168.1.1
set rulebase security rules allow_url destination any
set rulebase security rules allow_url category allow_url_list
set rulebase security rules allow_url service service-http
set rulebase security rules allow_url application any
set rulebase security rules allow_url action allow

set rulebase security rules deny_any from CLIENT
set rulebase security rules deny_any to SERVER
set rulebase security rules deny_any source any
set rulebase security rules deny_any destination any
set rulebase security rules deny_any service any
set rulebase security rules deny_any application any
set rulebase security rules deny_any action deny

set profiles custom-url-category allow_url_list type "URL List"
set profiles custom-url-category allow_url_list list [ example.com, example.net, example.org ]

解説・作問者コメント

Palo Alto Networks 社の PA シリーズによる通信制御に関する問題です。
作問者が想定していなかった内容でも、適切な考え方と思われる回答には別途配点させていただいています。幅広い解釈が可能な問題となってしまい、回答に苦労されたかと思いますが、取り組んでいただきありがとうございました。

  1. コンフィグの設計から「想定通りの動き」を読み取り記述してください

    1. 特定の IP や URL への HTTP 通信のみを許可している点に言及しているか。作問者は想定できていませんでしたが、許可されている IP はゲートウェイであり、それはどんな通信でも経由する宛先という考え方もできるため、そういった旨の回答も正答とさせていただいています。
    2. どの条件にも該当しない場合は deny することに言及しているか。このポリシーでは HTTP 以外も対象となっているので、「その他のウェブアクセス」と限定している場合は誤答とさせていただいています。
  2. 今のコンフィグではどのような動きになるか想像し記述してください

    1. 明示的に許可していない宛先への HTTP 通信も通ってしまうことや、deny_any のポリシーが HTTP 通信においては全く使われないことに言及しているか。
    2. 明示的に許可していない宛先への通信が成立してしまう理由について言及しているか。複数のパターンでの回答があり得ました。10.0.0.1 を GW と考えるなら、1つ目のポリシーですべての HTTP 通信が素通しとなる考え方もできます。もしくは、URL 制御の security rulesfrom, source, to, destination, service, application の条件で動作するため、destination any になっているから明示的に許可していない宛先への通信も成立してしまう、という考え方もできます。回答の中に、「カスタムの URL カテゴリでアクションを定義していない宛先へのデフォルトのアクションは alert だから意図しない通信も許可されてしまう」というものがいくつかありましたが、意図しない通信も許可されてしまうのは「カテゴリに関する条件がないこと」と「宛先が any なこと」の2点によって引き起こされているため不正解とさせていただきました。URL カテゴリで定義されていない宛先への通信が alert によって許可される、という説明には URL リストに書いていない URL への HTTP 通信を流した時、その URL がログに出力されるという動きが想定されますが、このコンフィグではその動作にはならないためです。
  3. 「想定通りの動き」にするにはコンフィグをどのように修正すればよいか記述してください。

    1. 意図しない宛先への通信を遮断する方法について言及しているか。方法としては、URL 制御のポリシーに category マッチの条件を入れる、が考えられます。profileblock するURLリストを作成し、全てのサイトをブロックする設定する方式は、許可したい URL へのアクセスも遮断してしまい、個別に遮断するサイトをリスト化する方式では「ホワイトリスト形式」という従来のやりたいことから逸れるため NG とさせていただきました。
    2. 10.0.0.1 を GW と想定したと思われる回答には、「IP 許可のポリシーを削除する」という方式がありましたが、URL 制御のポリシーにも手を加えない限りは正しい制御にはならず、引き続き全 HTTP が許可されてしまうため、部分点とさせていただきました。また、その他の回答であっても、21-1や21-2の回答の文脈と照らし合わせて適切な手段と判断した場合にも部分点を加点させていただいています。

以下、参考資料になります。
Security Profilesのフィールドに、「Provide additional protection from threats, vulnerabilities, and data leaks. Security profiles are evaluated only for rules that have an allow action.」という説明があり、単なる URL 制御では不要であること。適用には、ポリシーのアクションが allow であることが必須なこと、を読み取ることができると回答のヒントになりそうです。

問22

検証用に以下の構成のネットワークを Arista vEOS のバージョン 4.31.4M で構築している。

R3 と R4 は 192.0.2.0/24 のネットワークへの到達性を有することを模擬するために Lo アドレスに当該ネットワークのアドレスを持たせている。

各ネットワーク機器のコンフィグや出力の一部を以下に記載する。 なお、ルーティングやIPアドレスに関する情報は漏れなく記載している。

以下は R1 のコンフィグの一部である。

interface Ethernet1
   description to R3
   no switchport
   ip address 10.0.0.1/30

interface Ethernet2
   description to R2
   no switchport
   ip address 10.1.1.1/30

ip route 192.0.2.0/24 10.0.0.2
ip route 192.0.2.0/25 10.1.1.2 200

ip routing

router bgp 65001
   router-id 1.1.1.1
   neighbor 10.1.1.2 remote-as 65002
   address-family ipv4
      neighbor 10.1.1.2 activate

以下は R2 のコンフィグの一部である。

interface Ethernet1
   description to R4
   no switchport
   ip address 10.1.2.1/30

interface Ethernet2
   description to R1
   no switchport
   ip address 10.1.1.2/30

ip route 192.0.2.0/24 10.1.2.2

ip routing

router bgp 65002
   router-id 2.2.2.2
   neighbor 10.1.1.1 remote-as 65001
   address-family ipv4
      neighbor 10.1.1.1 activate
      network 192.0.2.0/24

以下は R3 のコンフィグの一部である。

ip routing

interface Ethernet1
   description to R1
   no switchport

interface Loopback0
   ip address 192.0.2.1/24

以下は R4 のコンフィグの一部である。

ip routing

interface Ethernet1
   description to R2
   no switchport
   ip address 10.1.2.2/30

interface Loopback0
   ip address 192.0.2.2/24

以下は R1 で show int status を実行した結果である。

R1#show int status
Port       Name    Status       Vlan     Duplex Speed  Type            Flags Encapsulation
Et1        to R3   connected    routed   full   1G     EbraTestPhyPort
Et2        to R2   connected    routed   full   1G     EbraTestPhyPort
Et3                notconnect   1        full   1G     EbraTestPhyPort
Et4                notconnect   1        full   1G     EbraTestPhyPort
Et5                notconnect   1        full   1G     EbraTestPhyPort
Et6                notconnect   1        full   1G     EbraTestPhyPort
Et7                notconnect   1        full   1G     EbraTestPhyPort
Ma1                notconnect   routed   auto   auto   10/100/1000

以下は R2 で show int status を実行した結果である。

R2#show int status
Port       Name    Status       Vlan     Duplex Speed  Type            Flags Encapsulation
Et1        to R4   connected    routed   full   1G     EbraTestPhyPort
Et2        to R1   connected    routed   full   1G     EbraTestPhyPort
Et3                notconnect   1        full   1G     EbraTestPhyPort
Et4                notconnect   1        full   1G     EbraTestPhyPort
Et5                notconnect   1        full   1G     EbraTestPhyPort
Et6                notconnect   1        full   1G     EbraTestPhyPort
Et7                notconnect   1        full   1G     EbraTestPhyPort
Ma1                notconnect   routed   auto   auto   10/100/1000

以下は R1 で show ip bgp を実行した結果である。

R1#show ip bgp
BGP routing table information for VRF default
Router identifier 1.1.1.1, local AS number 65001
Route status codes: s - suppressed contributor, * - valid, > - active, E - ECMP head, e - ECMP
                    S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast
                    % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI Origin Validation codes: V - valid, I - invalid, U - unknown
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  AIGP       LocPref Weight  Path
 * >      192.0.2.0/24           10.1.1.2              0       -          100     0       65002 ?

現時点で、R1 で出力される show ip route の結果として想定されるルーティングテーブルを記述せよ。ルート情報には、プロトコル、宛先NW、ネクストホップ、インタフェースの情報を含めること。

解答のフォーマットは以下を参考にすること。

■プロトコルの表記
 C - connected, S - static, K - kernel,
 O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
 E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
 N2 - OSPF NSSA external type2, B - Other BGP Routes,
 B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
 I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
 A O - OSPF Summary, NG - Nexthop Group Static Route,
 V - VXLAN Control Service, M - Martian,
 DH - DHCP client installed default route,
 DP - Dynamic Policy Route, L - VRF Leaked,
 G  - gRIBI, RC - Route Cache Route,
 CL - CBF Leaked Route

■ルーティングテーブルの表記
O  192.168.0.0/24  10.0.0.1  Ethernet5

回答例

R1#show ip route

VRF: default
Source Codes:
       C - connected, S - static, K - kernel,
       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
       N2 - OSPF NSSA external type2, B - Other BGP Routes,
       B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
       I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
       A O - OSPF Summary, NG - Nexthop Group Static Route,
       V - VXLAN Control Service, M - Martian,
       DH - DHCP client installed default route,
       DP - Dynamic Policy Route, L - VRF Leaked,
       G  - gRIBI, RC - Route Cache Route,
       CL - CBF Leaked Route

Gateway of last resort is not set

 C        10.0.0.0/30
           directly connected, Ethernet1
 C        10.1.1.0/30
           directly connected, Ethernet2
 S        192.0.2.0/25 [200/0]
           via 10.1.1.2, Ethernet2
 B E      192.0.2.0/24 [200/0]
           via 10.1.1.2, Ethernet2

解説

ルーティングに関する問題です。直接接続の2本は特に論点なしでそのまま記載されますが、192.0.2.0/25192.0.2.0/24 がポイントとなります。
問題の肝は、R1に設定している ip route 192.0.2.0/24 10.0.0.2show ip route の結果に載ってこない点です。Interface が Up しているので誤解しがちですが、対向の R3 のインタフェースに該当する IP が設定されていません。なので、対向の ARP 解決ができず、ARP 解決できない宛先をネクストホップに設定したスタティックルートは show ip route の結果に載りません。
後は、R1 に設定されている /25 向けのスタティックルートがロンゲストマッチで優先され、/24 向けのルートが BGP で学習されている、という2点を加味したルーティングテーブルを記載すると解ける問題となっております。