-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Dual-stack support #1448
Dual-stack support #1448
Conversation
869d8d9
to
fcd6ba2
Compare
fcd6ba2
to
5dd8eef
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One question + stylistic nits
|
||
return nil | ||
} | ||
|
||
func (dev *vxlanDevice) MACAddr() net.HardwareAddr { | ||
return dev.link.HardwareAddr | ||
} | ||
|
||
type neighbor struct { | ||
MAC net.HardwareAddr | ||
IP ip.IP4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to support IPv6-only installations? I would assume "yes" and in that case, I would convert this to a pointer as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still remains unanswered ;)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the heads up, I had forgot about this. Yes! Good idea. I must change this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After looking a bit more into this, I think this change should be prepared in a separated PR because it requires a not small refactor. I created an issue about this => #1453
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, sounds good 👍
5dd8eef
to
78bd70c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but needs rebase
Add new option for flannel daemon to support dual stack: - "publicIPv6": "IPv6 accessible by other nodes for inter-host communication" - "auto-detect-ipv4": "auto detect ipv4 address of the iface", default value is true. - "auto-detect-ipv6": "auto detect ipv6 address of the iface", default value is false Add new option into `net-conf.json` configuration, like following: { "EnableIPv4": true, "EnableIPv6": true, "Network": "172.16.0.0/16", "IPv6Network": "fc00::/48", "Backend": { "Type": "vxlan" } } EnableIPv4 default value is true for useing kube subnet manager. EnableIpv6 default value is false. Flannel dual stack feature has limitation, only work with vxlan backend and kube subnet manager now. To enable flannel dual stack feature, need to do the following step: 1. setting flanneld daemon with "--kube-subnet-mgr --auto-detect-ipv6" 2. settting "EnableIPv6" and "IPv6Network" in "net-conf.json" like the above configuration. 3. setting network interface that flannel used ipv6 address and default ipv6 gateway in the host node. 4. vxlan support ipv6 tunnel require kernel version >= 3.12. Signed-off-by: yaoice <[email protected]>
5ab3214
to
ba9a55d
Compare
This patch addresses the reviews made on the original PR Signed-off-by: Manuel Buil <[email protected]>
ba9a55d
to
d23baf4
Compare
Should this have closed #248? |
Not exactly. Because flannel does not support ipv6 only yet |
Add new option for flannel daemon to support dual stack:
inter-host communication"
Add new option into
net-conf.json
configuration, like following:{
"EnableIPv4": true,
"EnableIPv6": true,
"Network": "172.16.0.0/16",
"IPv6Network": "fc00::/48",
"Backend": {
"Type": "vxlan"
}
}
EnableIPv4 default value is true for using kube subnet manager.
EnableIpv6 default value is false.
Flannel dual stack feature has limitation, only work with vxlan backend
and kube subnet manager now. To enable flannel dual stack feature, need
to do the following step:
above configuration.
default ipv6 gateway in the host node.
Failed to ensure iptables rules: Error tearing down rules: running [/sbin/ip6tables -t nat -D POSTROUTING -s fc00::/48 ! -d ff00::/8 -j MASQUERADE --random-fully --wait]: exit status 2: ip6tables v1.8.4 (legacy): unknown option "--random-fully"
==> Upgrade Alpine version #1447Signed-off-by: yaoice [email protected]
Description
Todos
Release Note
It also need flannel cni plugin to support dual stack ip allocation, so it
depends on: containernetworking/plugins#570
#248