示例#1
0
def config_bgp(bgp):
    """Add config data to bgp object."""
    # global configuration
    bgp.global_.config.as_ = 65001
    afi_safi = bgp.global_.afi_safis.AfiSafi()
    afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.enabled = True
    bgp.global_.afi_safis.afi_safi.append(afi_safi)

    # configure IBGP peer group
    peer_group = bgp.peer_groups.PeerGroup()
    peer_group.peer_group_name = "IBGP"
    peer_group.config.peer_group_name = "IBGP"
    peer_group.config.peer_as = 65001
    peer_group.transport.config.local_address = "Loopback0"
    afi_safi = peer_group.afi_safis.AfiSafi()
    afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.enabled = True
    peer_group.afi_safis.afi_safi.append(afi_safi)
    bgp.peer_groups.peer_group.append(peer_group)

    # configure IBGP neighbor
    neighbor = bgp.neighbors.Neighbor()
    neighbor.neighbor_address = "172.16.255.2"
    neighbor.config.neighbor_address = "172.16.255.2"
    neighbor.config.peer_group = "IBGP"
    bgp.neighbors.neighbor.append(neighbor)
def config_bgp(bgp):
    """Add config data to bgp object."""
    # global configuration
    bgp.global_.config.as_ = 65001
    v4_afi_safi = bgp.global_.afi_safis.AfiSafi()
    v4_afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    v4_afi_safi.config.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    v4_afi_safi.config.enabled = True
    bgp.global_.afi_safis.afi_safi.append(v4_afi_safi)

    # configure IBGP peer group
    ibgp_pg = bgp.peer_groups.PeerGroup()
    ibgp_pg.peer_group_name = "IBGP"
    ibgp_pg.config.peer_group_name = "IBGP"
    ibgp_pg.config.peer_as = 65001
    ibgp_pg.transport.config.local_address = "Loopback0"
    v4_afi_safi = ibgp_pg.afi_safis.AfiSafi()
    v4_afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    v4_afi_safi.config.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    v4_afi_safi.config.enabled = True
    ibgp_pg.afi_safis.afi_safi.append(v4_afi_safi)
    bgp.peer_groups.peer_group.append(ibgp_pg)

    # configure IBGP neighbor
    ibgp_nbr = bgp.neighbors.Neighbor()
    ibgp_nbr.neighbor_address = "172.16.255.2"
    ibgp_nbr.config.neighbor_address = "172.16.255.2"
    ibgp_nbr.config.peer_group = "IBGP"
    bgp.neighbors.neighbor.append(ibgp_nbr)
示例#3
0
def config_bgp(bgp, local_as, nbr_address, nbr_as):
    """Add config data to bgp object."""
    # configure global bgp
    bgp.global_.config.as_ = local_as
    afi_safi = bgp.global_.afi_safis.AfiSafi()
    afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.enabled = True
    bgp.global_.afi_safis.afi_safi.append(afi_safi)

    # configure EBGP peer group
    peer_group = bgp.peer_groups.PeerGroup()
    peer_group.peer_group_name = "EBGP"
    peer_group.config.peer_group_name = "EBGP"
    afi_safi = peer_group.afi_safis.AfiSafi()
    afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.enabled = True
    afi_safi.apply_policy.config.import_policy.append("ROUTE-POLICY")
    afi_safi.apply_policy.config.export_policy.append("ROUTE-POLICY")
    peer_group.afi_safis.afi_safi.append(afi_safi)
    bgp.peer_groups.peer_group.append(peer_group)

    # configure EBGP neighbor
    neighbor = bgp.neighbors.Neighbor()
    neighbor.neighbor_address = nbr_address
    neighbor.config.neighbor_address = nbr_address
    neighbor.config.peer_as = nbr_as
    neighbor.config.peer_group = "EBGP"
    bgp.neighbors.neighbor.append(neighbor)
def config_bgp(bgp,global_as,router_id,peer_group_name,remote_as,remote_peer):
    
"""Add config data to bgp object."""
    # global configuration
    bgp.global_.config.as_ = global_as
    bgp.global_.config.router_id = router_id
    afi_safi = bgp.global_.afi_safis.AfiSafi()
    afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.enabled = True
    bgp.global_.afi_safis.afi_safi.append(afi_safi)
    afi_safi.config.enabled = True
    # configure IBGP peer group
    peer_group = bgp.peer_groups.PeerGroup()
    peer_group.peer_group_name = peer_group_name
    peer_group.config.peer_group_name = peer_group_name
    peer_group.config.peer_as = remote_as
    afi_safi = peer_group.afi_safis.AfiSafi()
    afi_safi.afi_safi_name = oc_bgp_types.Ipv4UnicastIdentity()
    afi_safi.config.enabled = True
    peer_group.afi_safis.afi_safi.append(afi_safi)
    bgp.peer_groups.peer_group.append(peer_group)
    # configure IBGP neighbor
    neighbor = bgp.neighbors.Neighbor()
    neighbor.neighbor_address = remote_peer
    neighbor.config.neighbor_address = remote_peer
    neighbor.config.peer_group = peer_group_name
    bgp.neighbors.neighbor.append(neighbor)
