Uh oh!
There was an error while loading. Please reload this page.
Make DNS records and queries case-insensitive - #2394
Conversation
selansen
commented
Jun 15, 2019
@arkodg as per your comment on moby, it will be a problem if we create container Foo and foo and attach in the same network. so we need to make sure it doesn't break existing functionality. Below is what the test I tried on 19.03 |
thaJeztah
commented
Jun 17, 2019
Should this take some round-robin approach if multiple containers share the same hostname (in different case), but prioritise "exact match" over "match, but different casing"? I think that was the proposal in; moby/moby#28689 (comment)
Oh, could you remove |
arkodg
commented
Jun 17, 2019
@thaJeztah the round-robin approach introduces non deterministic behavior so I would not want to implement that |
selansen
commented
Jun 17, 2019
Agree. Thats will cause wired behavior. |
be98208 to
91601e1ComparethaJeztah
commented
Jun 18, 2019
True, this can be ambiguous, but round-robin is currently supported, and definitely has valid use-cases; example 1: "blue(ish) / green(ish) deployments"mkdir case-sense &&cd case-sense
docker network create -d overlay --attachable myoverlaycat > docker-compose.yml -<<'EOF'version: "3.5"services: web: image: nginx:alpinenetworks: default: external: true name: myoverlayEOFdocker stack deploy -c docker-compose.yml stackblue
docker stack deploy -c docker-compose.yml stackgreen
docker run --rm --network myoverlay alpine nslookup web
nslookup: can't resolve '(null)': Name does not resolveName: webAddress 1: 10.0.1.10Address 2: 10.0.1.13Example 2: docker compose with aliases and scalingcat > docker-compose.yml -<<'EOF'version: "3.5"services: web: image: nginx:alpine networks: default: aliases: - foobarnetworks: default: external: true name: myoverlayEOFdocker-compose --project-name=example up -d --scale web=3
docker run --rm --network myoverlay alpine nslookup foobar
nslookup: can't resolve '(null)': Name does not resolveName: foobarAddress 1: 10.0.1.20 example_web_1.myoverlayAddress 2: 10.0.1.21 example_web_2.myoverlayAddress 3: 10.0.1.22 example_web_3.myoverlay |
thaJeztah
commented
Jun 18, 2019
Oh, looks like you made a typo in your commit message; |
thaJeztah
commented
Jun 18, 2019
Reading the RFC to check if case should be preserved, which seems to be the case (RFC4343 section 4); Also of note; RFC4034, section 6.2; Which might be different than |
arkodg
commented
Jun 18, 2019
With the current changes this is the o/p I guess what you're saying is we need to preserve the name for |
RFC434 states that DNS Servers should be case insensitive This commit makes sure that all DNS queries will be translated to lower ASCII characters and all svcRecords will be saved in lower case to abide by the RFC Relates to moby/moby#21169 Signed-off-by: Arko Dasgupta <arko.dasgupta@docker.com>
91601e1 to
49b1a51Comparearkodg
commented
Jun 19, 2019
PTAL @thaJeztah@selansen with the latest changes the behavior looks like the following |
selansen
commented
Jun 19, 2019
This looks good @arkodg |
full diffs: - moby/libnetwork@fc5a7d9...62a13ae - vishvananda/netlink@b2de5d1...v1.0.0 - vishvananda/netns@604eaf1...13995c7 notable changes in libnetwork: - moby/libnetwork#2366 Bump vishvananda/netlink to 1.0.0 - moby/libnetwork#2339 controller: Check if IPTables is enabled for arrangeUserFilterRule - addresses moby/libnetwork#2158 dockerd when run with --iptables=false modifies iptables by adding DOCKER-USER - addresses moby#35777 With iptables=false dockerd still creates DOCKER-USER chain and rules - addresses docker/for-linux#136 dockerd --iptables=false adds DOCKER-USER chain and modify FORWARD chain anyway - moby/libnetwork#2394 Make DNS records and queries case-insensitive - addresses moby#28689 Embedded DNS is case-sensitive - addresses moby#21169 hostnames with new networking are case-sensitive Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
full diffs: - moby/libnetwork@fc5a7d9...62a13ae - vishvananda/netlink@b2de5d1...v1.0.0 - vishvananda/netns@604eaf1...13995c7 notable changes in libnetwork: - moby/libnetwork#2366 Bump vishvananda/netlink to 1.0.0 - moby/libnetwork#2339 controller: Check if IPTables is enabled for arrangeUserFilterRule - addresses moby/libnetwork#2158 dockerd when run with --iptables=false modifies iptables by adding DOCKER-USER - addresses moby/moby#35777 With iptables=false dockerd still creates DOCKER-USER chain and rules - addresses docker/for-linux#136 dockerd --iptables=false adds DOCKER-USER chain and modify FORWARD chain anyway - moby/libnetwork#2394 Make DNS records and queries case-insensitive - addresses moby/moby#28689 Embedded DNS is case-sensitive - addresses moby/moby#21169 hostnames with new networking are case-sensitive Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Upstream-commit: 344b093258fcb2195fa393081e5224a6c766c798 Component: engine
full diffs: - moby/libnetwork@fc5a7d9...62a13ae - vishvananda/netlink@b2de5d1...v1.0.0 - vishvananda/netns@604eaf1...13995c7 notable changes in libnetwork: - moby/libnetwork#2366 Bump vishvananda/netlink to 1.0.0 - moby/libnetwork#2339 controller: Check if IPTables is enabled for arrangeUserFilterRule - addresses moby/libnetwork#2158 dockerd when run with --iptables=false modifies iptables by adding DOCKER-USER - addresses moby#35777 With iptables=false dockerd still creates DOCKER-USER chain and rules - addresses docker/for-linux#136 dockerd --iptables=false adds DOCKER-USER chain and modify FORWARD chain anyway - moby/libnetwork#2394 Make DNS records and queries case-insensitive - addresses moby#28689 Embedded DNS is case-sensitive - addresses moby#21169 hostnames with new networking are case-sensitive Signed-off-by: Sebastiaan van Stijn <github@gone.nl> (cherry picked from commit 344b093) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
full diffs: - moby/libnetwork@fc5a7d9...62a13ae - vishvananda/netlink@b2de5d1...v1.0.0 - vishvananda/netns@604eaf1...13995c7 notable changes in libnetwork: - moby/libnetwork#2366 Bump vishvananda/netlink to 1.0.0 - moby/libnetwork#2339 controller: Check if IPTables is enabled for arrangeUserFilterRule - addresses moby/libnetwork#2158 dockerd when run with --iptables=false modifies iptables by adding DOCKER-USER - addresses moby/moby#35777 With iptables=false dockerd still creates DOCKER-USER chain and rules - addresses docker/for-linux#136 dockerd --iptables=false adds DOCKER-USER chain and modify FORWARD chain anyway - moby/libnetwork#2394 Make DNS records and queries case-insensitive - addresses moby/moby#28689 Embedded DNS is case-sensitive - addresses moby/moby#21169 hostnames with new networking are case-sensitive Signed-off-by: Sebastiaan van Stijn <github@gone.nl> (cherry picked from commit 344b093258fcb2195fa393081e5224a6c766c798) Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Upstream-commit: f3e1aff81df959e9178433b77e7f3364c22aee59 Component: engine
full diffs: - moby/libnetwork@fc5a7d9...62a13ae - vishvananda/netlink@b2de5d1...v1.0.0 - vishvananda/netns@604eaf1...13995c7 notable changes in libnetwork: - moby/libnetwork#2366 Bump vishvananda/netlink to 1.0.0 - moby/libnetwork#2339 controller: Check if IPTables is enabled for arrangeUserFilterRule - addresses moby/libnetwork#2158 dockerd when run with --iptables=false modifies iptables by adding DOCKER-USER - addresses moby#35777 With iptables=false dockerd still creates DOCKER-USER chain and rules - addresses docker/for-linux#136 dockerd --iptables=false adds DOCKER-USER chain and modify FORWARD chain anyway - moby/libnetwork#2394 Make DNS records and queries case-insensitive - addresses moby#28689 Embedded DNS is case-sensitive - addresses moby#21169 hostnames with new networking are case-sensitive Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Signed-off-by: zach <Zachary.Joyner@linux.com>
Signed-off-by: Arko Dasgupta arko.dasgupta@docker.com