แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž”แž„แŸ’แž แžถแž‰แžขแŸ’แž“แž€แž–แžธแžšแž”แŸ€แž”แžŠแŸ†แžกแžพแž„ แžขแžผแžŒแžธแž”แžพแž€ แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แžงแž”แž€แžšแžŽแŸแž”แžŽแŸ’แžแžถแž‰ แž“แžทแž„แž”แž„แŸ’แž แžถแž‰แž–แžธแžšแž”แŸ€แž”แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž•แž„แžŠแŸ‚แžšแŸ” แžขแŸ’แž“แž€แžšแžแŸ‹แžŸแŸ†แž”แžปแžแŸ’แžš แž“แžทแž„แžŸแžถแž˜แž‰แŸ’แž‰ RESTCONF แžŸแŸ†แžŽแžพ, แžงแž”แž€แžšแžŽแŸแž“แŸแŸ‡แžขแžถแž…แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžถแž“แŸ” แž™แžพแž„แž“แžนแž„แž˜แžทแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถแž˜แžฝแž™แž•แŸ’แž“แŸ‚แž€แžšแžนแž„แž‘แŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž•แŸ’แž‘แžปแž™แž‘แŸ…แžœแžทแž‰ แž™แžพแž„แž“แžนแž„แžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แž”แž“แŸ’แž‘แž”แŸ‹แž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžแžผแž…แŸ— แž‡แžถแž˜แžฝแž™แž“แžนแž„แžšแŸ‰แŸ„แžแž‘แŸแžšแžแŸ‚แž˜แžฝแž™แžŠแŸ„แž™แž”แŸ’แžšแžพ Vrnetlab แž‡แžถแž„ แžขแŸŠแžผแž”แŸŠแžปแž“แž‘แžผ 20.04 LTS.

แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž”แž„แŸ’แž แžถแž‰แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž›แž˜แŸ’แžขแžทแžแž‡แžถแž˜แžปแž“แžŠแŸ„แž™แž”แŸ’แžšแžพแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžšแŸ‰แŸ„แžแž‘แŸแžš Juniper vMX 20.1R1.11แž แžพแž™แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž™แžพแž„แž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แžœแžถแž‡แžถแž˜แžฝแž™แž€แžถแžšแž€แŸ†แžŽแžแŸ‹ Cisco xRV9000 7.0.2.

แž˜แžถแžแžทแž€แžถ

  • แž…แŸ†แžŽแŸแŸ‡แžŠแžนแž„แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžš
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 1แŸ– แž–แžทแž—แžถแž€แŸ’แžŸแžถแžŠแŸ„แž™แžŸแž„แŸ’แžแŸแž” OpenDaylight (แžแž‘แŸ…แž“แŸแŸ‡แŸ” แžขแžผแžŒแžธแžขแžทแž›), แžขแŸ’แž“แž€แžšแžแŸ‹แžŸแŸ†แž”แžปแžแŸ’แžš ะธ Vrnetlab แž แžพแž™แž แŸแžแžปแžขแŸ’แžœแžธแž”แžถแž“แž‡แžถแž™แžพแž„แžแŸ’แžšแžผแžœแž€แžถแžšแž–แžฝแž€แž‚แŸแŸ”
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 2แŸ– แž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแžขแŸ†แž–แžธแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแž
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 3แŸ– แž”แŸ’แžŠแžผแžšแžแžถแž˜แž”แŸ†แžŽแž„ แžขแžผแžŒแžธแž”แžพแž€
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 4แŸ– แž”แŸ’แžŠแžผแžšแžแžถแž˜แž”แŸ†แžŽแž„ Vrnetlab
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 5แŸ– แžŠแŸ„แž™แž”แŸ’แžšแžพ แžขแŸ’แž“แž€แžšแžแŸ‹แžŸแŸ†แž”แžปแžแŸ’แžš แž—แŸ’แž‡แžถแž”แŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแž“แžทแž˜แŸ’แž˜แžทแž (Juniper vMX) แž‘แŸ… แžขแžผแžŒแžธแžขแžทแž›
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 6แŸ– แž‘แž‘แžฝแž›แž”แžถแž“ แž“แžทแž„แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžšแŸ‰แŸ„แžแž‘แŸแžšแžŠแŸ„แž™แž”แŸ’แžšแžพ แžขแŸ’แž“แž€แžšแžแŸ‹แžŸแŸ†แž”แžปแžแŸ’แžš ะธ แžขแžผแžŒแžธแžขแžทแž›
  • แž•แŸ’แž“แŸ‚แž€แž“แŸƒ 7แŸ– แž”แž“แŸ’แžแŸ‚แž˜ Cisco xRV9000
  • แžŸแŸแž…แž€แŸ’แžแžธแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“
  • PS
  • แž‚แž“แŸ’แžแž“แžทแž‘แŸ’แž‘แŸแžŸ

แž…แŸ†แžŽแŸแŸ‡แžŠแžนแž„แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžš

แžŠแžพแž˜แŸ’แž”แžธแžฑแŸ’แž™แžขแžแŸ’แžแž”แž‘แž˜แžทแž“แž”แŸ’แžšแŸ‚แž‘แŸ…แž‡แžถแžŸแž“แŸ’แž›แžนแž€ แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž›แžปแž”แž…แŸ„แž›แž–แŸแžแŸŒแž˜แžถแž“แž›แž˜แŸ’แžขแžทแžแž”แž…แŸ’แž…แŸแž€แž‘แŸแžŸแž˜แžฝแž™แž…แŸ†แž“แžฝแž“ (แž‡แžถแž˜แžฝแž™แžแŸ†แžŽแž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แžขแž€แŸ’แžŸแžšแžŸแžทแž›แŸ’แž”แŸแžŠแŸ‚แž›แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แžขแŸ†แž–แžธแž–แžฝแž€แžœแžถ)แŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แž“แŸแŸ‡แžแŸ’แž‰แžปแŸ†แž•แŸ’แžแž›แŸ‹แž‡แžผแž“แžขแŸ’แž“แž€แž“แžผแžœแž”แŸ’แžšแž’แžถแž“แž”แž‘แžŠแŸ‚แž›แžœแžถแž“แžนแž„แž‡แžถแž€แžถแžšแž›แŸ’แžข (แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžŸแŸ’แž‘แžพแžšแžแŸ‚แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹) แžŠแžพแž˜แŸ’แž”แžธแžŠแžนแž„แž˜แžปแž“แž–แŸแž›แžขแžถแž“:

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 1: แž‘แŸ’แžšแžนแžŸแŸ’แžแžธแž˜แžฝแž™แž…แŸ†แž“แžฝแž“

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

  • แžœแŸแž‘แžทแž€แžถ SDN แž”แžพแž€แž…แŸ†แž แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ แž“แžทแž„แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰แž‚แŸ’แžšแž”แŸ‹แž”แŸ’แžšแž—แŸแž‘ แž‚แžถแŸ†แž‘แŸ’แžšแžŠแŸ„แž™ แž˜แžผแž›แž“แžทแž’แžทแž›แžธแž“แžปแž…
  • แž…แžถแžœแŸ‰แžถแž“แŸ…แžแžถแž„แž€แŸ’แž“แžปแž„
  • แž•แŸ’แžขแŸ‚แž€แž›แžพแž€แž˜แŸ’แžšแžทแžแžขแžšแžผแž”แžธแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŠแŸ‚แž›แž‡แŸ†แžšแžปแž‰แžŠแŸ„แž™แž‚แŸ†แžšแžผ (MD-SAL)
  • แž”แŸ’แžšแžพแž˜แŸ‰แžผแžŠแŸ‚แž› YANG แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแž RESTCONF APIs แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžงแž”แž€แžšแžŽแŸแž”แžŽแŸ’แžแžถแž‰

