github / github/glb-director

GUE healthcheck fails with self IP

Open
#139 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.