Skip to content

Latest commit

 

History

History
2641 lines (1502 loc) · 57.6 KB

REFERENCE.md

File metadata and controls

2641 lines (1502 loc) · 57.6 KB

Reference

Table of Contents

Classes

Public Classes

Private Classes

  • quagga::bgp::config
  • quagga::bgp::service
  • quagga::ospf::config
  • quagga::ospf::service
  • quagga::pim::config
  • quagga::pim::service
  • quagga::zebra::config
  • quagga::zebra::service

Defined types

Public Defined types

Private Defined types

  • quagga::bgp::peer: wrapper for quagga_bgp_peer and quagga_bgp_peer_address_family

Resource types

  • quagga_access_list: This type provides the capability to manage BGP community-list within puppet. Examples: quagga_access_list {'1': ensure => present,
  • quagga_bgp_address_family: This type provides capabilities to manage Quagga bgp address family parameters. Examples: quagga_bgp_address_family { 'ipv4_unicast':
  • quagga_bgp_as_path: This type provides the capabilities to manage BGP as-path access-list within puppet. Examples: quagga_bgp_as_path { 'as100':
  • quagga_bgp_community_list: This type provides the capability to manage BGP community-list within puppet. Examples: quagga_bgp_community_list { '100': en
  • quagga_bgp_peer: This type provides the capability to manage bgp neighbor within puppet. Examples: quagga_bgp_peer { '192.168.1.1': ensure
  • quagga_bgp_peer_address_family: This type provides capabilities to manage Quagga bgp address family parameters. Examples: quagga_bgp_peer_address_family { '192.168.0
  • quagga_bgp_router: This type provides the capability to manage bgp parameters within puppet. Examples: quagga_bgp_router { 'bgp': ensure
  • quagga_global: This type provides the capabilities to manage the router
  • quagga_interface: This type provides the capabilities to manage Quagga interface parameters
  • quagga_logging: This type provides the capabilities to manage logging within puppet. Examples: quagga_logging { 'file': file_name => '/tmp/quagga.err
  • quagga_ospf_area: This type provides the capabilities to manage ospf area within puppet. Examples: ospf_area { '0.0.0.0': auth =>
  • quagga_ospf_area_range: This type provides the capabilities to manage ospf area range within puppet. Examples: ospf_area_name { '0.0.0.0 10.0.0.0/24':
  • quagga_ospf_interface: This type provides the capabilities to manage Quagga interface OSPF parameters.
  • quagga_ospf_router: This type provides the capabilities to manage ospf router within puppet. Examples: quagga_ospf_router { 'ospf': ensure => pre
  • quagga_pim_interface: This type provides the capabilities to manage Quagga pim interface parameters
  • quagga_pim_router: This type provides the capabilities to manage the PIM router
  • quagga_prefix_list: This type provides the capability to manage prefix-lists within puppet. Example: ```puppet quagga_prefix_list { 'TEST_PREFIX_LIST 10': en
  • quagga_route_map: This type provides the capability to manage route-map within puppet. Example: route_map {'TEST_ROUTE_MAP 10': ensure => pre
  • quagga_static_route: This type provides the capability to manage static routes within puppet. Example: quagga_static_route {'172.16.2.0/24': ensure

Data types

Classes

quagga

Manages common option of quagga services

Parameters

The following parameters are available in the quagga class:

default_owner

Data type: String

Specifies the default owner of quagga files.

default_group

Data type: String

Specifies the default group of quagga files.

default_mode

Data type: String

Specifies the default mode of quagga files.

default_content

Data type: String

Specifies the default content of quagga files.

service_file

Data type: String

The system configuration file on the filesyustem

service_file_manage

Data type: Boolean

Enable or disable management of the system configuration file

packages

Data type: Hash

Specifies which packages will be installed

config_dir

Data type: Stdlib::AbsolutePath

Directory in which the quagga configuration files reside

Default value: '/etc/quagga'

frr_mode_enable

Data type: Boolean

Indicates whether this is a quagga or FRRouting based system

Default value: false

pim_settings

Data type: Quagga::Pim

Hash containing all of the pim daemon configuration directives

ospf_settings

Data type: Quagga::Ospf

Hash containing all of the ospf daemon configuration directives

bgp_settings

Data type: Quagga::Bgp

Hash containing all of the bgp daemon configuration directives

zebra_settings

Data type: Quagga::Zebra

Hash containing all of the zebra daemon configuration directives

quagga::bgp

This class is automatically included when you include the main quagga class. However, it has a number of parameters that can be set via hiera.

  • See also
    • quagga_bgp_router
    • quagga::bgp::peer
    • quagga_bgp_as_path
    • quagga_bgp_community_list
    • quagga_bgp_address_family

Parameters

The following parameters are available in the quagga::bgp class:

agentx

Data type: Boolean

Enable SNMP integration

config_file

Data type: Stdlib::Unixpath

Path to the quagga configuration file for BGP

Default value: "${quagga::config_dir}/bgpd.conf"

config_file_manage

Data type: Boolean

If true, manage the existence of the $config_file

service_name

Data type: String

System service name for quagga bgpd

service_enable

Data type: Boolean

Manages the state of the service at boot

service_manage

Data type: Boolean

If true, manages the state of the BGP daemon and the SNMP agentx

service_ensure

Data type: Enum['running', 'stopped']

Ensures the service is either stopped or running.

service_opts

Data type: String

Options for the BGP service

router

Data type: Hash

Parameters for the router process.

peers

Data type: Hash

BGP Peers.

as_paths

Data type: Hash

AS Path rules.

community_lists

Data type: Hash

BGP Community list options.

address_families

Data type: Hash

BGP Address family options.

frr_mode_enable

Data type: Boolean

quagga::logging

Logging

Parameters

The following parameters are available in the quagga::logging class:

backend

Data type: Variant[ Enum['monitor', 'stdout', 'syslog'], Pattern[/\Afile\s(\/\S+)+\Z/] ]

The quagga logging backend.

filename

Data type: Optional[Stdlib::Absolutepath]

If the backend is set to file, use this file as the output

level

Data type: Enum['alerts','critical','debugging','emergencies','errors','informational','notifications','warnings']

The log level

quagga::ospf

Manage the Quagga OSPF daemon

  • See also
    • quagga_ospf_router
    • quagga_ospf_area
      • @param interfaces OSPF parameters of interfaces.
    • quagga_ospf_interface

Parameters

The following parameters are available in the quagga::ospf class:

agentx

Data type: Boolean

Manage the AgentX integration

config_file

Data type: Stdlib::Unixpath

configuration file of the OSPF service.

Default value: "${quagga::config_dir}/ospfd.conf"

config_file_manage

Data type: Boolean

Manage the configuration file content

service_ensure

Data type: Enum['running', 'stopped']

Controls whether the service is stopped or running.

service_name

Data type: String

the name of the OSPF service

service_enable

Data type: Boolean

Enable the OSPF service

service_manage

Data type: Boolean

Enable management of the OSPF service

service_opts

Data type: String

Service start options

router

Data type: Hash

OSPF router options.

areas

Data type: Hash

OSPF area options.

frr_mode_enable

Data type: Boolean

interfaces

Data type: Hash

quagga::pim

Manage Quagga Protocol Independent Multicasting (PIM)

Parameters

The following parameters are available in the quagga::pim class:

agentx

Data type: Boolean

manage the SNMP agentx for PIM

config_file

Data type: Stdlib::Unixpath

configuration file of the PIM servie

Default value: "${quagga::config_dir}/pimd.conf"

config_file_manage

Data type: Boolean

enable management of the PIM service setting file.

service_name

Data type: String

the name of the PIM service.

service_enable

Data type: Boolean

enable the PIM service.

service_manage

Data type: Boolean

enable management of the PIM service.

service_ensure

Data type: Enum['running', 'stopped']

the state of the PIM Service.

service_opts

Data type: String

service start options.

router

Data type: Hash

PIM router options. See the type quagga_pim_router.

interfaces

Data type: Hash

OSPF parameters of interfaces. See the type quagga_pim_interface.

frr_mode_enable

Data type: Boolean

quagga::zebra

manage the main zebra process

Parameters

The following parameters are available in the quagga::zebra class:

agentx

Data type: Boolean

Manage SNMP agentx processes for the main quagga zebra process

hostname

Data type: String

Router's hostname

global_opts

Data type: Hash

Global options for all daemons

interfaces

Data type: Hash

Global network interface parameters

prefix_lists

Data type: Hash

Create prefix lists

route_maps

Data type: Hash

Create route-map entries

routes

Data type: Hash

Define static routes

access_lists

Data type: Hash

Define access lists to use elsewhere in quagga config

config_file

Data type: Stdlib::Unixpath

The main configuration file name

Default value: "${quagga::config_dir}/zebra.conf"

config_file_manage

Data type: Boolean

Manage the content of the configuration file

service_name

Data type: String

the main zebra service name

service_enable

Data type: Boolean

enable the service

service_manage

Data type: Boolean

manage the service state

service_ensure

Data type: Enum['running', 'stopped']

manage the actual service state of stopped or running

service_opts

Data type: String

service startup options

frr_mode_enable

Data type: Boolean

Defined types

quagga::ospf::area

configure an OSPF area

  • See also
    • quagga_ospf_area
    • quagga_ospf_area_range

Parameters

The following parameters are available in the quagga::ospf::area defined type:

ensure

Data type: Enum['absent', 'present']

Manage the presence of the area

Default value: 'present'

auth

Data type: Variant[Boolean, Enum['message-digest']]

Enable authentication on the area

Default value: false

stub

Data type: Variant[Boolean, Enum['no-summary']]

Configure stub or stub no-summary properties on the area

Default value: false

access_list_export

Data type: Optional[String[1]]

Access list to use for OSPF area export

Default value: undef

access_list_import

Data type: Optional[String[1]]

Access list to use for OSPF area import

Default value: undef

prefix_list_export

Data type: Optional[String[1]]

Prefix list to use for OSPF area export

Default value: undef

prefix_list_import

Data type: Optional[String[1]]

Prefix list to use for OSPF area import

Default value: undef

networks

Data type: Array[String[1]]

Networks that belong to an area. Note that with Quagga, the area must match the network for an interface exactly. A short mask of /16 won't include all of the /17s and longer below it.

Default value: []

ranges

Data type: Hash

Consolidate announcements to a larger block based on network ranges.

Default value: {}

quagga::prefix_list

manage a Quagga prefix list

  • See also
    • quagga_prefix_list

Parameters

The following parameters are available in the quagga::prefix_list defined type:

rules

Data type: Hash

Prefix list definition

Default value: {}

quagga::route_map

Manage a quagga route-map

  • See also
    • quagga_route_map

Parameters

The following parameters are available in the quagga::route_map defined type:

rules

Data type: Hash

the route-map definition

Default value: {}

Resource types

quagga_access_list

This type provides the capability to manage BGP community-list within puppet.

Examples:

quagga_access_list {'1': ensure => present, remark => 'IP standard access list', rules => [ 'deny 10.0.0.128 0.0.0.127', 'deny 10.0.101.193', 'permit 10.0.0.0 0.0.255.255', 'permit 192.168.10.1'. 'deny any' ] } quagga_access_list {'100': ensure => present, remark => 'IP extended access-list', rules => [ 'deny ip host 10.0.1.100 any', 'permit ip 10.0.1.0 0.0.0.255 any', 'deny ip any any' ] } quagga_access_list {'a_word': ensure => present, remark => 'IP zebra access-list', rules => [ 'deny 192.168.0.0/23',, 'permit 192.168.0.0/16', 'deny any', ] }

Properties

The following properties are available in the quagga_access_list type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

remark

Specifies the remark for this access-list.

rules

Permits and denies for this rule.

Default value: []

Parameters

The following parameters are available in the quagga_access_list type.

name

Valid values: %r{\A(1|\d{2}|1[3-9]\d{2})\Z}, %r{\A(1\d{2}|2[0-6]\d{2})\Z}, %r{\A[\w-]+\Z}

namevar

The number of this access list.

provider

The specific backend to use for this quagga_access_list resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_bgp_address_family

This type provides capabilities to manage Quagga bgp address family parameters.

Examples:

quagga_bgp_address_family { 'ipv4_unicast':
  aggregate_address  => '192.168.0.0/24 summary-only',
  maximum_ebgp_paths => 2,
  maximum_ibgp_paths => 2,
  networks           => ['192.168.0.0/24', '172.16.0.0/24',],
}

Properties

The following properties are available in the quagga_bgp_address_family type.

aggregate_address

Valid values: %r{\A(\d+\.\d+\.\d+\.\d+/\d+)(\sas-set)?(\ssummary-only)?\Z}, %r{\A([\h:/]+)(\ssummary-only)?\Z}

Configure BGP aggregate entries.

Default value: []

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

maximum_ebgp_paths

Valid values: %r{\A\d+\Z}

Forward packets over multiple paths.

Default value: 1

maximum_ibgp_paths

Valid values: %r{\A\d+\Z}

Forward packets over multiple paths.

Default value: 1

networks

Valid values: %r{\A[\h\.:]+/\d+\Z}

Specify a network to announce via BGP.

Default value: []

redistribute

Valid values: %r{\A(babel|connected|isis|kernel|ospf|rip|static)(\smetric\s\d+)?(\sroute-map\s\w+)?\Z}

Redistribute information from another routing protocol.

Default value: []

Parameters

The following parameters are available in the quagga_bgp_address_family type.

name

Valid values: %r{\Aipv4_(unicast|multicast)\Z}, %r{\Aipv6_unicast\Z}

namevar

The Address family.

provider

The specific backend to use for this quagga_bgp_address_family resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_bgp_as_path

This type provides the capabilities to manage BGP as-path access-list within puppet.

Examples:

quagga_bgp_as_path { 'as100':
    ensure => present,
    rules => [
        'permit _100$',
        'permit _100_',
    ],
}

Properties

The following properties are available in the quagga_bgp_as_path type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

rules

Valid values: %r{\A(permit|deny)\s\^?[_,\d\.\\\*\+\-\[\]\(\)\{\}\|\?]+\$?\Z}

Set actions of this ap-path list.

Parameters

The following parameters are available in the quagga_bgp_as_path type.

name

Valid values: %r{\A\w+\Z}

namevar

The name of the as-path access-list.

provider

The specific backend to use for this quagga_bgp_as_path resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_bgp_community_list

This type provides the capability to manage BGP community-list within puppet.

Examples:

quagga_bgp_community_list { '100':
    ensure => present,
    rules  => [
        'permit 65000:50952',
        'permit 65000:31500',
    ],
}

Properties

The following properties are available in the quagga_bgp_community_list type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

rules

Valid values: %r{\A(deny|permit)\s\^?[_,\d\.\\\*\+\-\[\]\(\)\{\}\|\?:]+\$?\Z}

Set actions of this community list.

Parameters

The following parameters are available in the quagga_bgp_community_list type.

name

Valid values: %r{^\d+$}

namevar

Community list number.

provider

The specific backend to use for this quagga_bgp_community_list resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_bgp_peer

This type provides the capability to manage bgp neighbor within puppet.

Examples:

quagga_bgp_peer { '192.168.1.1':
    ensure     => present,
    peer_group => 'internal_peers',
    password  => 'QWRF$345!

Properties

The following properties are available in the quagga_bgp_peer type.

ebgp_multihop

Number of allowed hops to remote BGP peer

Default value: absent

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

local_as

Specify a local-as number.

Default value: absent

passive

Valid values: false, true

Don't send open messages to this neighbor.

Default value: false

password

Set a password

Default value: absent

peer_group

Valid values: false, true, %r{\A[[:alpha:]]\w+\Z}

Member of the peer-group.

remote_as

Specify a BGP neighbor AS.

Default value: absent

shutdown

Valid values: false, true

Administratively shut down this neighbor.

Default value: false

update_source

Valid values: absent, %r{\A#{block}\.#{block}\.#{block}\.#{block}\Z}, %r{\A\h+:[\h:]+\Z}, %r{\A#{interface}\Z}

Source of routing updates.

Default value: absent

Parameters

The following parameters are available in the quagga_bgp_peer type.

name

Valid values: %r{\A(\d{,2}|1\d{2}|2[0-4]\d|25[0-5])\.(\d{,2}|1\d{2}|2[0-4]\d|25[0-5])\.(\d{,2}|1\d{2}|2[0-4]\d|25[0-5])\.(\d{,2}|1\d{2}|2[0-4]\d|25[0-5])\Z}, %r{\A[\h:]+\Z}, %r{\A\w+\Z}

namevar

The neighbor IP address or a peer-group name.

provider

The specific backend to use for this quagga_bgp_peer resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_bgp_peer_address_family

This type provides capabilities to manage Quagga bgp address family parameters.

Examples:

quagga_bgp_peer_address_family { '192.168.0.2 ipv4_unicast':
    peer_group             => PEER_GROUP,
    activate               => true,
    allow_as_in            => 1,
    default_originate      => true,
    maximum_prefix         => 500000,
    next_hop_self          => true,
    prefix_list_in         => PREFIX_LIST,
    prefix_list_out        => PREFIX_LIST,
    remove_private_as      => true,
    route_map_export       => ROUTE_MAP,
    route_map_import       => ROUTE_MAP,
    route_map_in           => ROUTE_MAP,
    route_map_out          => ROUTE_MAP,
    route_reflector_client => false,
    route_server_client    => false,
    send_community         => 'both',
    soft_reconfiguration   => 'inbound',
}

Properties

The following properties are available in the quagga_bgp_peer_address_family type.

activate

Valid values: false, true

Enable the Address Family for this Neighbor.

Default value: false

allow_as_in

Accept as-path with my AS present in it.

Default value: absent

default_originate

Valid values: false, true

Originate default route to this neighbor.

Default value: false

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

next_hop_self

Valid values: false, true

Disable the next hop calculation for this neighbor.

Default value: false

peer_group

Valid values: false, true, %r{\A[[:alpha:]]\w+\Z}

Member of the peer-group.

prefix_list_in

Valid values: absent, %r{\A[[:alpha:]][\w-]+\Z}

Filter updates from this neighbor.

Default value: absent

prefix_list_out

Valid values: absent, %r{\A[[:alpha:]][\w-]+\Z}

Filter updates to this neighbor.

Default value: absent

route_map_export

Valid values: absent, %r{\A[[:alpha:]][\w-]+\Z}

Apply map to routes coming from a Route-Server client.

Default value: absent

route_map_import

Valid values: absent, %r{\A[[:alpha:]][\w-]+\Z}

Apply map to routes going into a Route-Server client's table.

Default value: absent

route_map_in

Valid values: absent, %r{\A[[:alpha:]][\w-]+\Z}

Apply map to incoming routes.

Default value: absent

route_map_out

Valid values: absent, %r{\A[[:alpha:]][\w-]+\Z}

Apply map to outbound routes.

Default value: absent

route_reflector_client

Valid values: false, true

Configure a neighbor as Route Reflector client.

Default value: false

route_server_client

Valid values: false, true

Configure a neighbor as Route Server client.

Default value: false

Parameters

The following parameters are available in the quagga_bgp_peer_address_family type.

name

Valid values: %r{\A[\d\.]+\sipv4_(unicast|multicast)\Z}, %r{\A[\h:]+\sipv6_unicast\Z}, %r{\A\w+\sipv4_(unicast|multicast)\Z}, %r{\A\w+\sipv6_unicast\Z}

namevar

Contains a bgp peer name and an address family.

provider

The specific backend to use for this quagga_bgp_peer_address_family resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_bgp_router

This type provides the capability to manage bgp parameters within puppet.

Examples:

quagga_bgp_router { 'bgp':
    ensure                   => present,
    as_number                => 65000,
    import_check             => true,
    default_ipv4_unicast     => false,
    default_local_preference => 100,
    router_id                => '192.168.1.1',
    keepalive                => 3,
    holdtime                 => 9,
}

Properties

The following properties are available in the quagga_bgp_router type.

as_number

The AS number.

default_ipv4_unicast

Valid values: false, true

Activate ipv4-unicast for a peer by default.

Default value: false

default_local_preference

Default local preference.

Default value: 100

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

holdtime

Default BGP holdtime.

Default value: 9

import_check

Valid values: false, true

Check BGP network route exists in IGP.

Default value: false

keepalive

Default BGP keepalive interval.

Default value: 3

router_id

Valid values: re

Override configured router identifier.

Parameters

The following parameters are available in the quagga_bgp_router type.

name

namevar

BGP router instance.

provider

The specific backend to use for this quagga_bgp_router resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_global

This type provides the capabilities to manage the router

Properties

The following properties are available in the quagga_global type.

enable_password

Set enable password.

Default value: absent

ip_forwarding

Valid values: true, false

Enable IP forwarding.

Default value: false

ipv6_forwarding

Valid values: true, false

Enable IPv6 forwarding.

Default value: false

line_vty

Valid values: true, false

Enter vty configuration mode.

Default value: true

password

Set password for vty interface. If there is no password, a vty won't accept connections.

Default value: absent

service_password_encryption

Valid values: true, false

Encrypt passwords.

Default value: false

Parameters

The following parameters are available in the quagga_global type.

hostname

Router hostname.

provider

The specific backend to use for this quagga_global resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_interface

This type provides the capabilities to manage Quagga interface parameters

Properties

The following properties are available in the quagga_interface type.

bandwidth

Set bandwidth value of the interface in kilobits/sec.

Default value: absent

description

Interface description.

Default value: absent

enable

Valid values: true, false

Whether the interface should be enabled or not.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

ip_address

The IP address.

Default value: []

link_detect

Valid values: true, false

Enable link state detection.

Default value: false

Parameters

The following parameters are available in the quagga_interface type.

name

namevar

The network interface name

provider

The specific backend to use for this quagga_interface resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_logging

This type provides the capabilities to manage logging within puppet.

Examples:

quagga_logging { 'file': file_name => '/tmp/quagga.errors.log', level => 'debugging, }

quagga_logging { 'syslog': facility => 'local7', level => 'warnings', }

Properties

The following properties are available in the quagga_logging type.

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

filename

Specifies the filename for file messages.

level

Valid values: alerts, critical, debugging, emergencies, errors, informational, notifications, warnings

Specifies the logging level. The values are:

  • alerts
  • critical
  • debugging
  • emergencies
  • errors
  • informational
  • notifications
  • warnings

Parameters

The following parameters are available in the quagga_logging type.

name

Valid values: file, monitor, stdout, syslog

namevar

Specifies a backend name of the logging system. The values are:

  • file /path/to/file
  • monitor
  • stdout
  • syslog
provider

The specific backend to use for this quagga_logging resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_ospf_area

This type provides the capabilities to manage ospf area within puppet.

Examples:

ospf_area { '0.0.0.0':
    auth               => true,
    stub               => true,
    access_list_export => 'ACCESS_LIST_EXPORT',
    access_list_import => 'ACCESS_LIST_IPMORT',
    prefix_list_export => 'PREFIX_LIST_EXPORT',
    prefix_list_import => 'PREFIX_LIST_IMPORT',
    networks           => [ '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16' ],
}

Properties

The following properties are available in the quagga_ospf_area type.

access_list_export

Valid values: %r{\A[[:alpha:]][\w-]+\Z}, absent

Set the filter for networks announced to other areas.

Default value: absent

access_list_import

Valid values: %r{\A[[:alpha:]][\w-]+\Z}, absent

Set the filter for networks from other areas announced to the specified one.

Default value: absent

auth

Valid values: false, true, message-digest

OSPF authentication.

Default value: false

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

networks

Enable routing on an IP network.

Default value: []

prefix_list_export

Valid values: %r{\A[[:alpha:]][\w-]+\Z}, absent

Filter networks sent from this area.

Default value: absent

prefix_list_import

Valid values: %r{\A[[:alpha:]][\w-]+\Z}, absent

Filter networks sent to this area.

Default value: absent

stub

Valid values: false, true, no-summary

Configure the OSPF area to be a stub area.

Default value: false

Parameters

The following parameters are available in the quagga_ospf_area type.

name

Valid values: re

namevar

OSPF area, ex. 0.0.0.0.

provider

The specific backend to use for this quagga_ospf_area resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_ospf_area_range

This type provides the capabilities to manage ospf area range within puppet.

Examples:

ospf_area_name { '0.0.0.0 10.0.0.0/24':
  cost       => 100,
  advertise  => true,
  substitute => '10.0.0.0/8',
}

Properties

The following properties are available in the quagga_ospf_area_range type.

cost

User specified metric for this range

Default value: absent

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

substitute

Valid values: %r{\A#{block}\.#{block}\.#{block}\.#{block}/(?:[1-2]?[0-9]|3[0-2])\Z}

Network prefix to be announced instead of range

Parameters

The following parameters are available in the quagga_ospf_area_range type.

advertise

Valid values: false, true

Advertise this range. Defaults to true

Default value: true

name

Valid values: %r{\A#{block}\.#{block}\.#{block}\.#{block}\s#{block}\.#{block}\.#{block}\.#{block}/(?:[1-2]?[0-9]|3[0-2])\Z}

namevar

Contains an OSPF area id and CIDR, ex. '0.0.0.0 10.0.0.0/24'

provider

The specific backend to use for this quagga_ospf_area_range resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_ospf_interface

This type provides the capabilities to manage Quagga interface OSPF parameters.

Properties

The following properties are available in the quagga_ospf_interface type.

auth

Valid values: absent, message-digest

Interface OSPF authentication.

Default value: absent

cost

Interface OSPF cost.

Default value: absent

dead_interval

Interval after which an OSPF neighbor is declared dead.

Default value: 40

hello_interval

HELLO packets interval between OSPF neighbours.

Default value: 10

message_digest_key

Valid values: absent, %r{\d+\smd5\s\S{1,16}}

Set OSPF authentication key to a cryptographic password. The cryptographic algorithm is MD5.

Default value: absent

mtu_ignore

Valid values: true, false

Disable OSPF mtu mismatch detection.

Default value: false

network

Valid values: absent, broadcast, non-broadcast, point-to-multipoint, point-to-point, loopback

OSPF network type

Default value: absent

priority

Router OSPF priority.

Default value: 1

retransmit_interval

Time between retransmitting lost OSPF link state advertisements.

Default value: 5

transmit_delay

Link state transmit delay.

Default value: 1

Parameters

The following parameters are available in the quagga_ospf_interface type.

name

namevar

The network interface name

provider

The specific backend to use for this quagga_ospf_interface resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_ospf_router

This type provides the capabilities to manage ospf router within puppet.

Examples:

quagga_ospf_router { 'ospf':
    ensure => present,
    redistribute => [
      'connected route-map QWER',
      'kernel',
    ],
    router_id => '10.0.0.1',
}

Properties

The following properties are available in the quagga_ospf_router type.

abr_type

Valid values: cisco, ibm, shortcut, standard

Set OSPF ABR type.

Default value: cisco

default_originate

Valid values: true, false, %r{\Aalways(\smetric\s\d+)?(\smetric-type\s[1-2])?(\sroute-map\s\w+)?\Z}

Control distribution of default information.

Default value: false

distribute_list

Valid values: %r{\A\w+\sout\s(babel|bgp|connected|isis|kernel|rip|static)\Z}

Filter networks in routing updates.

Default value: []

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

log_adjacency_changes

Valid values: true, false, detail

Log changes in adjacency.

Default value: false

opaque

Valid values: true, false

Enable the Opaque-LSA capability (rfc2370).

Default value: false

passive_interfaces

Valid values: %r{\A(default|[[:alpha:]]+\w+(?:\s\d+\.\d+\.\d+\.\d+)?)\Z}

Suppress routing updates on interfaces.

Default value: []

redistribute

Valid values: %r{\A(babel|bgp|connected|isis|kernel|rip|static)(\smetric\s\d+)?(\smetric-type\s[1-2])?(\sroute-map\s\w+)?\Z}

Redistribute information from another routing protocol.

Default value: []

rfc1583

Valid values: true, false

Enable the RFC1583Compatibility flag.

Default value: false

router_id

Valid values: absent, re

OSPF process router id

Default value: absent

Parameters

The following parameters are available in the quagga_ospf_router type.

name

namevar

OSPF router instance.

provider

The specific backend to use for this quagga_ospf_router resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_pim_interface

This type provides the capabilities to manage Quagga pim interface parameters

Properties

The following properties are available in the quagga_pim_interface type.

igmp

Valid values: true, false

Enable IGMP.

Default value: false

igmp_query_interval

IGMP query interval.

Default value: 125

igmp_query_max_response_time_dsec

IGMP maximum query response time in deciseconds.

Default value: 100

multicast

Valid values: true, false

Enable multicast flag for the interface.

Default value: false

pim_ssm

Valid values: true, false

Enable PIM SSM operation.

Default value: false

Parameters

The following parameters are available in the quagga_pim_interface type.

name

namevar

The network interface name

provider

The specific backend to use for this quagga_pim_interface resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_pim_router

This type provides the capabilities to manage the PIM router

Properties

The following properties are available in the quagga_pim_router type.

ip_multicast_routing

Valid values: true, false

Enable IP multicast forwarding.

Default value: false

Parameters

The following parameters are available in the quagga_pim_router type.

name

namevar

PIM router instance.

provider

The specific backend to use for this quagga_pim_router resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_prefix_list

This type provides the capability to manage prefix-lists within puppet.

Example:

quagga_prefix_list { 'TEST_PREFIX_LIST 10':
  ensure      => present,
  action      => permit,
  ge          => 8,
  le          => 24,
  prefix      => '224.0.0.0/4',
  proto       => 'ip',
}

Properties

The following properties are available in the quagga_prefix_list type.

action

Valid values: deny, permit

The action of this rule.

Default value: permit

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

ge

Minimum prefix length to be matched.

Default value: absent

le

Maximum prefix length to be matched.

Default value: absent

prefix

Valid values: %r{\A([\h\.:/]+|any)\Z}

The IP prefix <network>/<length>.

proto

Valid values: ip, ipv6

The IP protocol version.

Parameters

The following parameters are available in the quagga_prefix_list type.

name

Valid values: %r{\A[\w-]+\s\d+\Z}

namevar

The name of the prefix-list.

provider

The specific backend to use for this quagga_prefix_list resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_route_map

This type provides the capability to manage route-map within puppet.

Example:

route_map {'TEST_ROUTE_MAP 10':
    ensure   => present,
    action   => 'permit',
    match    => [
        'as-path PATH_LIST',
        'community COMMUNITY_LIST',
    ],
    on_match => 'next',
    set      => [
        'local-preference 200',
        'community none',
    ],
}

Properties

The following properties are available in the quagga_route_map type.

action

Valid values: deny, permit

The route-map action.

Default value: permit

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

match

Valid values: %r{\Aas-path\s(\w+)\Z}, %r{\Acommunity\s(\w+)(\s(exact-match))?\Z}, %r{\Aextcommunity\s(\w+)\Z}, %r{\Ainterface\s(\w[\w\.:]+)\Z}, %r{\Aip\s(address|next-hop|route-source)\s(\d+)\Z}, %r{\Aip\s(address|next-hop|route-source)\s(\w[\w-]+)\Z}, %r{\Aip\s(address|next-hop|route-source)\sprefix-list\s(\w[\w-]+)\Z}, %r{\Aipv6\s(address|next-hop)\s(\w[\w-]+)\Z}, %r{\Aipv6\s(address|next-hop)\sprefix-list\s(\w[\w-]+)\Z}, %r{\Alocal-preference\s(\d+)\Z}, %r{\Ametric\s(\d+)\Z}, %r{\Aorigin\s(egp|igp|incomplete)\Z}, %r{\Apeer\s(\d+\.\d+\.\d+\.\d+)\Z}, %r{\Apeer\s([\d:]+)\Z}, %r{\Apeer\slocal\Z}, %r{\Aprobability\s(\d+)\Z}, %r{\Atag\s(\d+)\Z}

Match values from routing table.

Default value: []

on_match

Valid values: absent, %r{\Agoto\s(\d+)\Z}, %r{\Anext\Z}

Exit policy on matches.

Default value: absent

set

Valid values: %r{\Aaggregator\sas\s(\d+)\Z}, %r{\Aas-path\sexclude(\s(\d+))+\Z}, %r{\Aas-path\sprepend(\s(\d+))+\Z}, %r{\Aas-path\sprepend\slast-as\s(\d+)\Z}, %r{\Aatomic-aggregate\Z}, %r{\Acomm-list\s(\d+|\w[\w-]+)\sdelete\Z}, %r{\Acommunity(\s(\d+:\d+))+(\sadditive)?\Z}, %r{\Acommunity\snone\Z}, %r{\Aforwarding-address\s([\d:]+)\Z}, %r{\Aip\snext-hop\s((\d+\.\d+\.\d+\.\d+)|peer-address)\Z}, %r{\Aipv6\snext-hop\s(global|local)\s([\d:]+)\Z}, %r{\Aipv6\snext-hop\speer-address\Z}, %r{\Alocal-preference\s(\d+)\Z}, %r{\Ametric\s(\+|-)?(rtt|\d+)\Z}, %r{\Ametric-type\stype-(1|2)\Z}, %r{\Aorigin\s(egp|igp|incomplete)\Z}, %r{\Aoriginator-id\s(\d+\.\d+\.\d+\.\d+)\Z}, %r{\Asrc\s(\d+\.\d+\.\d+\.\d+)\Z}, %r{\Atag\s(\d+)\Z}, %r{\Avpn4\snext-hop\s(\d+\.\d+\.\d+\.\d+)\Z}, %r{\Aweight\s(\d+)\Z}

Set values in destination routing protocol.

Default value: []

Parameters

The following parameters are available in the quagga_route_map type.

name

Valid values: %r{\A[[:alpha:]][\w-]+\s\d+\Z}

namevar

Contains a name and a sequence of the route-map.

provider

The specific backend to use for this quagga_route_map resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

quagga_static_route

This type provides the capability to manage static routes within puppet.

Example:

quagga_static_route {'172.16.2.0/24':
  ensure      => present,
  hexthop     => '192.168.1.10',
  distance    => 10,
}

quagga_static_route {'172.16.3.0/24':
  ensure      => present,
  hexthop     => 'null0',
  distance    => 10,
}

Properties

The following properties are available in the quagga_static_route type.

distance

Specifies the distance value for this route.

Default value: absent

ensure

Valid values: present, absent

The basic property that the resource should be in.

Default value: present

option

Valid values: absent, blackhole, reject

Sets reject or blackhole for this route.

Default value: absent

Parameters

The following parameters are available in the quagga_static_route type.

nexthop

Specifies IP or the interface name of the nexthop router.

Default value: Null0

prefix

IP destination prefix.

provider

The specific backend to use for this quagga_static_route resource. You will seldom need to specify this --- Puppet will usually discover the appropriate provider for your platform.

Data types

Quagga::Bgp

The Quagga::Bgp data type.

  • See also
    • quagga_bgp_router
    • quagga::bgp::peer
    • quagga_bgp_as_path
    • quagga_bgp_community_list
    • quagga_bgp_address_family

Alias of

Struct[=>]

Parameters

The following parameters are available in the Quagga::Bgp data type:

agentx

Enable SNMP integration

config_file

Path to the quagga configuration file for BGP

config_file_manage

If true, manage the existence of the $config_file

service_name

System service name for quagga bgpd

service_enable

Manages the state of the service at boot

service_manage

If true, manages the state of the BGP daemon and the SNMP agentx

service_ensure

Ensures the service is either stopped or running.

service_opts

Options for the BGP service

router

Parameters for the router process.

peers

BGP Peers.

as_paths

AS Path rules.

community_lists

BGP Community list options.

address_families

BGP Address family options.

Quagga::BgpPeerAddressFamily

Address family specific settings for BGP peers

  • See also
    • quagga_bgp_peer_address_family

Alias of

Struct[=>]

Quagga::Ospf

The Quagga::Ospf data type.

  • See also
    • quagga_ospf_router
    • quagga_ospf_area
    • quagga_ospf_interface

Alias of

Struct[=>]

Parameters

The following parameters are available in the Quagga::Ospf data type:

agentx

Manage the AgentX integration

config_file

configuration file of the OSPF service.

config_file_manage

Manage the configuration file content

service_ensure

Controls whether the service is stopped or running.

service_name

the name of the OSPF service

service_enable

Enable the OSPF service

service_manage

Enable management of the OSPF service

service_opts

Service start options

router

OSPF router options.

areas

OSPF area options.

interfaces

OSPF parameters of interfaces.

Quagga::OspfRouter

The Quagga::OspfRouter data type.

Alias of

Struct[=>]

Quagga::Pim

The Quagga::Pim data type.

Alias of

Struct[=>]

Parameters

The following parameters are available in the Quagga::Pim data type:

agentx

manage the SNMP agentx for PIM

config_file_manage

enable management of the PIM service setting file.

service_name

the name of the PIM service.

service_enable

enable the PIM service.

service_manage

enable management of the PIM service.

service_ensure

the state of the PIM Service.

service_opts

service start options.

router

PIM router options. See the type quagga_pim_router.

interfaces

OSPF parameters of interfaces. See the type quagga_pim_interface.

Quagga::Zebra

The Quagga::Zebra data type.

Alias of

Struct[=>]

Parameters

The following parameters are available in the Quagga::Zebra data type:

agentx

Manage SNMP agentx processes for the main quagga zebra process

hostname

Router's hostname

global_opts

Global options for all daemons

interfaces

Global network interface parameters

prefix_lists

Create prefix lists

route_maps

Create route-map entries

routes

Define static routes

access_lists

Define access lists to use elsewhere in quagga config

config_file

The main configuration file name

config_file_manage

Manage the content of the configuration file

service_name

the main zebra service name

service_enable

enable the service

service_manage

manage the service state

service_ensure

manage the actual service state of stopped or running

service_opts

service startup options