1.\" $OpenBSD: isakmpd.8,v 1.118 2016/03/05 08:38:36 jmc Exp $ 2.\" $EOM: isakmpd.8,v 1.23 2000/05/02 00:30:23 niklas Exp $ 3.\" 4.\" Copyright (c) 1998, 1999, 2000, 2001 Niklas Hallqvist. 5.\" All rights reserved. 6.\" Copyright (c) 1999 Angelos D. Keromytis. All rights reserved. 7.\" Copyright (c) 2001, 2002 H�kan Olsson. All rights reserved. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 19.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28.\" 29.\" This code was written under funding by Ericsson Radio Systems. 30.\" 31.\" Manual page, using -mandoc macros 32.\" 33.Dd $Mdocdate: March 5 2016 $ 34.Dt ISAKMPD 8 35.Os 36.Sh NAME 37.Nm isakmpd 38.Nd ISAKMP/Oakley a.k.a. IKEv1 key management daemon 39.Sh SYNOPSIS 40.Nm isakmpd 41.Op Fl 46adKLnSTv 42.Op Fl c Ar config-file 43.Op Fl D Ar class Ns = Ns Ar level 44.Op Fl f Ar fifo 45.Op Fl i Ar pid-file 46.Op Fl l Ar packetlog-file 47.Op Fl N Ar udpencap-port 48.Op Fl p Ar listen-port 49.Op Fl R Ar report-file 50.Sh DESCRIPTION 51The 52.Nm 53daemon establishes security associations for encrypted 54and/or authenticated network traffic. 55At this moment, and probably forever, this means 56.Xr ipsec 4 57traffic. 58Traditionally, 59.Nm 60was configured using the 61.Xr isakmpd.conf 5 62file format. 63A newer, much simpler format is now available: 64.Xr ipsec.conf 5 . 65.Pp 66.Nm 67implements the IKEv1 protocol which is defined in the standards 68ISAKMP/Oakley (RFC 2408), IKE (RFC 2409), and the Internet DOI (RFC 2407). 69The newer IKEv2 protocol, 70as defined in RFC 5996, 71is not supported by 72.Nm 73but by 74.Xr iked 8 . 75It follows then that references to IKE in this document 76pertain to IKEv1 only, 77and not IKEv2. 78.Pp 79The way 80.Nm 81goes about its work is by maintaining an internal configuration 82as well as a policy database which describes what kinds of SAs to negotiate, 83and by listening for different events that trigger these negotiations. 84The events that control 85.Nm 86consist of negotiation initiations from a remote party, user input via 87a FIFO or by signals, upcalls from the kernel via a 88.Dv PF_KEY 89socket, and lastly by scheduled events triggered by timers running out. 90.Pp 91Most uses of 92.Nm 93will be to implement so called "virtual private networks" (VPNs). 94The ability to provide redundancy is made available through 95.Xr carp 4 96and 97.Xr sasyncd 8 . 98For other uses, some more knowledge of IKEv1 as a protocol is required. 99The RFCs mentioned below are a possible starting point. 100.Pp 101On startup 102.Nm 103forks into two processes for privilege separation. 104The unprivileged child jails itself with 105.Xr chroot 8 106to 107.Pa /var/empty . 108The privileged process communicates with the child, reads configuration files 109and PKI information, and binds to privileged ports on its behalf. 110See the 111.Sx CAVEATS 112section below. 113.Pp 114The options are as follows: 115.Bl -tag -width Ds 116.It Fl 4 | 6 117These options control what address family 118.Pf ( Dv AF_INET 119and/or 120.Dv AF_INET6 ) 121.Nm 122will use. 123The default is to use both IPv4 and IPv6. 124.It Fl a 125If given, 126.Nm 127does not set up flows automatically. 128Instead manual flows may be configured using 129.Xr ipsec.conf 5 130or by programs such as 131.Xr bgpd 8 . 132Thus 133.Nm 134only takes care of SA establishment. 135.It Fl c Ar config-file 136If given, the 137.Fl c 138option specifies an alternate configuration file instead of 139.Pa /etc/isakmpd/isakmpd.conf . 140As this file may contain sensitive information, it must be readable 141only by the user running the daemon. 142.Nm 143will reread the configuration file when sent a 144.Dv SIGHUP 145signal. 146.Pp 147Note that this option applies only to configuration files in the 148.Xr isakmpd.conf 5 149format, not those in the 150.Xr ipsec.conf 5 151format. 152.It Fl D Ar class Ns = Ns Ar level 153Debugging class. 154It's possible to specify this argument many times. 155It takes a parameter of the form 156.Ar class Ns = Ns Ar level , 157where both 158.Ar class 159and 160.Ar level 161are numbers. 162.Ar class 163denotes a debugging class, and 164.Ar level 165the level you want that debugging class to 166limit debug printouts at (i.e. all debug printouts above the level specified 167will not output anything). 168If 169.Ar class 170is set to 171.Sq A , 172then all debugging classes are set to the specified level. 173.Pp 174Valid values for 175.Ar class 176are as follows: 177.Pp 178.Bl -tag -width 2n -offset indent -compact 179.It 0 180Misc 181.It 1 182Transport 183.It 2 184Message 185.It 3 186Crypto 187.It 4 188Timer 189.It 5 190Sysdep 191.It 6 192SA 193.It 7 194Exchange 195.It 8 196Negotiation 197.It 9 198Policy 199.It 10 200FIFO user interface 201.It A 202All 203.El 204.Pp 205Currently used values for 206.Ar level 207are 0 to 99. 208.It Fl d 209The 210.Fl d 211option is used to make the daemon run in the foreground, logging to stderr. 212.It Fl f Ar fifo 213The 214.Fl f 215option specifies the 216.Tn FIFO 217(a.k.a. named pipe) where the daemon listens for 218user requests. 219If the path given is a dash 220.Pq Sq \&- , 221.Nm 222will listen to stdin instead. 223.It Fl i Ar pid-file 224By default the PID of the daemon process will be written to 225.Pa /var/run/isakmpd.pid . 226This path can be overridden by specifying another one as the argument to the 227.Fl i 228option. 229Note that only paths beginning with 230.Pa /var/run 231are allowed. 232.It Fl K 233When this option is given, 234.Nm 235does not read the policy configuration file and no 236.Xr keynote 4 237policy check is accomplished. 238This option can be used when policies for flows and SA establishment are 239arranged by other programs like 240.Xr ipsecctl 8 241or 242.Xr bgpd 8 . 243.It Fl L 244Enable IKE packet capture. 245When this option is given, 246.Nm 247will write an unencrypted copy of the negotiation packets it 248is sending and receiving to the file 249.Pa /var/run/isakmpd.pcap , 250which can later be read by 251.Xr tcpdump 8 252and other utilities using 253.Xr pcap 3 . 254.It Fl l Ar packetlog-file 255As option 256.Fl L 257above, but capture to a specified file. 258Note that only paths beginning with 259.Pa /var/run 260are allowed. 261.It Fl N Ar udpencap-port 262The 263.Fl N 264option specifies the listen port for encapsulated UDP 265that the daemon will bind to. 266.It Fl n 267When the 268.Fl n 269option is given, the kernel will not take part in the negotiations. 270This is a non-destructive mode, so to speak, in that it won't alter any 271SAs in the IPsec stack. 272.It Fl p Ar listen-port 273The 274.Fl p 275option specifies the listen port the daemon will bind to. 276.It Fl R Ar report-file 277When you signal 278.Nm 279a 280.Dv SIGUSR1 , 281it will report its internal state to a report file, normally 282.Pa /var/run/isakmpd.report , 283but this can be changed by feeding 284the file name as an argument to the 285.Fl R 286flag. 287Note that only paths beginning with 288.Pa /var/run 289are allowed. 290.It Fl S 291This option is used for setups using 292.Xr sasyncd 8 293and 294.Xr carp 4 295to provide redundancy. 296.Nm 297starts in passive mode and will not initiate any connections 298or process any incoming traffic until 299sasyncd has determined that the host is the carp master. 300Additionally, 301.Nm 302will not delete SAs on shutdown 303by sending delete messages to all peers. 304.It Fl T 305When this option is given, NAT-Traversal will be disabled and 306.Nm 307will not advertise support for NAT-Traversal to its peers. 308.It Fl v 309Enables verbose logging. 310Normally, 311.Nm 312is silent and outputs only messages when a warning or an error occurs. 313With verbose logging 314.Nm 315reports successful completion of phase 1 (Main and Aggressive) and phase 2 316(Quick) exchanges (Information and Transaction exchanges do not generate any 317additional status information). 318.El 319.Sh THE FIFO USER INTERFACE 320When 321.Nm 322starts, it creates a FIFO (named pipe) where it listens for user 323requests. 324All commands start with a single letter, followed by command-specific options. 325Available commands are: 326.Pp 327.Bl -tag -width Ds -compact 328.It Ic C add Oo Ar section Oc : Ns Ar tag Ns = Ns Ar value 329.It Ic C rmv Oo Ar section Oc : Ns Ar tag Ns = Ns Ar value 330.It Ic C rm Oo Ar section Oc : Ns Ar tag 331.It Ic C rms Op Ar section 332.It Ic C set Oo Ar section Oc : Ns Ar tag Ns = Ns Ar value Op Ic force 333Update the running 334.Nm 335configuration atomically. 336.Sq set 337sets a configuration value consisting of a section, tag, and value triplet. 338.Sq set 339will fail if the configuration already contains a section with the named tag; 340use the 341.Sq force 342option to change this behaviour. 343.Sq add 344appends a configuration value to the named configuration list tag, 345unless the value is already in the list. 346.Sq rm 347removes a tag in a section. 348.Sq rms 349removes an entire section. 350.Sq rmv 351removes an entry from a list, thus reversing an 352.Sq add 353operation. 354.Pp 355NOTE: Sending 356.Nm 357a 358.Dv SIGHUP 359or an "R" through the FIFO will void any updates done to the configuration. 360.Pp 361.It Ic C get Oo Ar section Oc : Ns Ar tag 362Get the configuration value of the specified section and tag. 363The result is stored in 364.Pa /var/run/isakmpd.result . 365.Pp 366.It Ic c Ar name 367Start the named connection, if stopped or inactive. 368.Pp 369.It Ic D Ar class level 370.It Ic D A Ar level 371.It Ic D T 372Set debug class 373.Ar class 374to level 375.Ar level . 376If 377.Ar class 378is specified as 379.Sq A , 380the level applies to all debug classes. 381.Ic D T 382toggles all debug classes to level zero. 383Another 384.Ic D T 385command will toggle them back to the earlier levels. 386.Pp 387.It Ic d Ar cookies msgid 388Delete the specified SA from the system. 389Specify 390.Ar msgid 391as 392.Sq - 393to match a Phase 1 SA. 394.Pp 395.It Ic M active 396.It Ic M passive 397Set 398.Nm 399to active or passive mode. 400In passive mode no packets are sent to peers. 401.Pp 402.It Ic p on Ns Op = Ns Ar path 403.It Ic p off 404Enable or disable cleartext IKE packet capture. 405When enabling, optionally specify which file 406.Nm 407should capture the packets to 408(the default is 409.Pa /var/run/isakmpd.pcap ) . 410Note that only paths beginning with 411.Pa /var/run 412are allowed. 413.Pp 414.It Ic Q 415Cleanly shutdown the daemon, as when sent a 416.Dv SIGTERM 417signal. 418.Pp 419.It Ic R 420Reinitialize 421.Nm isakmpd , 422as when sent a 423.Dv SIGHUP 424signal. 425.Pp 426.It Ic r 427Report 428.Nm 429internal state to 430.Xr syslog 3 . 431See the 432.Fl R 433option. 434Same as when sent a 435.Dv SIGUSR1 436signal. 437.Pp 438.It Ic S 439Report information on all known SAs to the 440.Pa /var/run/isakmpd.result 441file. 442.Pp 443.It Ic T 444Tear down all active quick mode connections. 445.Pp 446.It Ic t Oo Ar phase Oc Ar name 447Tear down the named connection, if active. 448For 449.Ar name , 450the tag specified in 451.Xr isakmpd.conf 5 452or the IP address of the remote host can be used. 453The optional parameter 454.Ar phase 455specifies whether to delete a phase 1 or phase 2 SA. 456The value 457.Sq main 458indicates a phase 1 connection; 459the value 460.Sq quick 461a phase 2 connection. 462If no phase is specified, 463.Sq quick 464will be assumed. 465.El 466.Sh SETTING UP AN IKE PUBLIC KEY INFRASTRUCTURE (PKI) 467In order to use public key based authentication, there has to be an 468infrastructure managing the key signing. 469Either there is an already existing PKI 470.Nm 471should take part in, or there will be a need to set one up. 472The procedures for using a pre-existing PKI varies depending on the 473actual Certificate Authority (CA) used, and is therefore not covered here, 474other than mentioning that 475.Xr openssl 1 476needs to be used to create a Certificate Signing Request (CSR) that the 477CA understands. 478.Pp 479A number of methods exist to allow authentication: 480.Bl -ohang -offset indent 481.It Passphrase: 482This method does not use keys at all, but relies on a shared passphrase. 483.It Host Keys: 484Public keys are used to authenticate. 485See 486.Sx PUBLIC KEY AUTHENTICATION 487below. 488.It X.509 Certificates: 489X.509 Certificates are used to authenticate. 490See 491.Sx X.509 AUTHENTICATION 492below. 493.It Keynote Certificates: 494Keynote Certificates are used to authenticate. 495See 496.Sx KEYNOTE AUTHENTICATION 497below. 498.El 499.Pp 500When configuring 501.Nm 502for key- and certificate-based authentication, 503the 504.Dq Transforms 505tag in 506.Xr isakmpd.conf 5 507should include 508.Dq RSA_SIG . 509For example, the transform 510.Dq 3DES-SHA-RSA_SIG 511means: 5123DES encryption, SHA hash, authentication using RSA signatures. 513.Sh PUBLIC KEY AUTHENTICATION 514It is possible to store trusted public keys to make them directly 515usable by 516.Nm , 517bypassing the need to use certificates. 518The keys should be saved in PEM format (see 519.Xr openssl 1 ) 520and named and stored after this easy formula: 521.Pp 522.Bl -tag -width "for_ufqdn_identitiesXX" -offset 3n -compact 523.It For IPv4 identities: 524.Pa /etc/isakmpd/pubkeys/ipv4/A.B.C.D 525.It For IPv6 identities: 526.Pa /etc/isakmpd/pubkeys/ipv6/abcd:abcd::ab:bc 527.It For FQDN identities: 528.Pa /etc/isakmpd/pubkeys/fqdn/foo.bar.org 529.It For UFQDN identities: 530.Pa /etc/isakmpd/pubkeys/ufqdn/user@foo.bar.org 531.El 532.Pp 533Depending on the 534.Dv ID-type 535field of 536.Xr isakmpd.conf 5 , 537keys may be named after their IPv4 address (IPV4_ADDR or IPV4_ADDR_SUBNET), 538IPv6 address (IPV6_ADDR or IPV6_ADDR_SUBNET), 539fully qualified domain name (FDQN), 540user fully qualified domain name (USER_FQDN), 541or key ID (KEY_ID). 542.Pp 543For example, 544.Nm 545can authenticate using the pre-generated keys if the local public key, 546by default 547.Pa /etc/isakmpd/local.pub , 548is copied to the remote gateway as 549.Pa /etc/isakmpd/pubkeys/ipv4/local.gateway.ip.address 550and the remote gateway's public key 551is copied to the local gateway as 552.Pa /etc/isakmpd/pubkeys/ipv4/remote.gateway.ip.address . 553Of course, new keys may also be generated 554(the user is not required to use the pre-generated keys). 555In this example, 556.Dv ID-type 557would also have to be set to IPV4_ADDR or IPV4_ADDR_SUBNET 558in 559.Xr isakmpd.conf 5 . 560.Sh X.509 AUTHENTICATION 561X.509 is a framework for public key certificates. 562Certificates can be generated using 563.Xr openssl 1 564and provide a means for PKI authentication. 565In the following example, a CA is created along with host certificates 566to be signed by the CA. 567.Bl -enum 568.It 569Create your own Certificate Authority (CA). 570.Pp 571First, create a private key for the CA, and a Certificate Signing Request 572(CSR) to enable the CA to sign its own key: 573.Bd -literal -offset indent 574# openssl genrsa -out /etc/ssl/private/ca.key 2048 575# openssl req -new -key /etc/ssl/private/ca.key \e 576 -out /etc/ssl/private/ca.csr 577.Ed 578.Pp 579.Ic openssl req 580will prompt for information that will be incorporated 581into the certificate request. 582The information entered comprises a Distinguished Name (DN). 583There are quite a few fields, but some can be left blank. 584For some fields there will be a default value; if 585.Sq \&. 586is entered, the field will be left blank. 587.Pp 588After the CSR has been generated, it is used to create and sign 589a certificate for the CA: 590.Bd -literal -offset indent 591# openssl x509 -req -days 365 -in /etc/ssl/private/ca.csr \e 592 -signkey /etc/ssl/private/ca.key \e 593 -extfile /etc/ssl/x509v3.cnf -extensions x509v3_CA \e 594 -out /etc/ssl/ca.crt 595.Ed 596.It 597Create Certificate Signing Requests (CSRs) for IKE peers. 598The CSRs are signed with a pre-generated private key. 599.Pp 600This step, as well as the next one, needs to be done for every peer. 601Furthermore the last step will need to be done once for each ID you 602want the peer to have. 603The 10.0.0.1 below symbolizes that ID, in this case an IPv4 ID, 604and should be changed for each invocation. 605You will be asked for a DN for each run. 606Encoding the ID in the common name is recommended, as it should be unique. 607.Bd -literal -offset indent 608# openssl req -new -key /etc/isakmpd/private/local.key \e 609 -out /etc/isakmpd/private/10.0.0.1.csr 610.Ed 611.Pp 612Now take these certificate signing requests to your CA and process 613them as below. 614A 615.Em subjectAltName 616extension field should be added to the certificate. 617Replace 10.0.0.1 with the IP address which 618.Nm 619will use as the certificate identity. 620.Pp 621Copy 622.Pa /etc/ssl/x509v3.cnf 623to a temporary file and edit it to replace 624.Dv $ENV::CERTIP 625with 10.0.0.1, then run: 626.Bd -literal -offset indent 627# openssl x509 -req \e 628 -days 365 -in 10.0.0.1.csr \e 629 -CA /etc/ssl/ca.crt -CAkey /etc/ssl/private/ca.key \e 630 -CAcreateserial -extfile /etc/ssl/x509v3.cnf \e 631 -extensions x509v3_IPAddr -out 10.0.0.1.crt 632.Ed 633.Pp 634For a FQDN certificate, replace 635.Dv $ENV::CERTIP 636with the hostname and run: 637.Bd -literal -offset indent 638# openssl x509 -req \e 639 -days 365 -in somehost.somedomain.csr \e 640 -CA /etc/ssl/ca.crt -CAkey /etc/ssl/private/ca.key \e 641 -CAcreateserial -extfile /etc/ssl/x509v3.cnf \e 642 -extensions x509v3_FQDN -out somehost.somedomain.crt 643.Ed 644.Pp 645If CERTFQDN is being used, 646make sure that the 647.Va subjectAltName 648field of the certificate is specified using 649.Ic srcid 650in 651.Xr ipsec.conf 5 . 652A similar setup will be required if 653.Xr isakmpd.conf 5 654is being used instead. 655.Pp 656Put the certificate (the file ending in .crt) in 657.Pa /etc/isakmpd/certs/ 658on your local system. 659Also carry over the CA cert 660.Pa /etc/ssl/ca.crt 661and put it in 662.Pa /etc/isakmpd/ca/ . 663.El 664.Pp 665To revoke certificates, create a Certificate Revocation List (CRL) file 666and install it in the 667.Pa /etc/isakmpd/crls/ 668directory. 669See 670.Xr openssl 1 671and the 672.Sq crl 673subcommand for more info. 674.Sh KEYNOTE AUTHENTICATION 675Keynote is a trust-management framework. 676Keys can be generated using 677.Xr keynote 1 678and provide an alternative means for 679.Nm 680to authenticate. 681See 682.Xr keynote 4 683for further information. 684.Sh FILES 685.Bl -tag -width Ds 686.It Pa /etc/isakmpd/ca/ 687The directory where CA certificates are kept. 688.It Pa /etc/isakmpd/certs/ 689The directory where IKE certificates are kept, both the local 690certificate(s) and those of the peers, if a choice to have them kept 691permanently has been made. 692.It Pa /etc/isakmpd/crls/ 693The directory where CRLs are kept. 694.It Pa /etc/isakmpd/isakmpd.conf 695The configuration file. 696As this file can contain sensitive information 697it must not be readable by anyone but the user running 698.Nm . 699.It Pa /etc/isakmpd/isakmpd.policy 700The keynote policy configuration file. 701The same mode requirements as 702.Pa isakmpd.conf . 703.It Pa /etc/isakmpd/keynote/ 704The directory where KeyNote credentials are kept. 705.It Pa /etc/isakmpd/private/ 706The directory where local private keys used for public key authentication 707are kept. 708By default, the system startup script 709.Xr rc 8 710generates a key-pair when starting, if one does not already exist. 711The entire keypair is in 712.Pa local.key , 713and a copy of the public key suitable for transferring to other hosts 714is extracted into 715.Pa /etc/isakmpd/local.pub . 716There has to be a certificate for 717.Pa local.key 718in the certificate directory, 719.Pa /etc/isakmpd/certs/ . 720.Pa local.key 721has the same mode requirements as 722.Pa isakmpd.conf . 723.It Pa /etc/isakmpd/pubkeys/ 724The directory in which trusted public keys are kept. 725The keys must be named in the fashion described above. 726.It Pa /var/run/isakmpd.fifo 727The FIFO used to manually control 728.Nm isakmpd . 729.It Pa /var/run/isakmpd.pcap 730The default IKE packet capture file. 731.It Pa /var/run/isakmpd.pid 732The PID of the current daemon. 733.It Pa /var/run/isakmpd.report 734The report file written when 735.Dv SIGUSR1 736is received. 737.It Pa /var/run/isakmpd.result 738The report file written when the 739.Sq S 740or 741.Sq "C get" 742command is issued in the command FIFO. 743.El 744.Sh SEE ALSO 745.Xr openssl 1 , 746.Xr getnameinfo 3 , 747.Xr pcap 3 , 748.Xr ipsec 4 , 749.Xr ipsec.conf 5 , 750.Xr isakmpd.conf 5 , 751.Xr isakmpd.policy 5 , 752.Xr iked 8 , 753.Xr sasyncd 8 , 754.Xr ssl 8 , 755.Xr tcpdump 8 756.Sh STANDARDS 757.Rs 758.%A D. Piper 759.%D November 1998 760.%R RFC 2407 761.%T The Internet IP Security Domain of Interpretation for ISAKMP 762.Re 763.Pp 764.Rs 765.%A D. Maughan 766.%A M. Schertler 767.%A M. Schneider 768.%A J. Turner 769.%D November 1998 770.%R RFC 2408 771.%T Internet Security Association and Key Management Protocol (ISAKMP) 772.Re 773.Pp 774.Rs 775.%A D. Harkins 776.%A D. Carrel 777.%D November 1998 778.%R RFC 2409 779.%T The Internet Key Exchange (IKE) 780.Re 781.Pp 782.Rs 783.%A T. Kivinen 784.%A B. Swander 785.%A A. Huttunen 786.%A V. Volpe 787.%D January 2005 788.%R RFC 3947 789.%T Negotiation of NAT-Traversal in the IKE 790.Re 791.Sh HISTORY 792This implementation of the ISAKMP/Oakley key management protocol 793was done in 1998 by Niklas Hallqvist and Niels Provos, 794sponsored by Ericsson Radio Systems. 795.Sh CAVEATS 796When storing a trusted public key for an IPv6 identity, the 797.Em most efficient 798form of address representation, i.e. "::" instead of ":0:0:0:", 799must be used or the matching will fail. 800.Nm 801uses the output from 802.Xr getnameinfo 3 803for the address-to-name translation. 804The privileged process only allows binding to the default port 500 or 805unprivileged ports (>1024). 806It is not possible to change the interfaces 807.Nm 808listens on without a restart. 809.Pp 810For redundant setups, 811.Xr sasyncd 8 812must be manually restarted every time 813.Nm 814is restarted. 815