@@ -90,7 +90,7 @@ func (n *NetworkConfig) clean() error {
9090 return nil
9191}
9292
93- func (e * CNIEnv ) generateCNIPlugins (driver string , name string , ipam map [string ]interface {}, opts map [string ]string , ipv6 bool ) ([]CNIPlugin , error ) {
93+ func (e * CNIEnv ) generateCNIPlugins (driver string , name string , ipam map [string ]interface {}, opts map [string ]string , ipv6 bool , internal bool ) ([]CNIPlugin , error ) {
9494 var (
9595 plugins []CNIPlugin
9696 err error
@@ -123,13 +123,21 @@ func (e *CNIEnv) generateCNIPlugins(driver string, name string, ipam map[string]
123123 }
124124 bridge .MTU = mtu
125125 bridge .IPAM = ipam
126- bridge .IsGW = true
127- bridge .IPMasq = iPMasq
126+ bridge .IsGW = ! internal
127+ if internal {
128+ bridge .IPMasq = false
129+ } else {
130+ bridge .IPMasq = iPMasq
131+ }
128132 bridge .HairpinMode = true
129133 if ipv6 {
130134 bridge .Capabilities ["ips" ] = true
131135 }
132- plugins = []CNIPlugin {bridge , newPortMapPlugin (), newFirewallPlugin (), newTuningPlugin ()}
136+ if internal {
137+ plugins = []CNIPlugin {bridge , newFirewallPlugin (), newTuningPlugin ()}
138+ } else {
139+ plugins = []CNIPlugin {bridge , newPortMapPlugin (), newFirewallPlugin (), newTuningPlugin ()}
140+ }
133141 if name != DefaultNetworkName {
134142 firewallPath := filepath .Join (e .Path , "firewall" )
135143 ok , err := firewallPluginGEQ110 (firewallPath )
@@ -186,13 +194,15 @@ func (e *CNIEnv) generateCNIPlugins(driver string, name string, ipam map[string]
186194 return plugins , nil
187195}
188196
189- func (e * CNIEnv ) generateIPAM (driver string , subnets []string , gatewayStr , ipRangeStr string , opts map [string ]string , ipv6 bool ) (map [string ]interface {}, error ) {
197+ func (e * CNIEnv ) generateIPAM (driver string , subnets []string , gatewayStr , ipRangeStr string , opts map [string ]string , ipv6 bool , internal bool ) (map [string ]interface {}, error ) {
190198 var ipamConfig interface {}
191199 switch driver {
192200 case "default" , "host-local" :
193201 ipamConf := newHostLocalIPAMConfig ()
194- ipamConf .Routes = []IPAMRoute {
195- {Dst : "0.0.0.0/0" },
202+ if ! internal {
203+ ipamConf .Routes = []IPAMRoute {
204+ {Dst : "0.0.0.0/0" },
205+ }
196206 }
197207 ranges , findIPv4 , err := e .parseIPAMRanges (subnets , gatewayStr , ipRangeStr , ipv6 )
198208 if err != nil {
0 commit comments