示例#5
0
def _get_bgp_config():
    bgp_cfg = openconfig_bgp.Bgp()

    bgp_cfg.global_.config.as_ = 65001

    ipv4_afsf = bgp_cfg.global_.afi_safis.AfiSafi()
    ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
    ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
    ipv4_afsf.config.enabled = True

    ipv6_afsf = bgp_cfg.global_.afi_safis.AfiSafi()
    ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
    ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
    ipv6_afsf.config.enabled = True

    bgp_cfg.global_.afi_safis.afi_safi.append(ipv4_afsf)
    bgp_cfg.global_.afi_safis.afi_safi.append(ipv6_afsf)
    # Global config done

    # IPv4 Neighbor instance config
    nbr_ipv4 = bgp_cfg.neighbors.Neighbor()
    nbr_ipv4.neighbor_address = '192.168.1.1'
    nbr_ipv4.config.neighbor_address = '192.168.1.1'
    nbr_ipv4.config.peer_as = 65002

    nbr_ipv4_afsf = nbr_ipv4.afi_safis.AfiSafi()
    nbr_ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
    nbr_ipv4_afsf.config.peer_as = 65002
    nbr_ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity(
    )
    nbr_ipv4_afsf.config.enabled = True

    # Create afi-safi policy instances
    nbr_ipv4.afi_safis.afi_safi.append(nbr_ipv4_afsf)

    bgp_cfg.neighbors.neighbor.append(nbr_ipv4)
    nbr_ipv4.parent = bgp_cfg.neighbors

    return bgp_cfg
示例#6
0
def bgp_run(crud_service, session):

    # Global config
    bgp_cfg = openconfig_bgp.Bgp()

    try:
        crud_service.delete(session, bgp_cfg)
    except Exception:
        print('BGP config does not exist!')

    #set up routing policy definition
    routing_policy = RoutingPolicy()

    #first delete
    try:
        crud_service.delete(session, routing_policy)
    except YPYError:
        print('Routing policy does not exist!')

    pass_all_policy_defn = RoutingPolicy.PolicyDefinitions.PolicyDefinition()
    pass_all_policy_defn.name = 'PASS-ALL'

    routing_policy.policy_definitions.policy_definition.append(
        pass_all_policy_defn)
    pass_all_policy_defn._parent = routing_policy.policy_definitions

    bgp_cfg.global_.config.as_ = 65001

    ipv4_afsf = bgp_cfg.global_.afi_safis.AfiSafi()
    ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
    ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
    ipv4_afsf.config.enabled = True

    ipv6_afsf = bgp_cfg.global_.afi_safis.AfiSafi()
    ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
    ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
    ipv6_afsf.config.enabled = True

    bgp_cfg.global_.afi_safis.afi_safi.append(ipv4_afsf)
    bgp_cfg.global_.afi_safis.afi_safi.append(ipv6_afsf)
    # Global config done

    # IPv4 Neighbor instance config
    nbr_ipv4 = bgp_cfg.neighbors.Neighbor()
    nbr_ipv4.neighbor_address = '192.168.1.1'
    nbr_ipv4.config.neighbor_address = '192.168.1.1'
    nbr_ipv4.config.peer_as = 65002

    nbr_ipv4_afsf = nbr_ipv4.afi_safis.AfiSafi()
    nbr_ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
    nbr_ipv4_afsf.config.peer_as = 65002
    nbr_ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity(
    )
    nbr_ipv4_afsf.config.enabled = True

    # Create afi-safi policy instances
    nbr_ipv4_afsf.apply_policy.config.import_policy.append('PASS-ALL')

    nbr_ipv4_afsf.apply_policy.config.export_policy.append('PASS-ALL')

    nbr_ipv4.afi_safis.afi_safi.append(nbr_ipv4_afsf)

    bgp_cfg.neighbors.neighbor.append(nbr_ipv4)
    nbr_ipv4.parent = bgp_cfg.neighbors

    # IPv4 Neighbor instance config done

    crud_service.create(session, bgp_cfg)
    #    crud_service.create(session, routing_policy)

    bgp_cfg_read = crud_service.read(session, bgp.Bgp())

    #crud on just the neighbor

    # IPv6 Neighbor instance config
    nbr_ipv6 = bgp.Bgp.Neighbors.Neighbor()
    #nbr_ipv6.parent = bgp_cfg.neighbors
    nbr_ipv6.neighbor_address = '2001:db8:fff1::1'
    nbr_ipv6.config.neighbor_address = '2001:db8:fff1::1'
    nbr_ipv6.config.peer_as = 65002

    nbr_ipv6_afsf = nbr_ipv6.afi_safis.AfiSafi()
    nbr_ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
    nbr_ipv6_afsf.config.peer_as = 65002
    nbr_ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity(
    )
    nbr_ipv6_afsf.config.enabled = True

    # Create afi-safi policy instances
    nbr_ipv6_afsf.apply_policy.config.import_policy.append('PASS-ALL')

    nbr_ipv6_afsf.apply_policy.config.export_policy.append('PASS-ALL')

    nbr_ipv6.afi_safis.afi_safi.append(nbr_ipv6_afsf)

    crud_service.create(session, nbr_ipv6)

    #now delete nbr_ipv4
    crud_service.delete(session, nbr_ipv4)

    nbr_ipv6_filter = bgp.Bgp.Neighbors.Neighbor()
    nbr_ipv6_filter.neighbor_address = '2001:db8:fff1::1'

    nbr_ipv6_read = crud_service.read(session, nbr_ipv6_filter)

    # help(nbr_ipv6_read)
    print(nbr_ipv6_read)