127362e9cbb703f7b35a19369087efd29a4321dd
[nodeconfig.git] / PlanetLabConf / sysctl.php
1 <?php
2 //
3 // /etc/sysctl.conf generator
4 //
5 // Mark Huang <mlhuang@cs.princeton.edu>
6 // Copyright (C) 2006 The Trustees of Princeton University
7 //
8 // $Id$
9 //
10
11 // Get admin API handle
12 require_once 'plc_api.php';
13 global $adm;
14
15 $ip_forward = 0;
16
17 // Look up the node
18 $interfaces = $adm->GetInterfaces(array('ip' => $_SERVER['REMOTE_ADDR']));
19 if (!empty($interfaces)) {
20   $nodes = $adm->GetNodes(array($interfaces[0]['node_id']));
21   if (!empty($nodes)) {
22     $node = $nodes[0];
23     $interfaces = $adm->GetInterfaces($node['interface_ids']);
24     foreach ($interfaces as $interface) {
25       // Nodes with proxy socket interfaces need to be able to forward
26       // between the fake proxy0 interface and the real interface.
27       if ($interface['method'] == 'proxy') {
28         $ip_forward = 1;
29         break;
30       }
31     }
32   }
33 }
34
35 ?>
36
37 # Kernel sysctl configuration file for Red Hat Linux
38 #
39 # For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
40 # sysctl.conf(5) for more details.
41
42 # $Id$
43
44 # Controls IP packet forwarding
45 net.ipv4.ip_forward = <?php echo $ip_forward; ?>
46
47 # Controls source route verification
48 net.ipv4.conf.default.rp_filter = 1
49
50 # Controls the System Request debugging functionality of the kernel
51 kernel.sysrq = 0
52
53 # Controls whether core dumps will append the PID to the core filename.
54 # Useful for debugging multi-threaded applications.
55 kernel.core_uses_pid = 1
56
57 # TCP window scaling and broken routers
58 net.ipv4.tcp_moderate_rcvbuf=0
59 net.ipv4.tcp_default_win_scale=0
60 net.ipv4.tcp_window_scaling=0
61
62 # Mark only out of window RST segments as INVALID. This setting, among
63 # other things, allows data to be sent with SYN packets.
64 net.ipv4.netfilter.ip_conntrack_tcp_be_liberal=1
65
66 # Fixes dst cache overflow bug
67 net.ipv4.route.max_size=262144