助け合いフォーラム

Cisco

CCNP ENCOR(350-401)
問題ID : 36881
問題を開く
次のコマンドで表されるACL3を、RESTCONFを利用して機器に追加したい。 POSTするリクエストのBodyの空欄1および2に当てはまる組み合わせはどれか。

この問題はプレミアムコンテンツです。

上に戻る

どういう理由でそうなるの?

投稿日 2024/03/03

解説の①〜④の流れ的に
"設定項目":"実際の設定値"
となっているように見えたので
⑤"source":"any"
⑥"destination":"any"
のようになると思ったのですが、なぜ
⑤"any":""
⑥"dst-any":""
となるのでしょうか?
これはそういうもんだと覚えるしかないのでしょうか?

2024/03/05 11:41

これはそういうもんだと覚えるしかないのでしょうか?

はい、そうです。

RESTCONFでネットワーク機器の設定を変更するということは、YANGモデルのデータを操作するということです。
POSTで設定を追加する際に対象のネットワーク機器が対応しているYANGモデルを使ってデータを指定してあげないと、機器側は何を追加したいのか認識できません。
つまり、あらかじめ決められているデータ構造に従って設定を追加したり変更したりする必要があります。
あなたが「"source"」や「"destination"」の方がしっくりくるなと思っても、決められたデータ構造と異なる場合、機器側には通じないということです。

試しに「"source":"any"」を使ってリクエストしてみましたが、以下のようにエラーになりました。
"error-message"に「unknown element: source」と書かれています。これは機器側が「source」というキーを知らない(あらかじめ決められているデータ構造にはない)からです。

{
  "ietf-restconf:errors": {
    "error": [
      {
        "error-type": "application",
        "error-tag": "malformed-message",
        "error-path": "/Cisco-IOS-XE-native:native/ip/access-list",
        "error-message": "unknown element: source in /ios:native/ios:ip/ios:access-list/ios-acl:extended[ios-acl:name='ACL4']/ios-acl:access-list-seq-rule[ios-acl:sequence='100']/ios-acl:ace-rule/ios-acl:source"
      }
    ]
  }
}

じゃあどうやってデータ構造を知ることができるのかという話になると思いますが、GETリクエストで実際にデータを取得したり、GitHubなどで公開されているYANGモデルを取得したりできます。
詳しくは以下のサイトが参考になると思います。
https://www.infrastudy.com/?p=1262
https://www.it-enjoy.com/entry/2021/01/26/190000#%E5%89%8D%E6%9B%B8%E3%81%8D
https://ccieojisan.net/post-2031/#RESTCONF


コメント

n nakanaka0104

2024/03/05 21:18

そういうもんだと思えたらとても楽な気持ちになりました笑 回答ありがとうございました!

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?