แž˜แŸ‰แžผแžŒแžปแž›แžŸแŸ†แžแžถแž“แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžŽแŸ’แžแžถแž‰แŸ” แžœแžถแž‚แžบแžแžถแž˜แžšแž™แŸˆแžœแžถแžŠแŸ‚แž›แž™แžพแž„แž“แžนแž„แž‘แŸ†แž“แžถแž€แŸ‹แž‘แŸ†แž“แž„แž‡แžถแž˜แžฝแž™แžงแž”แž€แžšแžŽแŸแžŠแŸ‚แž›แž”แžถแž“แžแž—แŸ’แž‡แžถแž”แŸ‹แŸ” แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžแžถแž˜แžšแž™แŸˆ API แžšแž”แžŸแŸ‹แžแŸ’แž›แžฝแž“แŸ”

แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธ OpenDaylight แž“แŸ…แž‘แžธแž“แŸแŸ‡.

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

  • แžงแž”แž€แžšแžŽแŸแž’แŸ’แžœแžพแžแŸแžŸแŸ’แž API
  • แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แžŸแžถแž˜แž‰แŸ’แž‰ แž“แžทแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ’แžšแžพ

แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžšแž”แžŸแŸ‹แž™แžพแž„ แž™แžพแž„แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแžœแžถแž‡แžถแž˜แž’แŸ’แž™แŸ„แž”แžถแž™แž˜แžฝแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž•แŸ’แž‰แžพแžŸแŸ†แžŽแžพแžš REST แž‘แŸ…แž€แžถแž“แŸ‹ OpenDaylight APIแŸ” แž‡แžถโ€‹แž€แžถแžšโ€‹แž–แžทแž แžขแŸ’แž“แž€โ€‹แžขแžถแž…โ€‹แž•แŸ’แž‰แžพโ€‹แžŸแŸ†แžŽแžพโ€‹แžŠแŸ„แž™โ€‹แžŠแŸƒ แž”แŸ‰แžปแž“แŸ’แžแŸ‚โ€‹แž“แŸ…โ€‹แž€แŸ’แž“แžปแž„ Postman แžขแŸ’แžœแžธโ€‹แž‚แŸ’แžšแž”แŸ‹โ€‹แž™แŸ‰แžถแž„โ€‹แž˜แžพแž›โ€‹แž‘แŸ…โ€‹แž…แŸ’แž”แžถแžŸแŸ‹โ€‹แž›แžถแžŸแŸ‹ แž“แžทแž„โ€‹แžŸแž˜โ€‹แž“แžนแž„โ€‹แž‚แŸ„แž›โ€‹แž”แŸ†แžŽแž„โ€‹แžšแž”แžŸแŸ‹โ€‹แž™แžพแž„โ€‹แž™แŸ‰แžถแž„โ€‹แž›แŸ’แžขโ€‹แžฅแžโ€‹แžแŸ’แž…แŸ„แŸ‡แŸ”

แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แžŠแŸ‚แž›แž…แž„แŸ‹แž‡แžธแž€แŸ– แžฏแž€แžŸแžถแžšแž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž›แž‡แžถแž…แŸ’แžšแžพแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž“แŸ…แž›แžพแžœแžถ (แžงแž‘แžถแž แžšแžŽแŸ).

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

  • แžงแž”แž€แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แžšแŸ‰แŸ„แžแž‘แŸแžšแž“แžทแž˜แŸ’แž˜แžทแžแž“แŸ…แž€แŸ’แž“แžปแž„ Docker
  • แž‚แžถแŸ†แž‘แŸ’แžšแŸ– Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR แž‡แžถแžŠแžพแž˜แŸ”
  • แž”แžพแž€แž”แŸ’แžšแž—แž–

แžงแž”แž€แžšแžŽแŸแž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžทแž“แžŸแžผแžœแžŸแŸ’แž‚แžถแž›แŸ‹แŸ” แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžšแž”แžŸแŸ‹แž™แžพแž„ แž™แžพแž„แž“แžนแž„แž”แŸ’แžšแžพแžœแžถแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžš Juniper vMX แž“แžทแž„ Cisco xRV9000 แž“แŸ…แž›แžพ Ubuntu 20.04 LTS แž’แž˜แŸ’แž˜แžแžถแŸ”

แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธแžœแžถแž“แŸ… แž‘แŸ†แž–แŸแžšแž‚แž˜แŸ’แžšแŸ„แž„.

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 2: แž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸ

แž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸแžšแŸ€แž“แž“แŸแŸ‡ แž™แžพแž„แž“แžนแž„แžšแŸ€แž”แž…แŸ†แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แžแžพแž€แžถแžšแž„แžถแžšแž“แŸแŸ‡

  • Juniper vMX แž€แžพแž“แžกแžพแž„แž“แŸ…แž€แŸ’แž“แžปแž„ Dockers แž’แžปแž„ (แžŠแŸ„แž™แž˜แž’แŸ’แž™แŸ„แž”แžถแž™ Vrnetlab) แž“แžทแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถแžšแŸ‰แŸ„แžแž‘แŸแžšแž“แžทแž˜แŸ’แž˜แžทแžแž‘แžผแž‘แŸ…แž”แŸ†แž•แžปแžแŸ”
  • แžขแžผแžŒแžธแžขแžทแž› แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แžšแŸ‰แŸ„แžแž‘แŸแžš แž“แžทแž„แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžœแžถแŸ”
  • แžขแŸ’แž“แž€แžšแžแŸ‹แžŸแŸ†แž”แžปแžแŸ’แžš แž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€ แž แžพแž™แžแžถแž˜แžšแž™แŸˆแžœแžถแž™แžพแž„แž•แŸ’แž‰แžพแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ แžขแžผแžŒแžธแžขแžทแž›แŸ– แžŠแžพแž˜แŸ’แž”แžธแž—แŸ’แž‡แžถแž”แŸ‹/แž™แž€แžšแŸ‰แŸ„แžแž‘แŸแžš แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แŸ”แž›แŸ”

แžขแžแŸ’แžแžถแž’แžทแž”แŸ’แž”แžถแž™แž›แžพแžงแž”แž€แžšแžŽแŸแž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’

Juniper vMX ะธ แžขแžผแžŒแžธแžขแžทแž› แžแŸ’แžšแžผแžœแž€แžถแžšแž’แž“แž’แžถแž“แž…แŸ’แžšแžพแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž–แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแŸ” แžแŸ‚แž˜แžฝแž™ vMX แžŸแžปแŸ† RAM 6 Gb แž“แžทแž„ 4 cores แŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž•แŸ’แž›แžถแžŸแŸ‹แž‘แžธ "แž‘แž˜แŸ’แž„แž“แŸ‹แž’แŸ’แž„แž“แŸ‹" แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‘แŸ…แž˜แŸ‰แžถแžŸแŸŠแžธแž“แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€ (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS) แž‡แžถแž€แžถแžšแž–แžทแžแžŽแžถแžŸแŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแž˜แžทแž“ "แž แŸ„แŸ‡แž แžพแžš" แž“แŸ…แž›แžพแžœแžถแž‘แŸแž”แŸ‰แžปแž“แŸ’แžแŸ‚แž€แžถแžšแžŸแž˜แŸ’แžแŸ‚แž„แž‚แžบแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแžถแž“แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž–แžทแžŸแŸ„แž’แž“แŸแžแžผแž…แŸ—แŸ”

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 3แŸ– แžŠแŸ†แžกแžพแž„ OpenDaylight

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž€แŸ†แžŽแŸ‚แž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž“แŸƒ ODL แž“แŸ…แž–แŸแž›แžŸแžšแžŸแŸแžšแž“แŸแŸ‡แž‚แžบ Magnesium SR1

