summaryrefslogtreecommitdiff
path: root/usr.sbin/relayd/parse.y
AgeCommit message (Collapse)Author
2009-08-27allow to specify interface names as addresses, for example "listen onReyk Floeter
em0". the implementation will lookup the first IPv4 address of an interface before any other IPv4 and IPv6 addresses. ok gilles@ (i got inspired by smtpd)
2009-08-13add new 'router' functionality to dynamically add or remove routesReyk Floeter
based on health check results, using the existing table syntax. this allows to maintain multiple (uplink) gateways to implement link balancing or WAN link failover if no routing protocol or other keepalive method is available. works fine with or without net.inet.ip.multipath enabled. ok pyr@, jmc@ for manpages
2009-08-07allow to modify the IP TTL value for host checks. this can be used toReyk Floeter
check if the host is only n hops away and not re-routed over a longer path.
2009-08-07add missing lineReyk Floeter
2009-08-07allow to specify host attributes in an arbitrary order (parent, retry) byReyk Floeter
making the grammar a bit more flexible.
2009-08-07cosmetic change - move address into an own elementReyk Floeter
2009-08-05prevent configuration of relays listening to a single addr:port tuple twiceReyk Floeter
2009-08-05support multiple 'listen on' lines in a single relay blockReyk Floeter
2009-08-05tables don't need pf if running in "l7" relay modeReyk Floeter
2009-04-24Allow UDP and/or TCP redirections instead of just TCP.Reyk Floeter
Thanks to Marek Grzybowski for feedback and testing. ok jmc@ (manpage bits)
2009-04-17add "Connection: close" to HTTP check headers to deconfuse HTTP/1.1Reyk Floeter
servers claiming keepalive sessions. From Camiel Dobbelaar
2009-04-02add support to specify a ca file (eg. /etc/ssl/cert.pem) to verify sslReyk Floeter
server certificates when connecting as an SSL client from relays. it works so far, but needs more testing and is currently lacking support for certificate revocation (like CRL or OCSP). the file ssl_privsep.c is extended to implement more code that should be in openssl to allow loading the ca from chroot...
2009-04-01fix an incorrect flag in route mode.Reyk Floeter
From Padcal Lalonde, closes PR 6114
2009-04-01Add support for client-side SSL connections from relays. relayd canReyk Floeter
now sit between two SSL connections (Oitm - OpenBSD-in-the-middle), accept SSL connections and forward to TCP, accept TCP connections and forward to SSL, and do TCP to TCP of course. This was tested by some people a while ago.
2009-03-31Fixed memory leaks which would occur if the second of two memoryTobias Stoeckmann
allocations fails. looks right deraadt, krw ok henning
2008-12-05use HTTP/1.1 instead of HTTP/1.0 if a host header is specified.Reyk Floeter
spotted by phessler@
2008-10-17bring in the findeol() fix from pfctl. list of affected parsers by sthenHenning Brauer
2008-09-29allow to load expect, filter, log, and remove keys from external filesReyk Floeter
just containing on key per line. this allows easier use of URL white/blacklists from external sources.
2008-09-29sort tokens for better readabilityReyk Floeter
2008-09-29allow to listen on a port range for redirections. this fixesReyk Floeter
stickyness with web applications that cannot do the clustering on their own and require stickyness with HTTP to HTTPS migration. this is required in many cases; it is a true fact that we cannot always fix the backend application in the real world. Tested and requested by many
2008-07-22Add dynamic IPv6-to-IPv4 and IPv4-to-IPv6 translation inspired byReyk Floeter
faithd(8) by doing a similar mapping of IPv4/6 addresses with relayd(8) and pf(4) redirections without the need of the faith(4) interface. The trick works in both directions, it can accept IPv6 connections and relay them to IPv4 hosts by extracting the last 4 octets from the IPv6 destination (like faithd(8)), and it can accept IPv4 connections and relay them to IPv6 hosts by prepending the 4 octets of the original IPv4 destination to a configured IPv6 prefix. An access list is not needed because the classification is done in pf.conf(5). It helps to get more faith in relayd. manpage bits ok jmc@ yes, sounds good todd@
2008-07-19no need for using a TAILQ queue for the host children list, use aReyk Floeter
singly-linked SLIST instead. the only noticeable change is the reversed order to notify the children but it does not really matter here. also only walk through the children host list if the host itself is a potential parent.
2008-07-19If the new 'parent' keyword is specified for a host in a table,Reyk Floeter
inherit the state from another host with the specified Id; no additional check will be for the inheriting host. This helps in scenarios with lots of IP aliases that all point to the same service on the same host (like web hosting with many SSL domains). discussed with pyr, tested in different setups
2008-07-17final reorder diff to use TAILQ_INSERT_TAIL instead ofReyk Floeter
TAILQ_INSERT_HEAD. now tables and relays are also matching the order in the config file. ok pyr@
2008-07-17add the hosts in order to get host ids that match the order in the config ↵Reyk Floeter
file. ok pyr@
2008-07-17give sane ids to hosts, tables, redirections, relays, etc. - startReyk Floeter
counting at 1 and do not assign an id before inheriting a real table. makes more sense in the relayctl output. ok pyr@
2008-07-17use getaddrinfo/getnameinfo to parse ipv6 addresses instead ofReyk Floeter
inet_pton/inet_ntop to allow specifing and printing the IPv6 scope identifier. synced host_v6() with ntpd's version to use getaddrinfo() instead of inet_pton() - host_v4, host_v6, and host_dns could all use getaddrinfo in a single function by specifing different flags but this would diverge from the other daemons using this common interface so we keep this little overhead. discussed with henning@ ok pyr@
2008-06-11add support for "transparent" forwarding in relays: normally the l7Reyk Floeter
relay will connect to the target host with its own ip address, but this mode will let it use the address of the client that is connecting from the other side. for example, there is no need to add the X-Forwarded-For HTTP headers for internal webservers in this mode anymore since they magically see the remote client ip address in the connection. it also allows to build fully-transparent ssl encapsulation for tcp sessions and many other things... based on an initial idea from dlg@ and pascoe@ (dlg's talk at opencon) using the new BINDANY and divert-reply interfaces from markus@ (since n2k8) ok markus@ pyr@
2008-05-08missed to set the default for tables to round-robin, so it wasReyk Floeter
loadbalance after the grammar change. make it round-robin again.
2008-05-07add an alternative "route to" mode to relayd redirections which mapsReyk Floeter
to pf route-to instead of the default rdr. it is a first steps towards support for "direct server return" (dsr), an asynchronous mode where the load balanced servers send the replies to a different gateway like a l3 switch/router to handle higher amounts of return traffic. because the state handling in pf isn't optimal for this case yet, it just sees half of the TCP connection, the sessions are forced to time out after fixed number of seconds. discussed with many, thought about in the onsen
2008-05-06the manpage mentioned "timeout" in relay sections, while the grammarReyk Floeter
expected the keywords "forward timeout". rename it to "session timeout" and sync the documentation with reality.
2008-05-06Do not unconditionnaly load pf. If pf isn't required by the configurationPierre-Yves Ritschard
the initialisation isn't done properly.
2008-03-03Inherit global table options.Reyk Floeter
From Armin Wolfermann ok pyr@ deraadt@
2008-02-27Unbreak parser by initializing topfile correctly.Marco Pfatschbacher
I got fooled by patch(1). Sorry.
2008-02-26Have popfile() also close the main config file,Marco Pfatschbacher
but only do the final popfile call after yyparse() is done. This also fixes config reload on SIGHUP for some daemons. Spotted by otto@. OK deraadt@
2008-02-13bump copyrightReyk Floeter
2008-02-13stylistic change: move code to add protonodes from the BNF intoReyk Floeter
seperate functions in relayd.c (protonode_add/protonode_header). this code got to big to look nice in the BNF statements...
2008-02-11unbreak the dns protocol handler, closes pr 5717Reyk Floeter
Thanks to Nigel Taylor
2008-02-11Marry relayd with snmpd using new "send trap" option: Request to sendReyk Floeter
a SNMP trap when the state of a host changes. relayd(8) will try to (re-)connect to snmpd(8) and request it to send a trap to the registered trap receivers, see snmpd.conf(5) for more information about the configuration. ok pyr@ thib@
2008-01-31add prefixes to names of structure elements to make it easier to grepReyk Floeter
for code, next struct relay. knf long line fixes will follow later. ok thib@
2008-01-31add prefixes to names of structure elements to make it easier to grepReyk Floeter
for code, start with struct relayd. finally. ok thib@
2008-01-29Free resources now that we don't always exit after an unsuccessfulPierre-Yves Ritschard
parsing of the configuration. From Igor Zinovik <zinovik at cs.karelia.ru> ok thib@ and me.
2007-12-08Rename everything which reffered to services refer to rdr for internalsPierre-Yves Ritschard
(for instance: rename struct service to struct rdr), refer to redirects otherwise (hoststatectl output). ok reyk@
2007-12-08make the generic handler for TCP-based protocols the default (allowsReyk Floeter
to use "protocol foo" without defining a type).
2007-12-08some changes to the relayd.conf configuration language and grammar.Reyk Floeter
the tables will look more like pf tables, it is easier to re-use tables with different options, "services" will become "redirections" (they refer to rdr pf rules), sync configuration directives of redirect (l3, ex-service) relay (l7) sections (for example "virtual host" will become "listen on"), all target definitions will start with "forward to", etc. pp. (see relay.conf(5) and etc/relayd.conf) discussed with pyr and deraadt ok pyr@
2007-12-07hoststated gets renamed to relayd. easier to type, and actually saysReyk Floeter
what the daemon does - it is a relayer that pays attention to the status of pools of hosts; not a status checkers that happens to do some relaying
2007-11-26allow to add labels to protocol actions, they will be printed in httpReyk Floeter
error pages and can be used to refer to additional information. ok pyr@
2007-11-24sort includes, adjust to style(9)Reyk Floeter
2007-11-23re-implement the "mark" action and document it in the manpage:Reyk Floeter
it is possible to attach a mark to a session based on matching an entity (header, url, cookie, ...) and add conditional action for this mark. it works a bit like the tag/tagged keywords in pf, but i decided to pick a different name to avoid confusion. ok pyr@ gilles@
2007-11-22add (new) "url" protocol action, this can be used to match/filter URLReyk Floeter
suffix/prefix expressions like "example.com/index.html?args". a digest mode allows to match against anonymized SHA1/MD5 digests of suffix/prefix expressions.