| Horms | 6ce1669 | 2006-07-03 19:35:40 -0700 | [diff] [blame] | 1 | /proc/sys/net/ipv4/vs/* Variables: | 
|  | 2 |  | 
|  | 3 | am_droprate - INTEGER | 
|  | 4 | default 10 | 
|  | 5 |  | 
|  | 6 | It sets the always mode drop rate, which is used in the mode 3 | 
|  | 7 | of the drop_rate defense. | 
|  | 8 |  | 
|  | 9 | amemthresh - INTEGER | 
|  | 10 | default 1024 | 
|  | 11 |  | 
|  | 12 | It sets the available memory threshold (in pages), which is | 
|  | 13 | used in the automatic modes of defense. When there is no | 
|  | 14 | enough available memory, the respective strategy will be | 
|  | 15 | enabled and the variable is automatically set to 2, otherwise | 
|  | 16 | the strategy is disabled and the variable is  set  to 1. | 
|  | 17 |  | 
| Simon Horman | 7e777dd | 2011-09-09 17:07:43 +0900 | [diff] [blame] | 18 | conntrack - BOOLEAN | 
|  | 19 | 0 - disabled (default) | 
|  | 20 | not 0 - enabled | 
|  | 21 |  | 
|  | 22 | If set, maintain connection tracking entries for | 
|  | 23 | connections handled by IPVS. | 
|  | 24 |  | 
|  | 25 | This should be enabled if connections handled by IPVS are to be | 
|  | 26 | also handled by stateful firewall rules. That is, iptables rules | 
|  | 27 | that make use of connection tracking.  It is a performance | 
|  | 28 | optimisation to disable this setting otherwise. | 
|  | 29 |  | 
|  | 30 | Connections handled by the IPVS FTP application module | 
|  | 31 | will have connection tracking entries regardless of this setting. | 
|  | 32 |  | 
| Simon Horman | 40cb1f9 | 2011-09-29 16:27:37 +0900 | [diff] [blame] | 33 | Only available when IPVS is compiled with CONFIG_IP_VS_NFCT enabled. | 
| Simon Horman | 7e777dd | 2011-09-09 17:07:43 +0900 | [diff] [blame] | 34 |  | 
| Horms | 6ce1669 | 2006-07-03 19:35:40 -0700 | [diff] [blame] | 35 | cache_bypass - BOOLEAN | 
|  | 36 | 0 - disabled (default) | 
|  | 37 | not 0 - enabled | 
|  | 38 |  | 
|  | 39 | If it is enabled, forward packets to the original destination | 
|  | 40 | directly when no cache server is available and destination | 
|  | 41 | address is not local (iph->daddr is RTN_UNICAST). It is mostly | 
|  | 42 | used in transparent web cache cluster. | 
|  | 43 |  | 
|  | 44 | debug_level - INTEGER | 
|  | 45 | 0          - transmission error messages (default) | 
|  | 46 | 1          - non-fatal error messages | 
|  | 47 | 2          - configuration | 
|  | 48 | 3          - destination trash | 
|  | 49 | 4          - drop entry | 
|  | 50 | 5          - service lookup | 
|  | 51 | 6          - scheduling | 
|  | 52 | 7          - connection new/expire, lookup and synchronization | 
|  | 53 | 8          - state transition | 
|  | 54 | 9          - binding destination, template checks and applications | 
|  | 55 | 10         - IPVS packet transmission | 
|  | 56 | 11         - IPVS packet handling (ip_vs_in/ip_vs_out) | 
|  | 57 | 12 or more - packet traversal | 
|  | 58 |  | 
| Simon Horman | 40cb1f9 | 2011-09-29 16:27:37 +0900 | [diff] [blame] | 59 | Only available when IPVS is compiled with CONFIG_IP_VS_DEBUG enabled. | 
| Horms | 6ce1669 | 2006-07-03 19:35:40 -0700 | [diff] [blame] | 60 |  | 
|  | 61 | Higher debugging levels include the messages for lower debugging | 
|  | 62 | levels, so setting debug level 2, includes level 0, 1 and 2 | 
|  | 63 | messages. Thus, logging becomes more and more verbose the higher | 
|  | 64 | the level. | 
|  | 65 |  | 
|  | 66 | drop_entry - INTEGER | 
|  | 67 | 0  - disabled (default) | 
|  | 68 |  | 
|  | 69 | The drop_entry defense is to randomly drop entries in the | 
|  | 70 | connection hash table, just in order to collect back some | 
|  | 71 | memory for new connections. In the current code, the | 
|  | 72 | drop_entry procedure can be activated every second, then it | 
|  | 73 | randomly scans 1/32 of the whole and drops entries that are in | 
|  | 74 | the SYN-RECV/SYNACK state, which should be effective against | 
|  | 75 | syn-flooding attack. | 
|  | 76 |  | 
|  | 77 | The valid values of drop_entry are from 0 to 3, where 0 means | 
|  | 78 | that this strategy is always disabled, 1 and 2 mean automatic | 
|  | 79 | modes (when there is no enough available memory, the strategy | 
|  | 80 | is enabled and the variable is automatically set to 2, | 
|  | 81 | otherwise the strategy is disabled and the variable is set to | 
|  | 82 | 1), and 3 means that that the strategy is always enabled. | 
|  | 83 |  | 
|  | 84 | drop_packet - INTEGER | 
|  | 85 | 0  - disabled (default) | 
|  | 86 |  | 
|  | 87 | The drop_packet defense is designed to drop 1/rate packets | 
|  | 88 | before forwarding them to real servers. If the rate is 1, then | 
|  | 89 | drop all the incoming packets. | 
|  | 90 |  | 
|  | 91 | The value definition is the same as that of the drop_entry. In | 
|  | 92 | the automatic mode, the rate is determined by the follow | 
|  | 93 | formula: rate = amemthresh / (amemthresh - available_memory) | 
|  | 94 | when available memory is less than the available memory | 
|  | 95 | threshold. When the mode 3 is set, the always mode drop rate | 
|  | 96 | is controlled by the /proc/sys/net/ipv4/vs/am_droprate. | 
|  | 97 |  | 
|  | 98 | expire_nodest_conn - BOOLEAN | 
|  | 99 | 0 - disabled (default) | 
|  | 100 | not 0 - enabled | 
|  | 101 |  | 
|  | 102 | The default value is 0, the load balancer will silently drop | 
|  | 103 | packets when its destination server is not available. It may | 
|  | 104 | be useful, when user-space monitoring program deletes the | 
|  | 105 | destination server (because of server overload or wrong | 
|  | 106 | detection) and add back the server later, and the connections | 
|  | 107 | to the server can continue. | 
|  | 108 |  | 
|  | 109 | If this feature is enabled, the load balancer will expire the | 
|  | 110 | connection immediately when a packet arrives and its | 
|  | 111 | destination server is not available, then the client program | 
|  | 112 | will be notified that the connection is closed. This is | 
|  | 113 | equivalent to the feature some people requires to flush | 
|  | 114 | connections when its destination is not available. | 
|  | 115 |  | 
|  | 116 | expire_quiescent_template - BOOLEAN | 
|  | 117 | 0 - disabled (default) | 
|  | 118 | not 0 - enabled | 
|  | 119 |  | 
|  | 120 | When set to a non-zero value, the load balancer will expire | 
|  | 121 | persistent templates when the destination server is quiescent. | 
|  | 122 | This may be useful, when a user makes a destination server | 
|  | 123 | quiescent by setting its weight to 0 and it is desired that | 
|  | 124 | subsequent otherwise persistent connections are sent to a | 
|  | 125 | different destination server.  By default new persistent | 
|  | 126 | connections are allowed to quiescent destination servers. | 
|  | 127 |  | 
|  | 128 | If this feature is enabled, the load balancer will expire the | 
|  | 129 | persistence template if it is to be used to schedule a new | 
|  | 130 | connection and the destination server is quiescent. | 
|  | 131 |  | 
|  | 132 | nat_icmp_send - BOOLEAN | 
|  | 133 | 0 - disabled (default) | 
|  | 134 | not 0 - enabled | 
|  | 135 |  | 
|  | 136 | It controls sending icmp error messages (ICMP_DEST_UNREACH) | 
|  | 137 | for VS/NAT when the load balancer receives packets from real | 
|  | 138 | servers but the connection entries don't exist. | 
|  | 139 |  | 
|  | 140 | secure_tcp - INTEGER | 
|  | 141 | 0  - disabled (default) | 
|  | 142 |  | 
| Simon Horman | 325aadc | 2011-09-29 16:14:51 +0900 | [diff] [blame] | 143 | The secure_tcp defense is to use a more complicated TCP state | 
|  | 144 | transition table. For VS/NAT, it also delays entering the | 
|  | 145 | TCP ESTABLISHED state until the three way handshake is completed. | 
| Horms | 6ce1669 | 2006-07-03 19:35:40 -0700 | [diff] [blame] | 146 |  | 
| Simon Horman | 325aadc | 2011-09-29 16:14:51 +0900 | [diff] [blame] | 147 | The value definition is the same as that of drop_entry and | 
| Horms | 6ce1669 | 2006-07-03 19:35:40 -0700 | [diff] [blame] | 148 | drop_packet. | 
|  | 149 |  | 
|  | 150 | sync_threshold - INTEGER | 
|  | 151 | default 3 | 
|  | 152 |  | 
|  | 153 | It sets synchronization threshold, which is the minimum number | 
|  | 154 | of incoming packets that a connection needs to receive before | 
|  | 155 | the connection will be synchronized. A connection will be | 
|  | 156 | synchronized, every time the number of its incoming packets | 
|  | 157 | modulus 50 equals the threshold. The range of the threshold is | 
|  | 158 | from 0 to 49. | 
| Simon Horman | 7e777dd | 2011-09-09 17:07:43 +0900 | [diff] [blame] | 159 |  | 
|  | 160 | snat_reroute - BOOLEAN | 
|  | 161 | 0 - disabled | 
|  | 162 | not 0 - enabled (default) | 
|  | 163 |  | 
|  | 164 | If enabled, recalculate the route of SNATed packets from | 
|  | 165 | realservers so that they are routed as if they originate from the | 
|  | 166 | director. Otherwise they are routed as if they are forwarded by the | 
|  | 167 | director. | 
|  | 168 |  | 
|  | 169 | If policy routing is in effect then it is possible that the route | 
|  | 170 | of a packet originating from a director is routed differently to a | 
|  | 171 | packet being forwarded by the director. | 
|  | 172 |  | 
|  | 173 | If policy routing is not in effect then the recalculated route will | 
|  | 174 | always be the same as the original route so it is an optimisation | 
|  | 175 | to disable snat_reroute and avoid the recalculation. | 
|  | 176 |  | 
|  | 177 | sync_version - INTEGER | 
|  | 178 | default 1 | 
|  | 179 |  | 
|  | 180 | The version of the synchronisation protocol used when sending | 
|  | 181 | synchronisation messages. | 
|  | 182 |  | 
|  | 183 | 0 selects the original synchronisation protocol (version 0). This | 
|  | 184 | should be used when sending synchronisation messages to a legacy | 
|  | 185 | system that only understands the original synchronisation protocol. | 
|  | 186 |  | 
|  | 187 | 1 selects the current synchronisation protocol (version 1). This | 
|  | 188 | should be used where possible. | 
|  | 189 |  | 
|  | 190 | Kernels with this sync_version entry are able to receive messages | 
|  | 191 | of both version 1 and version 2 of the synchronisation protocol. |