1) แžŠแŸ†แžกแžพแž„ Java OpenJDK แŸจ (แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŠแŸ†แžกแžพแž„แž›แž˜แŸ’แžขแžทแžแž”แž“แŸ’แžแŸ‚แž˜ แž“แŸ…แž‘แžธแž“แŸแŸ‡)

ubuntu:~$ sudo apt install default-jdk

2) แžŸแŸ’แžœแŸ‚แž„แžšแž€แž“แžทแž„แž‘แžถแž‰แž™แž€แž€แžถแžšแžŸแŸ’แžแžถแž”แž“แžถแž…แžปแž„แž€แŸ’แžšแŸ„แž™แž”แŸ†แž•แžปแžแŸ” แžขแžผแžŒแžธแžขแžทแž› แž–แžธแž‘แžธแž“แŸแŸ‡
3) แž–แž“แŸ’แž›แžถแž”แŸแžŽแŸ’แžŽแžŸแžถแžšแžŠแŸ‚แž›แž”แžถแž“แž‘แžถแž‰แž™แž€
4) แž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹แžแžแž›แž‘แŸ’แž’แž•แž›
5) แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ ./bin/karaf

แž“แŸ…แž‡แŸ†แž แžถแž“แž“แŸแŸ‡แŸ” แžขแžผแžŒแžธแžขแžทแž› แž‚แžฝแžšแžแŸ‚แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แž แžพแž™แž™แžพแž„แž“แžนแž„แžƒแžพแž‰แžแŸ’แž›แžฝแž“แž™แžพแž„แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžปแž„แžŸแžผแž› (แž…แŸ’แžšแž€ 8181 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แžผแž›แž–แžธแžแžถแž„แž€แŸ’แžšแŸ… แžŠแŸ‚แž›แž™แžพแž„แž“แžนแž„แž”แŸ’แžšแžพแž“แŸ…แž–แŸแž›แž€แŸ’แžšแŸ„แž™)แŸ”

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แžŠแŸ†แžกแžพแž„ แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžšแž”แžŸแŸ‹ ODLแžšแž…แž“แžถแžกแžพแž„แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แž–แžทแž’แžธแž€แžถแžš NETCONF ะธ RESTCONF. แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŠแžผแž…แž“แŸแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžปแž„แžŸแžผแž›แŸ” แžขแžผแžŒแžธแžขแžทแž› แž™แžพแž„แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแŸ–

opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all

แž“แŸแŸ‡แž‚แžบแž‡แžถแž€แžถแžšแžšแŸ€แž”แž…แŸ†แžŠแŸแžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแžแŸ” แžขแžผแžŒแžธแžขแžทแž› แž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹แŸ” (แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž–แŸแžแŸŒแž˜แžถแž“แž›แž˜แŸ’แžขแžทแž แžŸแžผแž˜แž˜แžพแž› แž“แŸ…แž‘แžธแž“แŸแŸ‡).

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 4: แž€แžถแžšแžŠแŸ†แžกแžพแž„ Vrnetlab

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž€แžถแžšแžšแŸ€แž”แž…แŸ†แž”แŸ’แžšแž–แŸแž“แŸ’แž’

แž˜แžปแž“แž–แŸแž›แžŠแŸ†แžกแžพแž„ Vrnetlab แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžŠแŸ†แžกแžพแž„แž€แž‰แŸ’แž…แž”แŸ‹แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžšแž”แžŸแŸ‹แžœแžถแŸ” แžŠแžผแž…แž‡แžถ Dockers, Git, แžขแŸแžŸแžขแŸแžŸแž†แŸ’แž›แž„แž€แžถแžแŸ‹:

ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt -y install python3-bs4 sshpass make
ubuntu:~$ sudo apt -y install git
ubuntu:~$ sudo apt install -y 
    apt-transport-https ca-certificates 
    curl gnupg-agent software-properties-common
ubuntu:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
ubuntu:~$ sudo add-apt-repository 
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
   $(lsb_release -cs) 
   stable"
ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt install -y docker-ce docker-ce-cli containerd.io

แž€แžถแžšแžŠแŸ†แžกแžพแž„ Vrnetlab

แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžกแžพแž„ Vrnetlab แž€แŸ’แž›แžผแž“แžƒแŸ’แž›แžถแŸ†แž„แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถแž–แžธ githubแŸ–

ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git

แž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹แžแž vrnetlab:

ubuntu:~$ cd ~/vrnetlab

แž“แŸ…แž‘แžธแž“แŸแŸ‡แžขแŸ’แž“แž€แžขแžถแž…แž˜แžพแž›แžƒแžพแž‰แžŸแŸ’แž‚แŸ’แžšแžธแž”แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ” แžŸแžผแž˜แž…แŸ†แžŽแžถแŸ†แžแžถ แžแžแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถแžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžกแžพแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแž—แŸแž‘แž“แžธแž˜แžฝแž™แŸ—แž“แŸƒแžšแŸ‰แŸ„แžแž‘แŸแžšแŸ–

ubuntu:~/vrnetlab$ ls
CODE_OF_CONDUCT.md  config-engine-lite        openwrt           vr-bgp
CONTRIBUTING.md     csr                       routeros          vr-xcon
LICENSE             git-lfs-repo.sh           sros              vrnetlab.sh
Makefile            makefile-install.include  topology-machine  vrp
README.md           makefile-sanity.include   veos              vsr1000
ci-builder-image    makefile.include          vmx               xrv
common              nxos                      vqfx              xrv9k

แž”แž„แŸ’แž€แžพแžแžšแžผแž”แž—แžถแž–แž“แŸƒแžšแŸ‰แŸ„แžแž‘แŸแžš

แžšแŸ‰แŸ„แžแž‘แŸแžšแž“แžธแž˜แžฝแž™แŸ—แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แžถแŸ†แž‘แŸ’แžš Vrnetlab, แž˜แžถแž“แž“แžธแžแžทแžœแžทแž’แžธแžŠแŸ†แžกแžพแž„แžแŸ‚แž˜แžฝแž™แž‚แžแŸ‹แžšแž”แžŸแŸ‹แžแŸ’แž›แžฝแž“แŸ” แž–แŸแž›แžŽแžถโ€‹ Juniper vMX แž™แžพแž„แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แžแŸ’แžšแžผแžœแž€แžถแžšแž•แŸ’แž‘แžปแž€แžกแžพแž„แž”แžŽแŸ’แžŽแžŸแžถแžš .tgz แž‡แžถแž˜แžฝแž™แžšแŸ‰แŸ„แžแž‘แŸแžš (แžขแŸ’แž“แž€แžขแžถแž…แž‘แžถแž‰แž™แž€แžœแžถแž–แžธ แž‚แŸแž แž‘แŸ†แž–แŸแžšแž•แŸ’แž›แžผแžœแž€แžถแžš) แž‘แŸ…แžแž vmx แž แžพแž™แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ make:

ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ะšะพะฟะธั€ัƒะตะผ ะฒ ัั‚ัƒ ะดะธั€ะตะบั‚ะพั€ะธัŽ .tgz ะฐั€ั…ะธะฒ ั ั€ะพัƒั‚ะตั€ะพะผ
ubuntu:~$ sudo make

