icmp_errors_use_inbound_ifaddr - BOOLEAN
- If zero, icmp error messages are sent with the primary address of
- the exiting interface.
+ If zero, icmp error messages except redirects are sent with the primary
+ address of the exiting interface.
If non-zero, the message will be sent with the primary address of
the interface that received the packet that caused the icmp error.
then the primary address of the first non-loopback interface that
has one will be used regardless of this setting.
+ The source address selection of icmp redirect messages is controlled by
+ icmp_errors_use_inbound_ifaddr.
Default: 0
+icmp_redirects_use_orig_daddr - BOOLEAN
+
+ If zero, icmp redirect messages are sent using the address specified for
+ other icmp errors by icmp_errors_use_inbound_ifaddr.
+
+ If non-zero, the message will be sent with the destination address of
+ the packet that caused the icmp redirect.
+ This behaviour is the preferred one on VRRP routers (see RFC 5798
+ section 8.1.1).
+
+ Default: 0
+
+
igmp_max_memberships - INTEGER
Change the maximum number of multicast groups we can subscribe to.
Default: 20
int sysctl_icmp_ratelimit;
int sysctl_icmp_ratemask;
int sysctl_icmp_errors_use_inbound_ifaddr;
+ int sysctl_icmp_redirects_use_orig_daddr;
struct local_ports ip_local_ports;
*/
saddr = iph->daddr;
- if (!(rt->rt_flags & RTCF_LOCAL)) {
+ if (!((type == ICMP_REDIRECT) &&
+ net->ipv4.sysctl_icmp_redirects_use_orig_daddr) &&
+ !(rt->rt_flags & RTCF_LOCAL)) {
struct net_device *dev = NULL;
rcu_read_lock();
net->ipv4.sysctl_icmp_ratemask = 0x1818;
net->ipv4.sysctl_icmp_errors_use_inbound_ifaddr = 0;
+ /* Control paramerer - use the daddr of originating packets as saddr
+ * in redirect messages?
+ */
+ net->ipv4.sysctl_icmp_redirects_use_orig_daddr = 0;
+
return 0;
fail:
.mode = 0644,
.proc_handler = proc_dointvec
},
+ {
+ .procname = "icmp_redirects_use_orig_daddr",
+ .data = &init_net.ipv4.sysctl_icmp_redirects_use_orig_daddr,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec
+ },
{
.procname = "icmp_ratelimit",
.data = &init_net.ipv4.sysctl_icmp_ratelimit,