alibaba / alibaba/LVS

UDP的FULLNAT模式下,cksum错

Open
#8 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
2k
Forks
679
PR merge metrics
No merged PRs in 30d

Description

keepalived.conf如下:

local_address_group laddr_g1 {
XX.XX.XX.XX
}

virtual_server XX.XX.XX.XX XXXX {
delay_loop 30
lb_algo rr
lb_kind FNAT
protocol UDP
laddr_group_name laddr_g1

```
real_server XX.XX.XX.XX XXXX {
weight 1
}
```

}

修改proc参数:
echo 0 > /proc/sys/net/ipv4/vs/defence_udp_drop
# ethtool -k eth1

Features for eth1:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off
ntuple-filters: off
receive-hashing: on

现象是RS上可以收到LVS转发过来的UDP包,但是checksum出错,RS的内核直接丢弃。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the provided keepalived.conf FULLNAT UDP configuration and the /proc/sys/net/ipv4/vs/defence_udp_drop setting. Compare the checksum on packets forwarded to the real server with the checksum generated or observed by LVS, using the eth1 feature information as context. Done means the real server accepts the forwarded UDP packets without checksum errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
networking, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.