Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a CRC + validation to UDP gossip messages #2519

Closed
slackpad opened this issue Nov 18, 2016 · 3 comments · Fixed by #2574
Closed

Add a CRC + validation to UDP gossip messages #2519

slackpad opened this issue Nov 18, 2016 · 3 comments · Fixed by #2574
Labels
type/enhancement Proposed improvement or new feature
Milestone

Comments

@slackpad
Copy link
Contributor

We've seen some cases in the wild where UDP corruption happened in gossip messages because UDP's checksum isn't the greatest. We should add a CRC to our gossip payloads down in memberlist and pull via vendoring into Serf and Consul.

@slackpad slackpad added the type/enhancement Proposed improvement or new feature label Nov 18, 2016
@slackpad slackpad added this to the 0.7.2 milestone Nov 18, 2016
@ciprian108
Copy link

Hi,
This a long time ago added feature; however, while using consul v1.2.1, I don't see that the gossip packets have CRC; also, I saw that the sending of CRC is conditioned by counterpart having protocol version 5; but, looking at my nodes:
Consul v1.2.1
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

How can I make consul messages be protected with CRC?

Thanks,
Ciprian.

@blake
Copy link
Member

blake commented Feb 19, 2021

Hi @ciprian108,

Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

This is referring to Consul's RPC protocol version, which is different from the protocol version used by memberlist.

I believe this change should be present in Consul 1.2.x, so I'm not sure why you're not seeing the CRC checksum. Someone from the Consul engineering team should be able to provide more insight into that issue.

@ciprian108
Copy link

Hi @blake,
You are right; I noticed later on that there is CRC for the larger UDP segments, not for the short 'ping' ones; now, in our case, the corruption happens actually in TCP; and to me it seems that TCP doesn't have any CRC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement Proposed improvement or new feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants