GUE healthcheck fails with self IP
- Dominant language
- C
- Stars
- 2.5k
- Forks
- 239
- PR merge metrics
- No merged PRs in 30d
Description
We are trying to deploy our load-balancers as an all in one box, which means all our load-balancers will run both a L4 and a L7 loadbalancing dameon. While deploying GLB we noticed that each GLB instance on our all-in-one LB host, can redirect packets to other load-balancers' L7 ports, but not to it's own L7 port because GUE healthcheck fails.
This is the output of the _forwarding_table.src.json_ file in all our all-in-one loadbalancers (192.168.152.40, 192.168.152.41, 192.168.152.43)
```
{
"tables": [
{
"name": "first_table",
"hash_key": "12345678901234561234567890123456",
"seed": "34567890123456783456789012345678",
"binds": [
{ "ip": "130.30.30.30", "proto": "tcp", "port": 80 },
{ "ip": "fdb4:98ce:52d4::42", "proto": "tcp", "port": 80 }
],
"backends": [
{ "ip": "192.168.152.40", "state": "active", "healthchecks": {"http": 80, "gue": 19523} },
{ "ip": "192.168.152.41", "state": "active", "healthchecks": {"http": 80, "gue": 19523} },
{ "ip": "192.168.152.43", "state": "active", "healthchecks": {"http": 80, "gue": 19523} }
]
}
]
}
```
And this is the output of our _ip configuration_:
```
3: enp0s8: mtu 1500 xdpgeneric/id:51 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d2:1b:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.152.40/24 brd 192.168.152.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fed2:1b1e/64 scope link
valid_lft forever preferred_lft forever
4: tunl0@NONE: mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
inet 130.30.30.30/32 scope global tunl0
valid_lft forever preferred_lft forever
```
The output of _ip fou show_
```port 19523 gue```
The output of _/etc/glb/forwarding_table.checked.json_
```
{
"healthchecks": null,
"tables": [
{
"name": "first_table",
"hash_key": "12345678901234561234567890123456",
"seed": "34567890123456783456789012345678",
"binds": [
{
"ip": "130.30.30.30",
"proto": "tcp",
"port": 80
},
{
"ip": "fdb4:98ce:52d4::42",
"proto": "tcp",
"port": 80
}
],
"backends": [
{
"ip": "192.168.152.40",
"state": "active",
"healthy": false,
"healthchecks": {
"http": 80,
"gue": 19523
}
},
{
"ip": "192.168.152.41",
"state": "active",
"healthy": true,
"healthchecks": {
"http": 80,
"gue": 19523
}
},
{
"ip": "192.168.152.43",
"state": "active",
"healthy": true,
"healthchecks": {
"http": 80,
"gue": 19523
}
}
]
}
]
}
```
The output of this file is taken form the LB instance with the IP address of "192.168.152.40" and as you can see 192.168.152.40 is showed as unhealthy. On another instance for example on "192.168.152.41", "192.168.152.40" and "192.168.152.43" is seen as healthy whereas "192.168.152.41" is seen as unhealthy.
Any help is appreciated.
Contributor guide
Assessment
This issue has not been assessed yet.