Skip to content

Commit fe8cdd8

Browse files
BSWANGl1b0k
authored andcommitted
change source ip address from 169.254.1.1 to hostIP
Signed-off-by: bingshen.wbs <bingshen.wbs@alibaba-inc.com>
1 parent bc5b522 commit fe8cdd8

2 files changed

Lines changed: 30 additions & 22 deletions

File tree

plugin/datapath/exclusive_eni_linux.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -274,15 +274,10 @@ func generateVeth1Cfg(cfg *types.SetupConfig, link netlink.Link, peerMAC net.Har
274274
}
275275

276276
func generateHostSlaveCfg(cfg *types.SetupConfig, link netlink.Link) *nic.Conf {
277-
var addrs []*netlink.Addr
278277
var routes []*netlink.Route
279278
var sysctl map[string][]string
280279

281280
if cfg.ContainerIPNet.IPv4 != nil {
282-
addrs = append(addrs, &netlink.Addr{
283-
IPNet: LinkIPNet,
284-
})
285-
286281
// add route to container
287282
routes = append(routes, &netlink.Route{
288283
LinkIndex: link.Attrs().Index,
@@ -291,10 +286,6 @@ func generateHostSlaveCfg(cfg *types.SetupConfig, link netlink.Link) *nic.Conf {
291286
})
292287
}
293288
if cfg.ContainerIPNet.IPv6 != nil {
294-
addrs = append(addrs, &netlink.Addr{
295-
IPNet: LinkIPNetv6,
296-
})
297-
298289
routes = append(routes, &netlink.Route{
299290
LinkIndex: link.Attrs().Index,
300291
Scope: netlink.SCOPE_LINK,
@@ -306,7 +297,6 @@ func generateHostSlaveCfg(cfg *types.SetupConfig, link netlink.Link) *nic.Conf {
306297
contCfg := &nic.Conf{
307298
IfName: cfg.HostVETHName,
308299
MTU: cfg.MTU,
309-
Addrs: addrs,
310300
Routes: routes,
311301
SysCtl: sysctl,
312302
}

plugin/datapath/exclusive_eni_linux_test.go

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,22 @@ func TestDataPathExclusiveENI(t *testing.T) {
133133
assert.Equal(t, cfg.MTU, hostVETHLink.Attrs().MTU)
134134
assert.True(t, hostVETHLink.Attrs().Flags&net.FlagUp != 0)
135135

136-
// ip 169.254.1.1/32
137-
ok, err = FindIP(hostVETHLink, &terwayTypes.IPNetSet{
138-
IPv4: LinkIPNet,
139-
IPv6: LinkIPNetv6,
140-
})
136+
// no explicit IP assignment - should auto borrow IP
137+
addrs, err := netlink.AddrList(hostVETHLink, netlink.FAMILY_ALL)
141138
assert.NoError(t, err)
142-
assert.True(t, ok)
139+
// Only link-local or auto-assigned addresses, no explicit IPv4/IPv6 from cfg.HostIPSet
140+
for _, addr := range addrs {
141+
if addr.IP.IsLinkLocalUnicast() || addr.IP.IsLinkLocalMulticast() {
142+
continue
143+
}
144+
// Should not have explicit IPs assigned
145+
if cfg.HostIPSet != nil && cfg.HostIPSet.IPv4 != nil {
146+
assert.NotEqual(t, cfg.HostIPSet.IPv4.IP.String(), addr.IP.String())
147+
}
148+
if cfg.HostIPSet != nil && cfg.HostIPSet.IPv6 != nil {
149+
assert.NotEqual(t, cfg.HostIPSet.IPv6.IP.String(), addr.IP.String())
150+
}
151+
}
143152

144153
// route 169.10.0.10 dev hostVETH
145154
routes, err := netlink.RouteListFiltered(netlink.FAMILY_V4, &netlink.Route{
@@ -347,13 +356,22 @@ func TestDataPathExclusiveENIMultiNetwork(t *testing.T) {
347356
assert.Equal(t, cfg.MTU, hostVETHLink.Attrs().MTU)
348357
assert.True(t, hostVETHLink.Attrs().Flags&net.FlagUp != 0)
349358

350-
// ip 169.254.1.1/32
351-
ok, err = FindIP(hostVETHLink, &terwayTypes.IPNetSet{
352-
IPv4: LinkIPNet,
353-
IPv6: LinkIPNetv6,
354-
})
359+
// no explicit IP assignment - should auto borrow IP
360+
addrs, err := netlink.AddrList(hostVETHLink, netlink.FAMILY_ALL)
355361
assert.NoError(t, err)
356-
assert.True(t, ok)
362+
// Only link-local or auto-assigned addresses, no explicit IPv4/IPv6 from cfg.HostIPSet
363+
for _, addr := range addrs {
364+
if addr.IP.IsLinkLocalUnicast() || addr.IP.IsLinkLocalMulticast() {
365+
continue
366+
}
367+
// Should not have explicit IPs assigned
368+
if cfg.HostIPSet != nil && cfg.HostIPSet.IPv4 != nil {
369+
assert.NotEqual(t, cfg.HostIPSet.IPv4.IP.String(), addr.IP.String())
370+
}
371+
if cfg.HostIPSet != nil && cfg.HostIPSet.IPv6 != nil {
372+
assert.NotEqual(t, cfg.HostIPSet.IPv6.IP.String(), addr.IP.String())
373+
}
374+
}
357375

358376
// route 169.10.0.10 dev hostVETH
359377
routes, err := netlink.RouteListFiltered(netlink.FAMILY_V4, &netlink.Route{

0 commit comments

Comments
 (0)