From: David Ahern <dsa@cumulusnetworks.com>
To: netdev@vger.kernel.org
Cc: David Ahern <dsa@cumulusnetworks.com>
Subject: [PATCH net-next v3 0/2] net: l3mdev: Fix source address for unnumbered deployments
Date: Wed, 24 Feb 2016 11:47:01 -0800 [thread overview]
Message-ID: <1456343223-17622-1-git-send-email-dsa@cumulusnetworks.com> (raw)
David Lamparter noted a use case where the source address selection fails
to pick an address from a VRF interface - unnumbered interfaces. The use
case has the VRF device as the VRF local loopback with addresses and
interfaces enslaved without an address themselves. e.g,
ip addr add 9.9.9.9/32 dev lo
ip link set lo up
ip link add name vrf0 type vrf table 101
ip rule add oif vrf0 table 101
ip rule add iif vrf0 table 101
ip link set vrf0 up
ip addr add 10.0.0.3/32 dev vrf0
ip link add name dummy2 type dummy
ip link set dummy2 master vrf0 up
--> note dummy2 has no address - unnumbered device
ip route add 10.2.2.2/32 dev dummy2 table 101
ip neigh add 10.2.2.2 dev dummy2 lladdr 02:00:00:00:00:02
ping to the 10.2.2.2 through the L3 domain:
$ ping -I vrf0 -c1 10.2.2.2
ping: Warning: source address might be selected on device other than vrf0.
PING 10.2.2.2 (10.2.2.2) from 9.9.9.9 vrf0: 56(84) bytes of data.
picks up the wrong address -- the one from 'lo' not vrf0. And from tcpdump:
12:57:29.449128 IP 9.9.9.9 > 10.2.2.2: ICMP echo request, id 2491, seq 1, length 64
This patch series changes address selection to only consider devices in
the same L3 domain and to use the VRF device as the L3 domains loopback.
$ ping -I vrf0 -c1 10.2.2.2
PING 10.2.2.2 (10.2.2.2) from 10.0.0.3 vrf0: 56(84) bytes of data.
>From tcpdump:
12:59:25.096426 IP 10.0.0.3 > 10.2.2.2: ICMP echo request, id 2113, seq 1, length 64
Now the source address comes from vrf0.
David Ahern (1):
net: l3mdev: address selection should only consider devices in L3
domain
David Lamparter (1):
net: l3mdev: prefer VRF master for source address selection
include/net/l3mdev.h | 4 ++--
net/ipv4/devinet.c | 22 ++++++++++++++++++++++
net/l3mdev/l3mdev.c | 11 +++++++++--
3 files changed, 33 insertions(+), 4 deletions(-)
--
2.1.4
next reply other threads:[~2016-02-24 19:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-24 19:47 David Ahern [this message]
2016-02-24 19:47 ` [PATCH net-next 1/2] net: l3mdev: address selection should only consider devices in L3 domain David Ahern
2016-02-24 19:47 ` [PATCH net-next v3 2/2] net: l3mdev: prefer VRF master for source address selection David Ahern
2016-02-26 19:24 ` [PATCH net-next v3 0/2] net: l3mdev: Fix source address for unnumbered deployments David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456343223-17622-1-git-send-email-dsa@cumulusnetworks.com \
--to=dsa@cumulusnetworks.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).