Coder Social home page Coder Social logo

ksator / openconfig-demo-with-juniper-devices Goto Github PK

View Code? Open in Web Editor NEW
58.0 14.0 13.0 3.76 MB

How to configure Juniper devices using configuration data models written in YANG and published on Github by OpenConfig.

License: MIT License

Python 100.00%
openconfig yang ansible junos-automation python pyez netconf travis-ci jinja2 pyang napalm

openconfig-demo-with-juniper-devices's Introduction

Build Status

What to find on this repo:

How to configure Juniper routers using configuration data models written in YANG and published by Openconfig.
It covers various options:

  • Devices Command Line Interface
  • NetConf in an SSH connection
  • Network automation with Ansible
  • Network automation with PyEZ (python library to interact with Junos)

So it also covers how to automate Openconfig on Juniper devices.
It also covers basic usages of YANG tools:

  • pyang
  • pyangbind

Doc:

A presentation is at the root of the repo.
Please visit wiki to get all the details regarding this project.

How to clone this repo:

In order to download both the code and the wiki:

git clone https://github.com/ksator/openconfig-demo-with-juniper-devices.git
git clone https://github.com/ksator/openconfig-demo-with-juniper-devices.wiki.git
ls

openconfig-demo-with-juniper-devices's People

Contributors

ksator avatar ksator2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openconfig-demo-with-juniper-devices's Issues

How to needs a few more details for newbies ...

.... as well as techpubs

This must be really obvious since it's not mentioned anywhere in documentation ... but once openconfig is installed, there is nothing to see. It would be very helpful to point out that a configuration statements must be built with openconfig as well as how to use translation scripts in Junos.

Thanks

I am studying NETCONF and YANG for the first time.

Hi ksator,
I'm shhwang.

I am studying NETCONF and YANG for the first time.
I have a three question.

First, Do I have to add all of these yang module using 'request system yang add module' to Junos device?
'YANG Module(s) :iana-if-type.yang ietf-inet-types.yang ietf-interfaces.yang ietf-yang-types.yang jnx-aug-openconfig-bgp.yang jnx-aug-openconfig-if-ip.yang jnx-aug-openconfig-interfaces.yang jnx-aug-openconfig-lacp.yang jnx-aug-openconfig-lldp.yang jnx-aug-openconfig-mpls.yang jnx-openconfig-dev.yang openconfig-bgp-multiprotocol.yang openconfig-bgp-operational.yang openconfig-bgp-policy.yang openconfig-bgp-types.yang openconfig-bgp.yang openconfig-extensions.yang openconfig-if-aggregate.yang openconfig-if-ethernet.yang openconfig-if-ip-ext.yang openconfig-if-ip.yang openconfig-interfaces.yang openconfig-lacp.yang openconfig-lldp-types.yang openconfig-lldp.yang openconfig-local-routing.yang openconfig-mpls-igp.yang openconfig-mpls-ldp.yang openconfig-mpls-rsvp.yang openconfig-mpls-sr.yang openconfig-mpls-static.yang openconfig-mpls-te.yang openconfig-mpls-types.yang openconfig-mpls.yang openconfig-platform-types.yang openconfig-platform.yang openconfig-policy-types.yang openconfig-rib-bgp-ext.yang openconfig-rib-bgp-types.yang openconfig-rib-bgp.yang openconfig-routing-policy.yang openconfig-terminal-device.yang openconfig-transport-types.yang openconfig-types.yang openconfig-vlan-types.yang openconfig-vlan.yang'

Second, How can I create or get a programs?
' Translation Script(s) :openconfig-bgp.slax openconfig-interface.slax openconfig-local-routing.slax openconfig-mpls.slax openconfig-policy.slax'

Third, Have you used the 'NetConf Browser' created by mg-soft corporation with NETCONF and YANG?

I would be very happy if you answer these questions.
Thanks.

Regards,

Different payloads

Hi,

I am testing different OpenConfig payloads, however I am not sure of the xml namespaces.

eg, in your description of BGP OpenConfig format over ssh, you sent in the payload below:

<rpc>
    <get-config>
        <source><running/></source>
        <filter type="subtree">
            <bgp xmlns="http://openconfig.net/yang/bgp">
            </bgp>
        </filter>
    </get-config>
</rpc>
]]>]]>

Could you share some more examples of the payload, for eg. for interface? Juniper documentation doesn't have a wide coverage of this.

Also could you suggest of a console to communicate with the NETCONF agent on the Juniper device. Eg. something like this https://github.com/OpenNetworkingFoundation/configuration/tree/master/netconf-console

mismatch neighbor address in wiki page

wiki

  1. Openconfig demo using NetConf over SSH.
    Let's use the operation get-config with a filter to retrieve a specific neighbor subtree from the active configuration:
<rpc>
    <get-config>
        <source><running/></source>
        <filter type="subtree">
            <bgp xmlns="http://openconfig.net/yang/bgp">
                <neighbors>
                    <neighbor>
                        <neighbor-address>**10.10.0.2**</neighbor-address>
                    </neighbor>
                </neighbors>
            </bgp>
        </filter>
    </get-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/16.1I0/junos">
<data>
<bgp xmlns="http://openconfig.net/yang/bgp">
    <neighbors>
        <neighbor>
            <neighbor-address>**192.168.1.2**</neighbor-address>
            <config>
                <peer-as>110</peer-as>
                <peer-group>OC</peer-group>
            </config>
        </neighbor>
    </neighbors>
</bgp>
</data>
</rpc-reply>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.