แž€แžถแžšแž€แžŸแžถแž„แžšแžผแž”แž—แžถแž– vMX แž“แžนแž„แž…แŸ†แžŽแžถแž™แž–แŸแž›แž”แŸ’แžšแž แŸ‚แž› 10-20 แž“แžถแž‘แžธแŸ” แžŠแž›แŸ‹แž˜แŸ‰แŸ„แž„แž‘แŸ…แž‰แŸ‰แžถแŸ†แž€แžถแž แŸ’แžœแŸแž แžพแž™!

แžŸแžฝแžšแžแžถแž แŸแžแžปแžขแŸ’แžœแžธแž™แžผแžšแž˜แŸ’แž›แŸ‰แŸแŸ‡?

แž€แžถแžšแž”แž€แž”แŸ’แžšแŸ‚ แž…แž˜แŸ’แž›แžพแž™ แžขแŸ’แž“แž€แž“แžทแž–แž“แŸ’แž’แž…แŸ†แž–แŸ„แŸ‡แžŸแŸ†แžŽแžฝแžšแž“แŸแŸ‡แŸ–

"แž“แŸแŸ‡แž‚แžบแžŠแŸ„แž™แžŸแžถแžšแžแŸ‚แž‡แžถแž›แžพแž€แžŠแŸ†แž”แžผแž„แžŠแŸ‚แž› VCP (Control Plane) แžแŸ’แžšแžผแžœแž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แžœแžถแžขแžถแž“แžฏแž€แžŸแžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžŠแŸ‚แž›แž€แŸ†แžŽแžแŸ‹แžแžถแžแžพแžœแžถแž“แžนแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถ VRR VCP แž“แŸ…แž€แŸ’แž“แžปแž„ vMX แžŠแŸ‚แžšแžฌแž‘แŸแŸ” แž–แžธแž˜แžปแž“ แž€แžถแžšแž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแž€แŸ†แžกแžปแž„แž–แŸแž›แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ Docker แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž“แŸแŸ‡แž˜แžถแž“แž“แŸแž™แžแžถ VCP แžแŸ‚แž„แžแŸ‚แžแŸ’แžšแžผแžœแž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžกแžพแž„แžœแžทแž‰แž˜แŸ’แžแž„แž˜แžปแž“แž–แŸแž›แžšแŸ‰แŸ„แžแž‘แŸแžšแž“แžทแž˜แŸ’แž˜แžทแžแžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“ แžŠแŸ‚แž›แž”แžŽแŸ’แžแžถแž›แžฑแŸ’แž™แž˜แžถแž“แž–แŸแž›แž…แžถแž”แŸ‹แž•แŸ’แžŠแžพแž˜แž™แžผแžš (แž”แŸ’แžšแž แŸ‚แž› 5 แž“แžถแž‘แžธ) แžฅแžกแžผแžœแž“แŸแŸ‡แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ†แž”แžผแž„แž“แŸƒ VCP แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแž€แŸ†แžกแžปแž„แž–แŸแž›แž”แž„แŸ’แž€แžพแžแžšแžผแž”แž—แžถแž– Docker แž แžพแž™แž…แžถแž”แŸ‹แžแžถแŸ†แž„แž–แžธ Docker build แž˜แžทแž“แžขแžถแž…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถแž˜แžฝแž™ - แž‡แž˜แŸ’แžšแžพแžŸ -privileged แž“แŸแŸ‡แž˜แžถแž“แž“แŸแž™แžแžถ qemu แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž‚แŸ’แž˜แžถแž“แž€แžถแžšแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“แž•แŸ’แž“แŸ‚แž€แžšแžนแž„แžšแž”แžŸแŸ‹ KVM แž แžพแž™แžŠแžผแž…แŸ’แž“แŸแŸ‡แž€แžถแžšแžŸแŸ’แžแžถแž”แž“แžถแžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž›แž™แžผแžšแžŽแžถแžŸแŸ‹แŸ” แž€แŸ’แž“แžปแž„แžขแŸ†แžกแžปแž„แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸแŸ‡ แž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแž‡แžถแž…แŸ’แžšแžพแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž…แŸแž‰ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž™แŸ‰แžถแž„แž แŸ„แž…แžŽแžถแžŸแŸ‹แžขแŸ’แž“แž€แžขแžถแž…แžƒแžพแž‰แžขแŸ’แžœแžธแžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แž€แžพแžแžกแžพแž„แŸ” แžแŸ’แž‰แžปแŸ†แž‚แžทแžแžแžถแž€แžถแžšแžŸแŸ’แžแžถแž”แž“แžถแž™แžผแžš แžœแžถโ€‹แž˜แžทแž“โ€‹แž‚แžฝแžšโ€‹แžฒแŸ’แž™โ€‹แžแŸ’แž›แžถแž…โ€‹แž“แŸ„แŸ‡โ€‹แž‘แŸ แž–แŸ’แžšแŸ„แŸ‡โ€‹แž™แžพแž„โ€‹แž”แž„แŸ’แž€แžพแžโ€‹แžšแžผแž”แž—แžถแž–โ€‹แž˜แŸ’แžแž„ แž”แŸ‰แžปแž“แŸ’แžแŸ‚โ€‹แž™แžพแž„โ€‹แž”แžพแž€โ€‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšโ€‹แž‡แžถโ€‹แž…แŸ’แžšแžพแž“ยปแŸ”

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžขแŸ’แž“แž€แžขแžถแž…แž˜แžพแž›แžƒแžพแž‰แžšแžผแž”แž—แžถแž–แž“แŸƒแžšแŸ‰แŸ„แžแž‘แŸแžšแžšแž”แžŸแŸ‹แž™แžพแž„แž“แŸ…แž€แŸ’แž“แžปแž„ Dockers:

ubuntu:~$ sudo docker image list
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
vrnetlab/vr-vmx     20.1R1.11           b1b2369b453c        3 weeks ago         4.43GB
debian              stretch             614bb74b620e        7 weeks ago         101MB

แž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžปแž„แžแžบแž“แŸแžš vr-vmx

แž™แžพแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž‡แžถแž˜แžฝแž™แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแŸ–

ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c

แž”แž“แŸ’แž‘แžถแž”แŸ‹ แž™แžพแž„แžขแžถแž…แžƒแžพแž‰แž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแž’แžปแž„แžŸแž€แž˜แŸ’แž˜แŸ–

ubuntu:~$ sudo docker container list
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS                                                 NAMES
120f882c8712        b1b2369b453c        "/launch.py"        2 minutes ago       Up 2 minutes (unhealthy)   22/tcp, 830/tcp, 5000/tcp, 10000-10099/tcp, 161/udp   jun01

แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แžšแŸ‰แŸ„แžแž‘แŸแžš

แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แž“แŸƒแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แžŽแŸ’แžแžถแž‰แžšแž”แžŸแŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแžขแžถแž…แž‘แž‘แžฝแž›แž”แžถแž“แžŠแŸ„แž™แž”แŸ’แžšแžพแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸˆ

ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2

แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜, Vrnetlab แž”แž„แŸ’แž€แžพแžแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž“แŸ…แž›แžพแžšแŸ‰แŸ„แžแž‘แŸแžš vrnetlab/VR-netlab9.
แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แž‡แžถแž˜แžฝแž™ ssh:

ubuntu:~$ ssh [email protected]
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
ECDSA key fingerprint is SHA256:g9Sfg/k5qGBTOX96WiCWyoJJO9FxjzXYspRoDPv+C0Y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
Password:
--- JUNOS 20.1R1.11 Kernel 64-bit  JNPR-11.0-20200219.fb120e7_buil
vrnetlab> show version
Model: vmx
Junos: 20.1R1.11

แžœแžถแž”แž‰แŸ’แž…แž”แŸ‹แž€แžถแžšแžŠแŸ†แžกแžพแž„แžšแŸ‰แŸ„แžแž‘แŸแžšแŸ”

แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžขแŸ†แž–แžธแž€แžถแžšแžŠแŸ†แžกแžพแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž›แž€แŸ‹แž•แŸ’แžŸแŸแž„แŸ—แžขแžถแž…แžšแž€แž”แžถแž“แž“แŸ… แž‚แž˜แŸ’แžšแŸ„แž„ github แž“แŸ…แž€แŸ’แž“แžปแž„แžแžแžšแŸ€แž„แŸ—แžแŸ’แž›แžฝแž“แŸ”

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 5: Postman - แž—แŸ’แž‡แžถแž”แŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแž‘แŸ… OpenDaylight

แž€แžถแžšแžŠแŸ†แžกแžพแž„แž”แŸ’แžšแŸƒแžŸแžŽแžธแž™แŸ

แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžกแžพแž„ แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แž‘แžถแž‰แž™แž€แž€แž˜แŸ’แž˜แžœแžทแž’แžธ แž–แžธแž‘แžธแž“แŸแŸ‡.

แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแž‘แŸ… ODL

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž PUT แžŸแŸ†แžŽแžพแŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. แžŸแŸ’แž“แžพแžŸแžปแŸ†แžšแžถแž„แž€แžถแž™ (แž•แŸ’แž‘แžถแŸ†แž„แžšแžถแž„แž€แžถแž™):
    <node xmlns="urn:TBD:params:xml:ns:yang:network-topology">
    <node-id>jun01</node-id>
    <host xmlns="urn:opendaylight:netconf-node-topology">172.17.0.2</host>
    <port xmlns="urn:opendaylight:netconf-node-topology">22</port>
    <username xmlns="urn:opendaylight:netconf-node-topology">vrnetlab</username>
    <password xmlns="urn:opendaylight:netconf-node-topology">VR-netlab9</password>
    <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>
    <schema-cache-directory xmlns="urn:opendaylight:netconf-node-topology">jun01_cache</schema-cache-directory>
    </node>
  3. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ” แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‘แžถแž˜แž‘แžถแžšแžŠแžพแž˜แŸ’แž”แžธแž…แžผแž›แž”แŸ’แžšแžพ ODLแŸ–
    แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab
  4. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แž”แž‹แž˜แž€แžแžถ แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž”แž“แŸ’แžแŸ‚แž˜แž”แž‹แž˜แž€แžแžถแž–แžธแžšแŸ–
    • แž‘แž‘แžฝแž›แž™แž€แž€แž˜แŸ’แž˜แžœแžทแž’แžธ/xml
    • แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แŸ’แžšแž—แŸแž‘แž˜แžถแžแžทแž€แžถ/xml

แžŸแŸ†แžŽแžพแžšแž”แžŸแŸ‹แž™แžพแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžกแžพแž„แŸ” แž™แžพแž„แž•แŸ’แž‰แžพแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แžœแžธแŸ—แžแŸ’แžšแžผแžœแž”แžถแž“แžแŸ†แžกแžพแž„แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แž“แŸ„แŸ‡แž™แžพแž„แž‚แžฝแžšแžแŸ‚แžแŸ’แžšแžกแž”แŸ‹แžŸแŸ’แžแžถแž“แž—แžถแž– "201 Created"แŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แžแžพแžŸแŸ†แžŽแžพแž“แŸแŸ‡แž’แŸ’แžœแžพแžขแŸ’แžœแžธ?

แž™แžพแž„แž”แž„แŸ’แž€แžพแžแžแŸ’แž“แžถแŸ†แž„แž“แŸ…แžแžถแž„แž€แŸ’แž“แžปแž„ แžขแžผแžŒแžธแžขแžทแž› แž‡แžถแž˜แžฝแž™แž“แžนแž„แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸƒแžšแŸ‰แŸ„แžแž‘แŸแžšแž–แžทแžแž”แŸ’แžšแžถแž€แžŠแžŠแŸ‚แž›แž™แžพแž„แž…แž„แŸ‹แž…แžผแž›แž”แŸ’แžšแžพแŸ”

xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"

แž‘แžถแŸ†แž„แž“แŸแŸ‡แž‚แžบแž‡แžถแž…แž“แŸ’แž›แŸ„แŸ‡แžˆแŸ’แž˜แŸ„แŸ‡แžแžถแž„แž€แŸ’แž“แžปแž„ XML แž˜แžถแž“ (แž…แž“แŸ’แž›แŸ„แŸ‡แžˆแŸ’แž˜แŸ„แŸ‡ XML) แžŸแž˜แŸ’แžšแžถแž”แŸ‹แŸ” แžขแžผแžŒแžธแžขแžทแž› แž“แŸแŸ‡แž”แžพแž™แŸ„แž„แžแžถแž˜แžŠแŸ‚แž›แžœแžถแž”แž„แŸ’แž€แžพแž node แŸ”

แž›แžพแžŸแž–แžธแž“แŸแŸ‡แž‘แŸ€แžแžšแŸ€แž„แž‚แŸ’แž“แžถแžˆแŸ’แž˜แŸ„แŸ‡แžšแŸ‰แŸ„แžแž‘แŸแžšแž‚แžบ node-id, แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แžšแŸ‰แŸ„แžแž‘แŸแžš - แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž แžพแž™แžŠแžผแž…แŸ’แž“แŸแŸ‡แž“แŸ…แž›แžพแŸ”

แžแŸ’แžŸแŸ‚แžŠแŸ‚แž›แž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแž”แŸ†แž•แžปแžแž‚แžบแžแŸ’แžŸแŸ‚แž…แžปแž„แž€แŸ’แžšแŸ„แž™แŸ” แž‚แŸ’แžšแŸ„แž„แž€แžถแžšแžŽแŸ - แžƒแŸ’แž›แžถแŸ†แž„แžŸแž˜แŸ’แž„แžถแžแŸ‹ - แžแž แž”แž„แŸ’แž€แžพแžแžแžแžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แžฏแž€แžŸแžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž‘แžถแž‰แž™แž€ แž‚แŸ’แžšแŸ„แž„แž€แžถแžšแžŽแŸ YANG แžšแŸ‰แŸ„แžแž‘แŸแžšแžŠแŸ‚แž›แž”แžถแž“แž—แŸ’แž‡แžถแž”แŸ‹แŸ” แžขแŸ’แž“แž€แžขแžถแž…แžŸแŸ’แžœแŸ‚แž„แžšแž€แž–แžฝแž€แž‚แŸแž“แŸ…แž€แŸ’แž“แžปแž„ $ODL_ROOT/cache/jun01_cache.

