aboutsummaryrefslogtreecommitdiff
path: root/rpkid/doc/Configuration
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/doc/Configuration')
-rw-r--r--rpkid/doc/Configuration458
1 files changed, 236 insertions, 222 deletions
diff --git a/rpkid/doc/Configuration b/rpkid/doc/Configuration
index 2b803f87..1fdccb60 100644
--- a/rpkid/doc/Configuration
+++ b/rpkid/doc/Configuration
@@ -1,263 +1,277 @@
-Configuration Guide
- This section describes the configuration file syntax and settings.
- Each of the programs that make up the RPKI tookit can potentially take
- its own configuration file, but for most uses this is unnecessarily
- complicated. The recommended approach is to use a single configuration
- file, and to put all of the parameters that a normal user might need to
- change into a single section of that configuration file, then reference
- these common settings from the program-specific sections of the
- configuration file via macro expansion. The configuration file parser
- supports a limited version of the macro facility used in OpenSSL's
- configuration parser. An expression such as
+****** Configuration Guide ******
-foo = ${bar::baz}
-
- sets foo to the value of the baz variable from section bar. The section
- name ENV is special: it refers to environment variables.
+This section describes the configuration file syntax and settings.
-myrpki.conf
+Each of the programs that make up the RPKI tookit can potentially take its own
+configuration file, but for most uses this is unnecessarily complicated. The
+recommended approach is to use a single configuration file, and to put all of
+the parameters that a normal user might need to change into a single section of
+that configuration file, then reference these common settings from the program-
+specific sections of the configuration file via macro expansion. The
+configuration file parser supports a limited version of the macro facility used
+in OpenSSL's configuration parser. An expression such as
- The default name for the shared configuration file is myrpki.conf.
-[myrpki]
+ foo = ${bar::baz}
- The [myrpki] section of myrpki.conf contains all the parameters that
- you really need to configure.
+sets foo to the value of the baz variable from section bar. The section name
+ENV is special: it refers to environment variables.
-# Handle naming hosted resource-holding entity (<self/>) represented
-# by this myrpki instance. Syntax is an identifier (ASCII letters,
-# digits, hyphen, underscore -- no whitespace, non-ASCII characters,
-# or other punctuation). You need to set this.
-handle = Me
+***** myrpki.conf *****
- Every resource-holding or server-operating entity needs a "handle",
- which is just an identifier by which the entity calls itself. Handles
- do not need to be globally unique, but should be chosen with an eye
- towards debugging operational problems: it's best if you use a handle
- that your parents and children will recognize as being you.
-
-# Names of various files and directories. Don't change these without
-# a good reason.
-
-roa_csv = roas.csv
-prefix_csv = prefixes.csv
-asn_csv = asns.csv
-xml_filename = myrpki.xml
-bpki_resources_directory = bpki/resources
-bpki_servers_directory = bpki/servers
+The default name for the shared configuration file is myrpki.conf.
- The myrpki tool requires filenames for several input data files, the
- "business PKI" databases used to secure CMS and TLS communications, and
- the XML intermediate format that it uses. Rather than hardwiring the
- names into the code, they're configured here. You can change the names
- if you must, but the defaults should be fine in most cases.
-# Whether you want to run your own copy of rpkid (and irdbd). You
-# want this on unless somebody else is hosting rpkid service for you.
+ [myrpki]
-run_rpkid = true
+The [myrpki] section of myrpki.conf contains all the parameters that you really
+need to configure.
-# DNS hostname and server port numbers for rpkid and irdbd, if you're
-# running them. rpkid's server host has to be a publicly reachable
-# name to be useful; irdbd's server host should always be localhost
-# unless you really know what you are doing. Port numbers can be any
-# legal TCP port number that you're not using for something else.
-
-rpkid_server_host = rpkid.example.org
-rpkid_server_port = 4404
-irdbd_server_host = localhost
-irdbd_server_port = 4403
-
- If you're hosting RPKI service for others, or are self-hosting, you
- want this on. If somebody else is running rpkid on your behalf and
- you're just shipping them your myrpki.xml file, you can turn this off.
-
- If you're running rpkid at all, you'll need to set at least the
- rpkid_server_host parameter here. You may be able to use the default
- port numbers, or may need to pick different ones. Unless you plan to
- run irdbd on a different machine from rpkid, you should leave
- irdbd_server_host alone.
-
-# Whether you want to run your own copy of pubd. In general, it's
-# best to use your parent's pubd if you can, to reduce the overall
-# number of publication sites that relying parties need to check, so
-# don't enable this unless you have a good reason.
-
-run_pubd = false
-
-# DNS hostname and server port number for pubd, if you're running it.
-# Hostname has to be a publicly reachable name to be useful, port can
-# be any legal TCP port number that you're not using for something
-# else.
-
-pubd_server_host = pubd.example.org
-pubd_server_port = 4402
-
-# Contact information to include in offers of repository service.
-# This only matters when we're running pubd. This should be a human
-# readable string, perhaps containing an email address or URL.
-
-pubd_contact_info = repo-man@rpki.example.org
-
- The myrpki tool will attempt to negotiate publication service for you
- with whatever publication service your parent is using, if you let it,
- so in most cases you should not need to run pubd unless you need to
- issue certificates for private IP address space or private Autononmous
- System Numbers.
-
- If you do run pubd, you will need to set pubd_server_host. You may also
- need to set pubd_server_port, and you should provide something helpful
- as contact information in pubd_contact_info if you plan to offer
- publication service to your RPKI children, so that grandchildren (or
- descendents even further down the tree) who receive referrals to your
- service will know how to contact you.
-
-# Whether you want to run your very own copy of rootd. Don't enable
-# this unless you really know what you're doing.
-
-run_rootd = false
-
-# Server port number for rootd, if you're running it. This can be any
-# legal TCP port number that you're not using for something else.
-
-rootd_server_port = 4401
-
- You shouldn't run rootd unless you're the root of an RPKI tree. Who
- gets to be the root of the public RPKI tree is a political issue
- outside the scope of this document. For everybody else, the only reason
- for running rootd (other than test purposes) would be to support
- certification of private IP addresses and ASNs. The core tools can do
- this without any problem, but the simplified configuration mechanism
- does not (yet) make this easy to do.
-
-# Root of local directory tree where pubd (and rootd, sigh) should
-# write out published data. You need to configure this, and the
-# configuration should match up with the directory where you point
-# rsyncd. Neither pubd nor rsyncd much cares -where- you tell them to
-# put this stuff, the important thing is that the rsync:// URIs in
-# generated certificates match up with the published objects so that
-# relying parties can find and verify rpkid's published outputs.
-
-publication_base_directory = publication/
-
-# rsyncd module name corresponding to publication_base_directory.
-# This has to match the module you configured into rsyncd.conf.
-# Leave this alone unless you have some need to change it.
-
-publication_rsync_module = rpki
-
-# Hostname and optional port number for rsync:// URIs. In most cases
-# this should just be the same value as pubd_server_host.
-
-publication_rsync_server = ${myrpki::pubd_server_host}
- These parameters control the mapping between the rsync URIs presented
- by rsyncd and the local filesystem on the machine where pubd and rsyncd
- run. Any changes here must also be reflected as changes in rsyncd.conf.
- In most cases you should not change the value of
- publication_rsync_module from the default; since pubd can't (and should
- not) rewrite rsyncd.conf, it's best to use a static rsync module name
- here and let pubd do its work underneath that name. In most cases
- publication_rsync_server should be the same as
- publication_rsync_server, which is what the macro invocation in the
- default setting does. publication_base_directory, like other pathnames
- in myrpki.conf, can be either a relative or absolute pathname; if
- relative, it's interpreted with respect to the directory in which the
- programs in question were started. In this specific case, it's probably
- better to use an absolute pathname, since this pathname must also
- appear in rsyncd.conf.
+ # Handle naming hosted resource-holding entity (<self/>) represented
+ # by this myrpki instance. Syntax is an identifier (ASCII letters,
+ # digits, hyphen, underscore -- no whitespace, non-ASCII characters,
+ # or other punctuation). You need to set this.
-# SQL configuration. You can ignore this if you're not running any of
-# the daemons yourself.
+ handle = Me
-# If you're comfortable with having all of the databases use the same
-# MySQL username and password, set those values here. It's ok to
-# leave the default username alone, but you should use a locally
-# generated password either here or in the individual settings below.
+Every resource-holding or server-operating entity needs a "handle", which is
+just an identifier by which the entity calls itself. Handles do not need to be
+globally unique, but should be chosen with an eye towards debugging operational
+problems: it's best if you use a handle that your parents and children will
+recognize as being you.
-shared_sql_username = rpki
-shared_sql_password = fnord
-# If you want different usernames and passwords for the separate SQL
-# databases, enter those settings here; the shared_sql_* settings are
-# only referenced here, so you can remove them entirely if you're
-# setting everything in this block.
+ # Names of various files and directories. Don't change these without
+ # a good reason.
-rpkid_sql_database = rpkid
-rpkid_sql_username = ${myrpki::shared_sql_username}
-rpkid_sql_password = ${myrpki::shared_sql_password}
+ roa_csv = roas.csv
+ prefix_csv = prefixes.csv
+ asn_csv = asns.csv
+ xml_filename = myrpki.xml
+ bpki_resources_directory = bpki/resources
+ bpki_servers_directory = bpki/servers
-irdbd_sql_database = irdbd
-irdbd_sql_username = ${myrpki::shared_sql_username}
-irdbd_sql_password = ${myrpki::shared_sql_password}
+The myrpki tool requires filenames for several input data files, the "business
+PKI" databases used to secure CMS and TLS communications, and the XML
+intermediate format that it uses. Rather than hardwiring the names into the
+code, they're configured here. You can change the names if you must, but the
+defaults should be fine in most cases.
-pubd_sql_database = pubd
-pubd_sql_username = ${myrpki::shared_sql_username}
-pubd_sql_password = ${myrpki::shared_sql_password}
- These settings control how rpkid, irdbd, and pubd talk to the MySQL
- server. At minimum, each daemon needs its own database; in the simplest
- configuration, the username and password can be shared, which is what
- the macro references in the default configuration does. If for some
- reason you need to set different usernames and passwords for different
- daemons, you can do so by changing the daemon-specific variables.
+ # Whether you want to run your own copy of rpkid (and irdbd). You
+ # want this on unless somebody else is hosting rpkid service for you.
-# Name of OpenSSL binary. You might need to change this if you have
-# no system copy installed, or if the system copy doesn't support CMS.
-# The copy of openssl built by this package should suffice.
+ run_rpkid = true
-openssl = openssl
+ # DNS hostname and server port numbers for rpkid and irdbd, if you're
+ # running them. rpkid's server host has to be a publicly reachable
+ # name to be useful; irdbd's server host should always be localhost
+ # unless you really know what you are doing. Port numbers can be any
+ # legal TCP port number that you're not using for something else.
- The myrpki tool uses the openssl command line tool for most of its BPKI
- operations, for two reasons:
+ rpkid_server_host = rpkid.example.org
+ rpkid_server_port = 4404
+ irdbd_server_host = localhost
+ irdbd_server_port = 4403
- * To avoid duplicating CA-management functionality already provided
- by the command line tool, and
+If you're hosting RPKI service for others, or are self-hosting, you want this
+on. If somebody else is running rpkid on your behalf and you're just shipping
+them your myrpki.xml file, you can turn this off.
- * To ease portability of the myrpki tool, so that a "hosted" resource
- holder can use it without needing to install entire toolkit.
+If you're running rpkid at all, you'll need to set at least the
+rpkid_server_host parameter here. You may be able to use the default port
+numbers, or may need to pick different ones. Unless you plan to run irdbd on a
+different machine from rpkid, you should leave irdbd_server_host alone.
- The myrpki tool's use of OpenSSL does not require exotic features like
- RFC 3779 support, but it does require a version of the tool recent
- enough to support CMS and the -ss_cert argument to the ca command.
- Depending on the platform on which you are running this code, you may
- or may not have a system copy of the openssl tool installed that meets
- these criteria; if not, the openssl binary built when you compile the
- toolkit will suffice. This parameter allows you to tell myrpki where to
- find the binary, if necessary; the default just uses the system search
- path.
-Other configuration files and options
+ # Whether you want to run your own copy of pubd. In general, it's
+ # best to use your parent's pubd if you can, to reduce the overall
+ # number of publication sites that relying parties need to check, so
+ # don't enable this unless you have a good reason.
- In most cases the simplified configuration in the [myrpki] section of
- myrpki.conf should suffice, but in case you need to tinker, here are
- details on the the rest of the configuration options. In most cases the
- default name of the configuration file for a program is the name of the
- program followed by ".conf", and the section name is also named for the
- program, so that you can combine sections into a single configuration
- file as shown with myrpki.conf.
+ run_pubd = false
- * Common configuration options
+ # DNS hostname and server port number for pubd, if you're running it.
+ # Hostname has to be a publicly reachable name to be useful, port can
+ # be any legal TCP port number that you're not using for something
+ # else.
- * rpkid configuration
+ pubd_server_host = pubd.example.org
+ pubd_server_port = 4402
- * irdbd configuration
+ # Contact information to include in offers of repository service.
+ # This only matters when we're running pubd. This should be a human
+ # readable string, perhaps containing an email address or URL.
- * pubd configuration
+ pubd_contact_info = repo-man@rpki.example.org
- * rootd configuration
+The myrpki tool will attempt to negotiate publication service for you with
+whatever publication service your parent is using, if you let it, so in most
+cases you should not need to run pubd unless you need to issue certificates for
+private IP address space or private Autononmous System Numbers.
+
+If you do run pubd, you will need to set pubd_server_host. You may also need to
+set pubd_server_port, and you should provide something helpful as contact
+information in pubd_contact_info if you plan to offer publication service to
+your RPKI children, so that grandchildren (or descendents even further down the
+tree) who receive referrals to your service will know how to contact you.
+
+
+ # Whether you want to run your very own copy of rootd. Don't enable
+ # this unless you really know what you're doing.
+
+ run_rootd = false
+
+ # Server port number for rootd, if you're running it. This can be any
+ # legal TCP port number that you're not using for something else.
+
+ rootd_server_port = 4401
+
+You shouldn't run rootd unless you're the root of an RPKI tree. Who gets to be
+the root of the public RPKI tree is a political issue outside the scope of this
+document. For everybody else, the only reason for running rootd (other than
+test purposes) would be to support certification of private IP addresses and
+ASNs. The core tools can do this without any problem, but the simplified
+configuration mechanism does not (yet) make this easy to do.
+
+
+ # Root of local directory tree where pubd (and rootd, sigh) should
+ # write out published data. You need to configure this, and the
+ # configuration should match up with the directory where you point
+ # rsyncd. Neither pubd nor rsyncd much cares -where- you tell them to
+ # put this stuff, the important thing is that the rsync:// URIs in
+ # generated certificates match up with the published objects so that
+ # relying parties can find and verify rpkid's published outputs.
+
+ publication_base_directory = publication/
+
+ # rsyncd module name corresponding to publication_base_directory.
+ # This has to match the module you configured into rsyncd.conf.
+ # Leave this alone unless you have some need to change it.
+
+ publication_rsync_module = rpki
+
+ # Hostname and optional port number for rsync:// URIs. In most cases
+ # this should just be the same value as pubd_server_host.
+
+ publication_rsync_server = ${myrpki::pubd_server_host}
+
+These parameters control the mapping between the rsync URIs presented by rsyncd
+and the local filesystem on the machine where pubd and rsyncd run. Any changes
+here must also be reflected as changes in rsyncd.conf. In most cases you should
+not change the value of publication_rsync_module from the default; since pubd
+can't (and should not) rewrite rsyncd.conf, it's best to use a static rsync
+module name here and let pubd do its work underneath that name. In most cases
+publication_rsync_server should be the same as publication_rsync_server, which
+is what the macro invocation in the default setting does.
+publication_base_directory, like other pathnames in myrpki.conf, can be either
+a relative or absolute pathname; if relative, it's interpreted with respect to
+the directory in which the programs in question were started. In this specific
+case, it's probably better to use an absolute pathname, since this pathname
+must also appear in rsyncd.conf.
+
+
+ # SQL configuration. You can ignore this if you're not running any of
+ # the daemons yourself.
+
+ # If you're comfortable with having all of the databases use the same
+ # MySQL username and password, set those values here. It's ok to
+ # leave the default username alone, but you should use a locally
+ # generated password either here or in the individual settings below.
+
+ shared_sql_username = rpki
+ shared_sql_password = fnord
+
+ # If you want different usernames and passwords for the separate SQL
+ # databases, enter those settings here; the shared_sql_* settings are
+ # only referenced here, so you can remove them entirely if you're
+ # setting everything in this block.
+
+ rpkid_sql_database = rpkid
+ rpkid_sql_username = ${myrpki::shared_sql_username}
+ rpkid_sql_password = ${myrpki::shared_sql_password}
+
+ irdbd_sql_database = irdbd
+ irdbd_sql_username = ${myrpki::shared_sql_username}
+ irdbd_sql_password = ${myrpki::shared_sql_password}
+
+ pubd_sql_database = pubd
+ pubd_sql_username = ${myrpki::shared_sql_username}
+ pubd_sql_password = ${myrpki::shared_sql_password}
+
+These settings control how rpkid, irdbd, and pubd talk to the MySQL server. At
+minimum, each daemon needs its own database; in the simplest configuration, the
+username and password can be shared, which is what the macro references in the
+default configuration does. If for some reason you need to set different
+usernames and passwords for different daemons, you can do so by changing the
+daemon-specific variables.
+
+
+ # Name of OpenSSL binary. You might need to change this if you have
+ # no system copy installed, or if the system copy doesn't support CMS.
+ # The copy of openssl built by this package should suffice.
+
+ openssl = openssl
+
+The myrpki tool uses the openssl command line tool for most of its BPKI
+operations, for two reasons:
+
+
+* To avoid duplicating CA-management functionality already provided by the
+ command line tool, and
+
+
+* To ease portability of the myrpki tool, so that a "hosted" resource holder
+ can use it without needing to install entire toolkit.
+
+The myrpki tool's use of OpenSSL does not require exotic features like RFC 3779
+support, but it does require a version of the tool recent enough to support CMS
+and the -ss_cert argument to the ca command. Depending on the platform on which
+you are running this code, you may or may not have a system copy of the openssl
+tool installed that meets these criteria; if not, the openssl binary built when
+you compile the toolkit will suffice. This parameter allows you to tell myrpki
+where to find the binary, if necessary; the default just uses the system search
+path.
+
+
+***** Other configuration files and options *****
+
+In most cases the simplified configuration in the [myrpki] section of
+myrpki.conf should suffice, but in case you need to tinker, here are details on
+the the rest of the configuration options. In most cases the default name of
+the configuration file for a program is the name of the program followed by
+".conf", and the section name is also named for the program, so that you can
+combine sections into a single configuration file as shown with myrpki.conf.
+
+
+* Common_configuration_options
+
+
+* rpkid_configuration
+
+
+* irdbd_configuration
+
+
+* pubd_configuration
+
+
+* rootd_configuration
+
+
+* configuration_of_the_smoketest_test_harness
+
+
+* test_description_language_for_the_smoketest_test_harness
+
+Once you've finished with configuration, the next thing you should read is the
+Operation_Guide.
- * configuration of the smoketest test harness
- * test description language for the smoketest test harness
- Once you've finished with configuration, the next thing you should read
- is the Operation Guide.
- __________________________________________________________________
- Generated on Fri Apr 16 17:28:16 2010 for RPKI Engine by doxygen
- 1.6.3