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

Support an explicit allowlist for MAC's #139

Closed
wants to merge 1 commit into from
Closed

Support an explicit allowlist for MAC's #139

wants to merge 1 commit into from

Conversation

stbenjam
Copy link
Member

@stbenjam stbenjam commented Feb 7, 2020

In OpenShift, we have a pivot from a "bootstrap" VM to the cluster
Metal3 pod, but there's a short time where both could exist. The
bootstrap knows which mac's it needs to respond to, which is only the
k8s control plane hosts. This adds an optional feature to our dnsmasq
configuration that allows permitting an explicit list of mac's.

@metal3-io-bot metal3-io-bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 7, 2020
@metal3-io-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: stbenjam
To complete the pull request process, please assign hardys
You can assign the PR to them by writing /assign @hardys in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@metal3-io-bot metal3-io-bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Feb 7, 2020
@stbenjam stbenjam changed the title [WIP] Support an explicit allowlist for MAC's Support an explicit allowlist for MAC's Feb 7, 2020
@metal3-io-bot metal3-io-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 7, 2020
@stbenjam
Copy link
Member Author

stbenjam commented Feb 7, 2020

/test-integration

@stbenjam
Copy link
Member Author

stbenjam commented Feb 7, 2020

/test-centos-integration

@stbenjam
Copy link
Member Author

stbenjam commented Feb 7, 2020

/cc @hardys @dtantsur

Please take a look :)

dnsmasq.conf.j2 Outdated Show resolved Hide resolved
In OpenShift, we have a pivot from a "bootstrap" VM to the cluster
Metal3 pod, but there's a short time where both could exist. The
bootstrap knows which mac's it needs to respond to, which is only the
k8s control plane hosts. This adds an optional feature to our dnsmasq
container that blocks DHCP requests from anything but hosts in the
allowlist.

We are not using dnsmasq native features for ignoring clients as DHCPv6
clients is done based on DUID, so the workaround is to block using
iptables.
@derekhiggins
Copy link
Member

When I try a dnsmasq container using this on the bootstrap container I get multiple lines of

iptables v1.4.21: can't initialize iptables table `raw': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

I wonder if we need a iptable related package in the container? Failing that maybe we run these commands in startironic.sh.

@derekhiggins
Copy link
Member

When I try a dnsmasq container using this on the bootstrap container I get multiple lines of

iptables v1.4.21: can't initialize iptables table `raw': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

I wonder if we need a iptable related package in the container? Failing that maybe we run these commands in startironic.sh.

This might be because of the base image I used (I cherry-picked your batch into downstream ironic image), trying again. but maybe if there are different behaviours in different images we should consider using startironic.sh anyways?

@hardys
Copy link
Member

hardys commented Feb 18, 2020

When I try a dnsmasq container using this on the bootstrap container I get multiple lines of

iptables v1.4.21: can't initialize iptables table `raw': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

I wonder if we need a iptable related package in the container? Failing that maybe we run these commands in startironic.sh.

This might be because of the base image I used (I cherry-picked your batch into downstream ironic image), trying again. but maybe if there are different behaviours in different images we should consider using startironic.sh anyways?

We did remove iptables from the image ref #104 because of similar errors IIRC?

Since this is specific to the bootstrap VM putting the logic into startironic.sh seems reasonable to me?

@stbenjam
Copy link
Member Author

Thanks, I moved it over to openshift/installer#3079

@stbenjam
Copy link
Member Author

I think we can close this since it can be solved only on the openshift/installer side.

/close

@metal3-io-bot
Copy link
Contributor

@stbenjam: Closed this PR.

In response to this:

I think we can close this since it can be solved only on the openshift/installer side.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants