| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | [[modules-network]]== Network SettingsThere are several modules within a Node that use network basedconfiguration, for example, the<<modules-transport,transport>> and<<modules-http,http>> modules. Node levelnetwork settings allows to set common settings that will be shared amongall network based modules (unless explicitly overridden in each module).The `network.bind_host` setting allows to control the host different networkcomponents will bind on. By default, the bind host will be `_local_`(loopback addresses such as `127.0.0.1`, `::1`).The `network.publish_host` setting allows to control the host the node willpublish itself within the cluster so other nodes will be able to connect to it.Currently an elasticsearch node may be bound to multiple addresses, but onlypublishes one.  If not specified, this defaults to the "best" address from `network.bind_host`.  By default, IPv4 addresses are preferred to IPv6, and ordinary addresses are preferred to site-local or link-local addresses.The `network.host` setting is a simple setting to automatically set both`network.bind_host` and `network.publish_host` to the same host value.Both settings allows to be configured with either explicit host addressor host name. The settings also accept logical setting values explainedin the following table:[cols="<,<",options="header",]|=======================================================================|Logical Host Setting Value |Description|`_local_` |Will be resolved to loopback addresses|`_local:ipv4_` |Will be resolved to loopback IPv4 addresses|`_local:ipv6_` |Will be resolved to loopback IPv6 addresses|`_non_loopback_` |Addresses of the first non loopback interface|`_non_loopback:ipv4_` |IPv4 addresses of the first non loopback interface|`_non_loopback:ipv6_` |IPv6 addresses of the first non loopback interface|`_[networkInterface]_` |Resolves to the addresses of the providednetwork interface. For example `_en0_`.|`_[networkInterface]:ipv4_` |Resolves to the ipv4 addresses of theprovided network interface. For example `_en0:ipv4_`.|`_[networkInterface]:ipv6_` |Resolves to the ipv6 addresses of theprovided network interface. For example `_en0:ipv6_`.|=======================================================================When the `discovery-ec2` plugin is installed, the following are also allowedas valid network host settings:[cols="<,<",options="header",]|==================================================================|EC2 Host Value |Description|`_ec2:privateIpv4_` |The private IP address (ipv4) of the machine.|`_ec2:privateDns_` |The private host of the machine.|`_ec2:publicIpv4_` |The public IP address (ipv4) of the machine.|`_ec2:publicDns_` |The public host of the machine.|`_ec2_` |Less verbose option for the private ip address.|`_ec2:privateIp_` |Less verbose option for the private ip address.|`_ec2:publicIp_` |Less verbose option for the public ip address.|==================================================================[float][[tcp-settings]]=== TCP SettingsAny component that uses TCP (like the HTTP, Transport and Memcached)share the following allowed settings:[cols="<,<",options="header",]|=======================================================================|Setting |Description|`network.tcp.no_delay` |Enable or disable tcp no delay setting.Defaults to `true`.|`network.tcp.keep_alive` |Enable or disable tcp keep alive. Defaultsto `true`.|`network.tcp.reuse_address` |Should an address be reused or not.Defaults to `true` on non-windows machines.|`network.tcp.send_buffer_size` |The size of the tcp send buffer size(in size setting format). By default not explicitly set.|`network.tcp.receive_buffer_size` |The size of the tcp receive buffersize (in size setting format). By default not explicitly set.|=======================================================================
 |