1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #1395 from c00w/490-warn-ipv4forwarding-disabled

* Runtime: Add warning when net.ipv4.ip_forwarding = 0
This commit is contained in:
Guillaume J. Charmes 2013-08-07 15:31:12 -07:00
commit 2ca018b2eb
8 changed files with 26 additions and 3 deletions

View file

@ -22,6 +22,7 @@ Caleb Spare <cespare@gmail.com>
Calen Pennington <cale@edx.org> Calen Pennington <cale@edx.org>
Charles Hooper <charles.hooper@dotcloud.com> Charles Hooper <charles.hooper@dotcloud.com>
Christopher Currie <codemonkey+github@gmail.com> Christopher Currie <codemonkey+github@gmail.com>
Colin Rice <colin@daedrum.net>
Daniel Gasienica <daniel@gasienica.ch> Daniel Gasienica <daniel@gasienica.ch>
Daniel Mizyrycki <daniel.mizyrycki@dotcloud.com> Daniel Mizyrycki <daniel.mizyrycki@dotcloud.com>
Daniel Robinson <gottagetmac@gmail.com> Daniel Robinson <gottagetmac@gmail.com>

5
api.go
View file

@ -522,6 +522,11 @@ func postContainersCreate(srv *Server, version float64, w http.ResponseWriter, r
out.Warnings = append(out.Warnings, "Your kernel does not support memory swap capabilities. Limitation discarded.") out.Warnings = append(out.Warnings, "Your kernel does not support memory swap capabilities. Limitation discarded.")
} }
if !srv.runtime.capabilities.IPv4Forwarding {
log.Println("Warning: IPv4 forwarding is disabled.")
out.Warnings = append(out.Warnings, "IPv4 forwarding is disabled.")
}
b, err := json.Marshal(out) b, err := json.Marshal(out)
if err != nil { if err != nil {
return err return err

View file

@ -24,6 +24,7 @@ type APIInfo struct {
NGoroutines int `json:",omitempty"` NGoroutines int `json:",omitempty"`
MemoryLimit bool `json:",omitempty"` MemoryLimit bool `json:",omitempty"`
SwapLimit bool `json:",omitempty"` SwapLimit bool `json:",omitempty"`
IPv4Forwarding bool `json:",omitempty"`
LXCVersion string `json:",omitempty"` LXCVersion string `json:",omitempty"`
NEventsListener int `json:",omitempty"` NEventsListener int `json:",omitempty"`
KernelVersion string `json:",omitempty"` KernelVersion string `json:",omitempty"`

View file

@ -510,6 +510,9 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
if !out.SwapLimit { if !out.SwapLimit {
fmt.Fprintf(cli.err, "WARNING: No swap limit support\n") fmt.Fprintf(cli.err, "WARNING: No swap limit support\n")
} }
if !out.IPv4Forwarding {
fmt.Fprintf(cli.err, "WARNING: IPv4 forwarding is disabled.\n")
}
return nil return nil
} }

View file

@ -534,6 +534,10 @@ func (container *Container) Start(hostConfig *HostConfig) error {
container.Config.MemorySwap = -1 container.Config.MemorySwap = -1
} }
if !container.runtime.capabilities.IPv4Forwarding {
log.Printf("WARNING: IPv4 forwarding is disabled. Networking will not work")
}
// Create the requested bind mounts // Create the requested bind mounts
binds := make(map[string]BindMap) binds := make(map[string]BindMap)
// Define illegal container destinations // Define illegal container destinations

View file

@ -1025,7 +1025,8 @@ Display system-wide information
"NFd": 11, "NFd": 11,
"NGoroutines":21, "NGoroutines":21,
"MemoryLimit":true, "MemoryLimit":true,
"SwapLimit":false "SwapLimit":false,
"IPv4Forwarding":true
} }
:statuscode 200: no error :statuscode 200: no error

View file

@ -15,8 +15,9 @@ import (
) )
type Capabilities struct { type Capabilities struct {
MemoryLimit bool MemoryLimit bool
SwapLimit bool SwapLimit bool
IPv4Forwarding bool
} }
type Runtime struct { type Runtime struct {
@ -240,6 +241,12 @@ func (runtime *Runtime) UpdateCapabilities(quiet bool) {
if !runtime.capabilities.SwapLimit && !quiet { if !runtime.capabilities.SwapLimit && !quiet {
log.Printf("WARNING: Your kernel does not support cgroup swap limit.") log.Printf("WARNING: Your kernel does not support cgroup swap limit.")
} }
content, err3 := ioutil.ReadFile("/proc/sys/net/ipv4/ip_forward")
runtime.capabilities.IPv4Forwarding = err3 == nil && len(content) > 0 && content[0] == '1'
if !runtime.capabilities.IPv4Forwarding && !quiet {
log.Printf("WARNING: IPv4 forwarding is disabled.")
}
} }
} }

View file

@ -269,6 +269,7 @@ func (srv *Server) DockerInfo() *APIInfo {
Images: imgcount, Images: imgcount,
MemoryLimit: srv.runtime.capabilities.MemoryLimit, MemoryLimit: srv.runtime.capabilities.MemoryLimit,
SwapLimit: srv.runtime.capabilities.SwapLimit, SwapLimit: srv.runtime.capabilities.SwapLimit,
IPv4Forwarding: srv.runtime.capabilities.IPv4Forwarding,
Debug: os.Getenv("DEBUG") != "", Debug: os.Getenv("DEBUG") != "",
NFd: utils.GetTotalUsedFds(), NFd: utils.GetTotalUsedFds(),
NGoroutines: runtime.NumGoroutine(), NGoroutines: runtime.NumGoroutine(),