Skip to content

Commit

Permalink
test: add test checklist for proxy protocol
Browse files Browse the repository at this point in the history
Signed-off-by: ywc689 <ywc689@163.com>
  • Loading branch information
ywc689 committed Dec 8, 2023
1 parent 4aa1e68 commit d3f0899
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 1 deletion.
90 changes: 90 additions & 0 deletions test/proxy_protocol/checklist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
Checklist
=========

> notes:
> * [x]: test passed
> * [ ]: not support or untested
* [x] PPv2 + FNAT44 + TCP
* [x] PPv2 + FNAT44 + TCP + Synproxy
* [x] PPv2 + FNAT44 + UDP
* [x] PPv1 + FNAT44 + TCP
* [x] PPv1 + FNAT44 + TCP + Synproxy
* [x] standalone PPv2 + FNAT44 + TCP
* [x] standalone PPv2 + FNAT44 + TCP
* [x] standalone PPv2 + FNAT44 + UDP
* [x] standalone PPv1 + FNAT44 + TCP
* [x] standalone PPv1 + FNAT44 + TCP

* [x] PPv2 + FNAT64 + TCP
* [x] PPv2 + FNAT64 + TCP + Synproxy
* [x] PPv2 + FNAT64 + UDP
* [x] PPv1 + FNAT64 + TCP
* [x] PPv1 + FNAT64 + TCP + Synproxy
* [x] standalone PPv2 + FNAT64 + TCP
* [x] standalone PPv2 + FNAT64 + TCP + Synproxy
* [x] standalone PPv2 + FNAT64 + UDP
* [x] standalone PPv1 + FNAT64 + TCP
* [x] standalone PPv1 + FNAT64 + TCP + Synproxy

* [x] PPv2 + FNAT66 + TCP
* [x] PPv2 + FNAT66 + TCP + Synproxy
* [x] PPv2 + FNAT66 + UDP
* [x] PPv1 + FNAT66 + TCP
* [x] PPv1 + FNAT66 + TCP + Synproxy
* [x] standalone PPv2 + FNAT66 + TCP
* [x] standalone PPv2 + FNAT66 + TCP + Synproxy
* [x] standalone PPv2 + FNAT66 + UDP
* [x] standalone PPv1 + FNAT66 + TCP
* [x] standalone PPv1 + FNAT66 + TCP + Synproxy

* [x] tools/keepalived HTTP_CHECKER + IPv4 backends
* [x] tools/keepalived UDP_CHECKER with payload + IPv4 backends
* [x] tools/keepalived HTTP_CHECKER + IPv6 backends
* [x] tools/eepalived UDP_CHECKER with payload + IPv6 backends
* [x] tools/healthcheck http_checker + IPv4 backends
* [ ] tools/healthcheck tcp_checker with payload + IPv4 backends: NOT SUPPORT
* [ ] tools/healthcheck udp_checker with payload + IPv4 backends: NOT SUPPORT
* [ ] tools/healthcheck udpping_checker with payload + IPv4 backends: NOT SUPPORT
* [x] tools/healthcheck http_checker + IPv6 backends
* [ ] tools/healthcheck tcp_checker with payload + IPv6 backends: NOT SUPPORT
* [ ] tools/healthcheck udp_checker with payload + IPv6 backends: NOT SUPPORT
* [ ] tools/healthcheck udpping_checker with payload + IPv6 backends: NOT SUPPORT
* [x] tools/ipvsadm "--proxy-protocol" config option
* [x] tools/keepalived "proxy-protocol" config keyword (v1|v2|disable)
* [ ] tools/dpvs-agent proxy-protocol service config api: NOT SUPPORT

* [ ] client with PPv2 data + FNAT44 + TCP + PPv2 backends (lb cascading)
* [x] client with PPv1 data + FNAT44 + TCP + PPv1 backends (lb cascading)
* [ ] client with PPv2 data + FNAT44 + UDP + PPv2 backends (lb cascading)
* [ ] client with PPv2 data + FNAT44 + TCP + PPv1 backends (lb cascading)
* [x] client with PPv1 data + FNAT44 + TCP + PPv2 backends (lb cascading)