แž–แžทแž“แžทแžแŸ’แž™แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžš

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แž™แžพแž„แž•แŸ’แž‰แžพแŸ” แž‚แžฝแžšแžแŸ‚แž‘แž‘แžฝแž›แž”แžถแž“แžŸแŸ’แžแžถแž“แž—แžถแž– "200 แž™แž›แŸ‹แž–แŸ’แžšแž˜" แž“แžทแž„แž”แž‰แŸ’แž‡แžธแž“แŸƒแž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ„แž™แžงแž”แž€แžšแžŽแŸ แž‚แŸ’แžšแŸ„แž„แž€แžถแžšแžŽแŸ YANG:

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž€แžถแžšแžขแžแŸ’แžแžถแž’แžทแž”แŸ’แž”แžถแž™แŸ– แžŠแžพแž˜แŸ’แž”แžธแž˜แžพแž›แžšแžฟแž„แž€แŸ’แžšแŸ„แž™ แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ† แž…แžถแŸ†แž”แžถแž…แŸ‹แžแŸ’แžšแžผแžœแžšแž„แŸ‹แž…แžถแŸ†แž”แŸ’แžšแž แŸ‚แž› 10 แž“แžถแž‘แžธแž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžท PUTแžšแž แžผแžแžŠแž›แŸ‹แž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ” แž‚แŸ’แžšแŸ„แž„แž€แžถแžšแžŽแŸ YANG แžŠแŸ„แŸ‡แž…แŸแž‰แž“แŸ…แž›แžพ แžขแžผแžŒแžธแžขแžทแž›. แžŠแž›แŸ‹โ€‹แž…แŸ†แžŽแžปแž…โ€‹แž“แŸแŸ‡ แž–แŸแž›โ€‹แžŸแž˜แŸ’แžแŸ‚แž„โ€‹แžšแžฟแž„โ€‹แž แŸ’แž“แžนแž„ แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžฝแžšแž“แžนแž„แž”แž„แŸ’แž แžถแž‰แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž›แžปแž”แžšแŸ‰แŸ„แžแž‘แŸแžš

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž แž›แžปแž” แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 6: แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžšแŸ‰แŸ„แžแž‘แŸแžš

แž€แžถแžšแž‘แž‘แžฝแž›แž”แžถแž“แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แž™แžพแž„แž•แŸ’แž‰แžพแŸ” แž‚แžฝแžšแžแŸ‚แž‘แž‘แžฝแž›แž”แžถแž“แžŸแŸ’แžแžถแž“แž—แžถแž– "200 OK" แž“แžทแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžšแŸ‰แŸ„แžแž‘แŸแžš:

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’

แž‡แžถแžงแž‘แžถแž แžšแžŽแŸ แž…แžผแžšแž™แžพแž„แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžแžถแž„แž€แŸ’แžšแŸ„แž˜ แž แžพแž™แž€แŸ‚แž”แŸ’แžšแŸ‚แžœแžถแŸ–

protocols {
    bgp {
        disable;
        shutdown;
    }
}

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž POST แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
  2. แžŸแŸ’แž“แžพแžŸแžปแŸ†แžšแžถแž„แž€แžถแž™ (แž•แŸ’แž‘แžถแŸ†แž„แžšแžถแž„แž€แžถแž™):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”
  4. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แž”แž‹แž˜แž€แžแžถ แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž”แž“แŸ’แžแŸ‚แž˜แž”แž‹แž˜แž€แžแžถแž–แžธแžšแŸ–
    • แž‘แž‘แžฝแž›แž™แž€แž€แž˜แŸ’แž˜แžœแžทแž’แžธ/xml
    • แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แŸ’แžšแž—แŸแž‘แž˜แžถแžแžทแž€แžถ/xml

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž•แŸ’แž‰แžพ แž–แžฝแž€แž‚แŸแž‚แžฝแžšแžแŸ‚แž‘แž‘แžฝแž›แž”แžถแž“แžŸแŸ’แžแžถแž“แž—แžถแž– "204 แž‚แŸ’แž˜แžถแž“แžแŸ’แž›แžนแž˜แžŸแžถแžš"

แžŠแžพแž˜แŸ’แž”แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž”แžถแž“แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžš แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแžŸแŸ†แžŽแžฝแžšแž–แžธแž˜แžปแž“แŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž‡แžถแžงแž‘แžถแž แžšแžŽแŸ แž™แžพแž„แž“แžนแž„แž”แž„แŸ’แž€แžพแžแž˜แžฝแž™แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŠแŸ‚แž›แž“แžนแž„แž”แž„แŸ’แž แžถแž‰แž–แŸแžแŸŒแž˜แžถแž“แžแŸ‚แžขแŸ†แž–แžธแž–แžทแž’แžธแž€แžถแžšแžŠแŸ‚แž›แž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸ…แž›แžพแžšแŸ‰แŸ„แžแž‘แŸแžšแž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แŸ”

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžขแž“แžปแžœแžแŸ’แžแžŸแŸ†แžŽแžพ แž™แžพแž„แž“แžนแž„แžƒแžพแž‰แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’

แžแŸ„แŸ‡แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแž–แžทแž’แžธแž€แžถแžš BGP แŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžšแž”แžŸแŸ‹แž™แžพแž„ แžœแžถแž“แžนแž„แž˜แžพแž›แž‘แŸ…แžŠแžผแž…แž“แŸแŸ‡แŸ–

protocols {
    bgp {
        disable;
    }
}

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž PUT แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
  2. แžŸแŸ’แž“แžพแžŸแžปแŸ†แžšแžถแž„แž€แžถแž™ (แž•แŸ’แž‘แžถแŸ†แž„แžšแžถแž„แž€แžถแž™):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”
  4. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แž”แž‹แž˜แž€แžแžถ แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž”แž“แŸ’แžแŸ‚แž˜แž”แž‹แž˜แž€แžแžถแž–แžธแžšแŸ–
    • แž‘แž‘แžฝแž›แž™แž€แž€แž˜แŸ’แž˜แžœแžทแž’แžธ/xml
    • แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แŸ’แžšแž—แŸแž‘แž˜แžถแžแžทแž€แžถ/xml

แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž˜แžปแž“แŸ” แž‘แž‘แžฝแž›แž”แžถแž“ แž€แžถแžšแžŸแŸ’แž“แžพแžŸแžปแŸ† แž™แžพแž„แžƒแžพแž‰แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž›แžปแž”แž€แžถแžšแž€แŸ†แžŽแžแŸ‹

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž แž›แžปแž” แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แž“แŸ…แž–แŸแž›แž‚แŸแž แŸ… แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ’แž“แžพแžŸแžปแŸ†แž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแž–แžทแž’แžธแž€แžถแžš แž™แžพแž„แž“แžนแž„แžƒแžพแž‰แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž”แž“แŸ’แžแŸ‚แž˜แŸ–

แžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ แžœแžถแž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแž•แŸ’แž‰แžพแžแžฝแžŸแŸ†แžŽแžพแž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹แž“แŸ„แŸ‡แž‘แŸแŸ” XML แž˜แžถแž“. แž“แŸแŸ‡แž€แŸแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแž“แŸ…แž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹ JSON.

แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŠแžผแž…แž“แŸแŸ‡แžงแž‘แžถแž แžšแžŽแŸแž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžฝแžš PUT แžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹ แžŸแžผแž˜แž‡แŸ†แž“แžฝแžŸแž•แŸ’แž“แŸ‚แž€แžŸแŸ†แžŽแžพแžŠแŸ„แž™แŸ–

{
    "junos-conf-protocols:protocols": {
        "bgp": {
            "description" : "Changed in postman" 
        }
    }
}

แž€แžปแŸ†แž—แŸ’แž›แŸแž…แž”แŸ’แžแžผแžšแž”แž‹แž˜แž€แžแžถแž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แž”แž‹แž˜แž€แžแžถแž‘แŸ…แŸ–

  • แž‘แž‘แžฝแž›แž™แž€แž€แž˜แŸ’แž˜แžœแžทแž’แžธ/json
  • แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แŸ’แžšแž—แŸแž‘แž˜แžถแžแžทแž€แžถ / json

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž•แŸ’แž‰แžพแžšแžฝแž… แž™แžพแž„แž“แžนแž„แž‘แž‘แžฝแž›แž”แžถแž“แž›แž‘แŸ’แž’แž•แž›แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜ (แž™แžพแž„แž˜แžพแž›แž…แž˜แŸ’แž›แžพแž™แžŠแŸ„แž™แž”แŸ’แžšแžพ แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžพ):

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž•แŸ’แž“แŸ‚แž€แž‘แžธ 7: แž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜ Cisco xRV9000

แžแžพแž™แžพแž„แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‚แŸ’แž“แžถแž˜แžถแž“แžขแŸ’แžœแžธแžขแŸ†แž–แžธ Juniper แž”แžถแž‘ Juniper? แžแŸ„แŸ‡แž“แžทแž™แžถแž™แž–แžธ Cisco!
แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžšแž€แžƒแžพแž‰ xRV9000 แž€แŸ†แžŽแŸ‚ 7.0.2 (แžŸแžแŸ’แžœแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžš RAM 8Gb แž“แžทแž„ 4 coresแŸ” แžœแžถแž˜แžทแž“แž˜แžถแž“แžŠแŸ„แž™แžŸแŸแžšแžธแž‘แŸ แžŠแžผแž…แŸ’แž“แŸแŸ‡แžŸแžผแž˜แž‘แžถแž€แŸ‹แž‘แž„ แžŸแŸŠแžธแžŸแŸ’แž€แžผ) - แžแŸ„แŸ‡แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžœแžถแŸ”

แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžปแž„แžแžบแž“แŸแžš

แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸƒแž€แžถแžšแž”แž„แŸ’แž€แžพแž Docker container แž‚แžบแž˜แžทแž“แžแžปแžŸแž–แžธ Juniper แž‘แŸแŸ” แžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž“แŸแŸ‡แžŠแŸ‚แžš แž™แžพแž„แž‘แž˜แŸ’แž›แžถแž€แŸ‹แžฏแž€แžŸแžถแžš .qcow2 แž‡แžถแž˜แžฝแž™แžšแŸ‰แŸ„แžแž‘แŸแžšแž‘แŸ…แž€แŸ’แž“แžปแž„แžแžแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž“แžนแž„แžˆแŸ’แž˜แŸ„แŸ‡แžšแž”แžŸแŸ‹แžœแžถ (แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแž“แŸแŸ‡ xrv9k) แž แžพแž™แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ make docker-image.

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž–แžธแžšแž”แžธแž“แžถแž‘แžธแž™แžพแž„แžƒแžพแž‰แžแžถแžšแžผแž”แž—แžถแž–แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„:

ubuntu:~$ sudo docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
vrnetlab/vr-xrv9k   7.0.2               54debc7973fc        4 hours ago         1.7GB
vrnetlab/vr-vmx     20.1R1.11           b1b2369b453c        4 weeks ago         4.43GB
debian              stretch             614bb74b620e        7 weeks ago         101MB

แž™แžพแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž’แžปแž„แŸ–

ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž˜แžฝแž™แžšแž™แŸˆ, แž™แžพแž„แž˜แžพแž›แž‘แŸ…แžแžถแž’แžปแž„แž”แžถแž“แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜:

ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                 PORTS                                                      NAMES
058c5ecddae3        54debc7973fc        "/launch.py"        4 hours ago         Up 4 hours (healthy)   22/tcp, 830/tcp, 5000-5003/tcp, 10000-10099/tcp, 161/udp   xrv01

แž—แŸ’แž‡แžถแž”แŸ‹แžแžถแž˜แžšแž™แŸˆ ssh:

ubuntu@ubuntu:~$ ssh [email protected]
Password:

RP/0/RP0/CPU0:ios#show version
Mon Jul  6 12:19:28.036 UTC
Cisco IOS XR Software, Version 7.0.2
Copyright (c) 2013-2020 by Cisco Systems, Inc.

Build Information:
 Built By     : ahoang
 Built On     : Fri Mar 13 22:27:54 PDT 2020
 Built Host   : iox-ucs-029
 Workspace    : /auto/srcarchive15/prod/7.0.2/xrv9k/ws
 Version      : 7.0.2
 Location     : /opt/cisco/XR/packages/
 Label        : 7.0.2

cisco IOS-XRv 9000 () processor
System uptime is 3 hours 22 minutes

แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แžšแŸ‰แŸ„แžแž‘แŸแžšแž‘แŸ… OpenDaylight

แž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜แž€แžพแžแžกแžพแž„แžแžถแž˜แžšแž”แŸ€แž”แžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž‘แžถแŸ†แž„แžŸแŸ’แžšแžปแž„แž‡แžถแž˜แžฝแž™ vMX แŸ” แž™แžพแž„แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แžแŸ’แžšแžผแžœแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžˆแŸ’แž˜แŸ„แŸ‡แŸ”
PUT แžŸแŸ†แžŽแžพแŸ–
แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž แŸ…แž‘แžผแžšแžŸแŸแž–แŸ’แž‘แž‘แŸ…แž˜แžฝแž™แžšแž™แŸˆ แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžฝแžšแžŠแžพแž˜แŸ’แž”แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแžขแŸ’แžœแžธแž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž—แŸ’แž‡แžถแž”แŸ‹:
แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’

แžแŸ„แŸ‡โ€‹แžšแŸ€แž”แž…แŸ†โ€‹แž€แžถแžšโ€‹แž€แŸ†แžŽแžแŸ‹โ€‹แžŠแžผแž…โ€‹แžแžถแž„โ€‹แž€แŸ’แžšแŸ„แž˜แŸ–

!
router ospf LAB
 mpls ldp auto-config
!

แžแŸ„แŸ‡แž”แž„แŸ’แž€แžพแž POST แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
  2. แžŸแŸ’แž“แžพแžŸแžปแŸ†แžšแžถแž„แž€แžถแž™ (แž•แŸ’แž‘แžถแŸ†แž„แžšแžถแž„แž€แžถแž™):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”
  4. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แž”แž‹แž˜แž€แžแžถ แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž”แž“แŸ’แžแŸ‚แž˜แž”แž‹แž˜แž€แžแžถแž–แžธแžšแŸ–
    • แž‘แž‘แžฝแž›แž™แž€แž€แž˜แŸ’แž˜แžœแžทแž’แžธ/json
    • แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แŸ’แžšแž—แŸแž‘แž˜แžถแžแžทแž€แžถ / json

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžšแž”แžŸแŸ‹แžœแžถ แž–แžฝแž€แž‚แŸแž‚แžฝแžšแžแŸ‚แž‘แž‘แžฝแž›แž”แžถแž“แžŸแŸ’แžแžถแž“แž—แžถแž– "204 No Content"แŸ”

