Skip to content

Commit 1b821fe

Browse files
tamilmani1989sharmasushant
authored andcommitted
Fix for Pod Connecting to itself via ServiceIP (#248)
* Enable hairpin for veth interface connecting to container interface. This fixes pod connecting to itself via service IP
1 parent 2aace36 commit 1b821fe

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

network/bridge_endpointclient_linux.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ func (client *LinuxBridgeEndpointClient) AddEndpointRules(epInfo *EndpointInfo)
7474
}
7575
}
7676

77+
log.Printf("[net] Setting hairpin for hostveth %v", client.hostVethName)
78+
if err := netlink.SetLinkHairpin(client.hostVethName, true); err != nil {
79+
log.Printf("Setting up hairpin failed for interface %v error %v", client.hostVethName, err)
80+
return err
81+
}
82+
7783
return nil
7884
}
7985

@@ -127,6 +133,7 @@ func (client *LinuxBridgeEndpointClient) SetupContainerInterfaces(epInfo *Endpoi
127133
}
128134

129135
client.containerVethName = epInfo.IfName
136+
130137
return nil
131138
}
132139

network/endpoint_linux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func addRoutes(interfaceName string, routes []RouteInfo) error {
220220
interfaceIf, _ := net.InterfaceByName(interfaceName)
221221

222222
for _, route := range routes {
223-
log.Printf("[ovs] Adding IP route %+v to link %v.", route, interfaceName)
223+
log.Printf("[net] Adding IP route %+v to link %v.", route, interfaceName)
224224

225225
if route.DevName != "" {
226226
devIf, _ := net.InterfaceByName(route.DevName)

0 commit comments

Comments
 (0)