* [ ] client with PPv2 data + FNAT66 + TCP + PPv2 backends (lb cascading)
* [ ] client with PPv1 data + FNAT66 + TCP + PPv1 backends (lb cascading)
* [ ] client with PPv2 data + FNAT66 + UDP + PPv2 backends (lb cascading)
* [ ] client with PPv2 data + FNAT66 + TCP + PPv1 backends (lb cascading)
* [ ] client with PPv1 data + FNAT66 + TCP + PPv2 backends (lb cascading)

* [ ] client with PPv2 data + FNAT64 + TCP + PPv2 backends (lb cascading)
* [x] client with PPv1 data + FNAT64 + TCP + PPv1 backends (lb cascading)
* [ ] client with PPv2 data + FNAT64 + TCP + PPv1 backends (lb cascading)
* [x] client with PPv1 data + FNAT64 + TCP + PPv2 backends (lb cascading)

* [ ] client with PPv2 data + FNAT44 + TCP + standalone PPv2 backends (lb cascading)
* [x] client with PPv1 data + FNAT44 + TCP + standalone PPv1 backends (lb cascading)
* [ ] client with PPv2 data + FNAT44 + UDP + standalone PPv2 backends (lb cascading)
* [ ] client with PPv2 data + FNAT44 + TCP + standalone PPv1 backends (lb cascading)
* [x] client with PPv1 data + FNAT44 + TCP + standalone PPv2 backends (lb cascading): zero-length duplicated ack may appear

* [ ] client with PPv2 data + FNAT66 + TCP + standalone PPv2 backends (lb cascading)
* [ ] client with PPv1 data + FNAT66 + TCP + standalone PPv1 backends (lb cascading)
* [ ] client with PPv2 data + FNAT66 + UDP + standalone PPv2 backends (lb cascading)
* [ ] client with PPv2 data + FNAT66 + TCP + standalone PPv1 backends (lb cascading)
* [ ] client with PPv1 data + FNAT66 + TCP + standalone PPv2 backends (lb cascading)

* [ ] client with PPv2 data + FNAT64 + TCP + standalone PPv2 backends (lb cascading)
* [x] client with PPv1 data + FNAT64 + TCP + standalone PPv1 backends (lb cascading)
* [ ] client with PPv2 data + FNAT64 + TCP + standalone PPv1 backends (lb cascading)
* [x] client with PPv1 data + FNAT64 + TCP + standalone PPv2 backends (lb cascading): zero-length duplicated ack may appear

3 changes: 2 additions & 1 deletion test/proxy_protocol/nginx/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ stream {
error_log /data/nginx/logs/proxy-error.log;
access_log /data/nginx/logs/proxy-access.log main buffer=32k flush=5s;

proxy_pass 127.0.0.1:8002;
proxy_pass localhost:8002;
proxy_protocol on;
#proxy_protocol_version 2; # Client supports proxy protocol v1 only for open sourced nginx.
}
Expand Down Expand Up @@ -61,6 +61,7 @@ http {
listen 8002 proxy_protocol; # Server supoorts both proxy protocol v1 and v2.
# V2 requires nginx version >= 1.13.11, refer to
# "http://nginx.org/en/CHANGES" for more details.
listen [::]:8002 proxy_protocol;

error_log /data/nginx/logs/backend-error.log;
access_log /data/nginx/logs/backend-access.log backend buffer=32k flush=5s;
Expand Down
2 changes: 2 additions & 0 deletions tools/healthcheck/pkg/helthcheck/http_checker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,12 @@ var http_targets = []Target{
{net.ParseIP("2001::30"), 80, utils.IPProtoTCP},
{net.ParseIP("2001::30"), 443, utils.IPProtoTCP},
{net.ParseIP("192.168.88.30"), 8002, utils.IPProtoTCP}, // control group for proxy protocol
{net.ParseIP("2001::30"), 8002, utils.IPProtoTCP},
}

var http_proxy_proto_targets = []Target{
{net.ParseIP("192.168.88.30"), 8002, utils.IPProtoTCP},
{net.ParseIP("2001::30"), 8002, utils.IPProtoTCP},
}

var http_url_targets = []string{
Expand Down

0 comments on commit d3f0899

Please sign in to comment.