แžŸแžผแž˜แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžขแŸ’แžœแžธแžŠแŸ‚แž›แž™แžพแž„แž‘แž‘แžฝแž›แž”แžถแž“แŸ”
แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŠแžผแž…แž“แŸแŸ‡แž™แžพแž„แž“แžนแž„แž”แž„แŸ’แž€แžพแž แž‘แž‘แžฝแž›แž”แžถแž“ แžŸแŸ†แžŽแžพแŸ–

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แž”แž“แŸ’แž‘แžถแž”แŸ‹โ€‹แž–แžธโ€‹แž€แžถแžšโ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทโ€‹แžขแŸ’แž“แž€โ€‹แž‚แžฝแžšโ€‹แžแŸ‚โ€‹แž˜แžพแž›โ€‹แžƒแžพแž‰โ€‹แžŠแžผแž…โ€‹แžแžถแž„โ€‹แž€แŸ’แžšแŸ„แž˜โ€‹:

แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰ แžฌแžšแž”แŸ€แž”แž”แž„แŸ’แž€แžพแžแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแž“แžทแž˜แŸ’แž˜แžทแžแžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight, Postman แž“แžทแž„ Vrnetlab

แžŠแžพแž˜แŸ’แž”แžธแž›แžปแž”แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แŸ’แžšแžพ แž›แžปแž”:

  1. แžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŸแŸ†แžŽแžฝแžšแŸ–
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
  2. แž“แŸ…แž›แžพแž•แŸ’แž‘แžถแŸ†แž„แžขแž“แžปแž‰แŸ’แž‰แžถแž แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแžแŸ‚แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžš Basic Auth แž แžพแž™แž…แžผแž›/แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แŸ– admin/adminแŸ”

แžŸแŸแž…แž€แŸ’แžแžธแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“

แžŸแžšแžปแž”แž˜แž€ แžŠแžผแž…แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž”แžถแž“แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹ แž“แžธแžแžทแžœแžทแž’แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แŸ’แž‡แžถแž”แŸ‹ Cisco แž“แžทแž„ Juniper แž‘แŸ… OpenDaylight แž˜แžทแž“แžแžปแžŸแž‚แŸ’แž“แžถแž‘แŸ - แžœแžถแž”แžพแž€แž‘แžผแž›แžถแž™แžŠแž›แŸ‹แž€แžถแžšแž…แŸ’แž“แŸƒแž”แŸ’แžšแžŒแžทแžแŸ” แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž–แžธแž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸƒแžŸแž˜แžถแžŸแž—แžถแž‚แž”แžŽแŸ’แžแžถแž‰แž‘แžถแŸ†แž„แžขแžŸแŸ‹ แž“แžทแž„แž”แž‰แŸ’แž…แž”แŸ‹แžŠแŸ„แž™แž€แžถแžšแž”แž„แŸ’แž€แžพแžแž‚แŸ„แž›แž€แžถแžšแžŽแŸแž”แžŽแŸ’แžแžถแž‰แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ”
แž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸแžšแŸ€แž“แž“แŸแŸ‡ แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž•แŸ’แžแž›แŸ‹แž“แžผแžœแžงแž‘แžถแž แžšแžŽแŸแžŠแŸแžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแžแžขแŸ†แž–แžธแžšแž”แŸ€แž”แžŠแŸ‚แž›แžขแŸ’แž“แž€แžขแžถแž…แž’แŸ’แžœแžพแžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™แžงแž”แž€แžšแžŽแŸแž”แžŽแŸ’แžแžถแž‰แžŠแŸ„แž™แž”แŸ’แžšแžพ OpenDaylight แŸ” แžŠแŸ„แž™แž‚แŸ’แž˜แžถแž“แž€แžถแžšแžŸแž„แŸ’แžŸแŸแž™ แžŸแŸ†แžŽแžฝแžšแž–แžธแžงแž‘แžถแž แžšแžŽแŸแžแžถแž„แž›แžพแžขแžถแž…แž˜แžถแž“แž—แžถแž–แžŸแŸ’แž˜แžปแž‚แŸ’แžšแžŸแŸ’แž˜แžถแž‰ แž“แžทแž„แžšแŸ€แž”แž…แŸ†แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž‘แžถแŸ†แž„แž˜แžผแž›แžŠแŸ„แž™แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แž…แžปแž…แž€แžŽแŸ’แžŠแžปแžšแž˜แžฝแž™ - แžขแŸ’แžœแžธแž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžแŸ’แžšแžนแž˜แžแŸ‚แž€แžถแžšแžŸแŸ’แžšแž˜แžพแž›แžŸแŸ’แžšแž˜แŸƒแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡ *

แž“แŸ…โ€‹แž˜แžถแž“โ€‹แž‡แžถโ€‹แž”แž“แŸ’แžโ€‹แž‘แŸ€แžโ€ฆ

PS

แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แžŠแžนแž„แžขแŸ’แžœแžธแŸ—แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸแŸ‡แžšแžฝแž…แž แžพแž™ แžฌแž•แŸ’แž‘แžปแž™แž‘แŸ…แžœแžทแž‰แž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹ แž“แžทแž„แž›แžทแž…แž…แžผแž›แž‘แŸ…แž€แŸ’แž“แžปแž„แž–แŸ’แžšแž›แžนแž„แžšแž”แžŸแŸ‹ ODL แž“แŸ„แŸ‡แžแŸ’แž‰แžปแŸ†แžŸแžผแž˜แžŽแŸ‚แž“แžถแŸ†แžฑแŸ’แž™แžšแž€แž˜แžพแž›แž€แžถแžšแž”แž„แŸ’แž€แžพแžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž“แŸ…แž›แžพแžงแž”แž€แžšแžŽแŸแž”แž‰แŸ’แž‡แžถ ODL แŸ” แžขแŸ’แž“แž€แžขแžถแž…แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แž–แžธแž‘แžธแž“แŸแŸ‡.

แž€แžถแžšแž–แžทแžŸแŸ„แž’แž“แŸแž‡แŸ„แž‚แž‡แŸแž™!

แžฏแž€แžŸแžถแžšแž™แŸ„แž„

  1. VrnetlabแŸ– แžแŸ’แžšแžถแž”แŸ‹แžแžถแž˜แž”แžŽแŸ’แžแžถแž‰แžŠแŸ„แž™แž”แŸ’แžšแžพ KVM แž“แžทแž„ Docker / Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แžŽแŸ’แžแžถแž‰แž‡แžถแž˜แžฝแž™ YANG / Benoรฎt Claise, Loe Clarke, Jan Lindblad
  4. แž€แžถแžšแžšแŸ€แž“ XML แž€แžถแžšแž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž–แž›แžพแž€แž‘แžธแž–แžธแžš / Erik T. Ray
  5. แž˜แžถแž“แž”แŸ’แžšแžŸแžทแž‘แŸ’แž’แž—แžถแž– DevOps / Jennifer Davis, Ryn Daniels

แž”แŸ’แžšแž—แž–: www.habr.com

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