diff --git a/hieradata/nodes/prodnxsr0020.main.unkin.net.yaml b/hieradata/nodes/prodnxsr0020.main.unkin.net.yaml new file mode 100644 index 0000000..d404eb5 --- /dev/null +++ b/hieradata/nodes/prodnxsr0020.main.unkin.net.yaml @@ -0,0 +1,37 @@ +--- +# primary interface is the WAN uplink; pin host identity to the dum0 loopback +networking_loopback0_ip: 198.18.2.160 +networking_loopback1_ip: 198.18.21.160 + +# dns: keep the local dnsmasq resolver +profiles::dns::base::nameservers: + - 127.0.0.1 +profiles::dns::base::search: + - main.unkin.net +profiles::dns::base::primary_interface: dum0 +profiles::dns::updater::deny_ranges: + - 198.18.199.0/24 + - 198.18.200.0/24 + - 10.42.0.0/16 + - 10.43.0.0/16 + - 10.10.12.0/24 # wg0 + - 103.216.190.0/23 # wan uplink +profiles::consul::client::host_addr: "%{hiera('networking_loopback0_ip')}" + +# ssh: keep listening on all addresses +ssh::server::options: + ListenAddress: + - '0.0.0.0' + - '::' + +# frrouting +frrouting::ospfd_router_id: "%{hiera('networking_loopback0_ip')}" +frrouting::ospfd_interfaces: + dum0: + area: 0.0.0.0 + dum1: + area: 0.0.0.0 + bond0.201: + area: 0.0.0.0 +frrouting::ospf_preferred_source_enable: true +frrouting::ospf_preferred_source: "%{hiera('networking_loopback1_ip')}" diff --git a/hieradata/roles/infra/network/router.yaml b/hieradata/roles/infra/network/router.yaml new file mode 100644 index 0000000..91ef40b --- /dev/null +++ b/hieradata/roles/infra/network/router.yaml @@ -0,0 +1,26 @@ +--- +hiera_include: + - frrouting + - exporters::frr_exporter + +# routing +sysctl::base::values: + net.ipv4.ip_forward: + value: '1' + net.ipv4.conf.all.rp_filter: + value: '0' + net.ipv4.conf.default.rp_filter: + value: '0' + +# frrouting +exporters::frr_exporter::enable: true +frrouting::ospfd_redistribute: + - connected +frrouting::daemons: + ospfd: true + +# consul +profiles::consul::client::node_rules: + - resource: service + segment: frr_exporter + disposition: write diff --git a/site/roles/manifests/infra/network/router.pp b/site/roles/manifests/infra/network/router.pp new file mode 100644 index 0000000..3a48da7 --- /dev/null +++ b/site/roles/manifests/infra/network/router.pp @@ -0,0 +1,12 @@ +# roles::infra::network::router +# an ospf router; frr only, interfaces and firewall are managed outside puppet +# +class roles::infra::network::router { + if $facts['firstrun'] { + include profiles::defaults + include profiles::firstrun::init + }else{ + include profiles::defaults + include profiles::base + } +}