On 08/22/17 at 09:49am, Baoquan He wrote:
On 08/22/17 at 09:30am, Xunlei Pang wrote:
> On 08/22/2017 at 09:10 AM, Baoquan He wrote:
> > On 08/22/17 at 08:59am, Xunlei Pang wrote:
> >> On 08/21/2017 at 10:07 AM, Ziyue Yang wrote:
> >>>
> >>> On Fri, Aug 18, 2017 at 11:33 AM, Xunlei Pang <xpang(a)redhat.com
<mailto:xpang@redhat.com>> wrote:
> >>>
> >>> On 08/13/2017 at 05:41 PM, Ziyue Yang wrote:
> >>> > When dumping to ssh via local ipv6 address, the ssh parameter
> >>> > in kdump.conf is supposed to have the form like
> >>> >
> >>> > ssh user@fe80::cc1:8bff:fe90:b95f%eth0
> >>> >
> >>> > where "%eth0" is an existing network interface
supporting ipv6.
> >>> >
> >>> > The get_remote_host function in kdump-lib.sh currently
> >>> > doesn't remove the network interface in the link local
ipv6
> >>> > addresses, causing the ip command in kdump_install_net
> >>> > function to fail, leading to a "Bad kdump location"
message.
> >>> >
> >>> > This commit
> >>> > 1) makes get_remote_host function remove network interface
> >>> > in ipv6 addresses if there are any to support host finding;
> >>> > 2) adds is_prefixed_ipv6_link_local function to detect link
local
> >>> > ipv6 address with 'kdump-' prefixed interface name.
> >>> >
> >>> > Signed-off-by: Ziyue Yang <ziyang(a)redhat.com
<mailto:ziyang@redhat.com>>
> >>> > ---
> >>> > kdump-lib.sh | 12 ++++++++++++
> >>> > 1 file changed, 12 insertions(+)
> >>> >
> >>> > diff --git a/kdump-lib.sh b/kdump-lib.sh
> >>> > index 3f0af91..e67b28f 100755
> >>> > --- a/kdump-lib.sh
> >>> > +++ b/kdump-lib.sh
> >>> > @@ -312,6 +312,14 @@ is_ipv6_address()
> >>> > echo $1 | grep -q ":"
> >>> > }
> >>> >
> >>> > +is_prefixed_ipv6_link_local()
> >>> > +{
> >>> > + is_ipv6_address $1 && {
> >>> > + local _host_postfix=${1##*\%}
> >>> > + echo $_host_postfix | grep -q "^kdump-eth"
> >>> > + }
> >>> > +}
> >>> > +
> >>> > # get ip address or hostname from nfs/ssh config value
> >>> > get_remote_host()
> >>> > {
> >>> > @@ -323,6 +331,10 @@ get_remote_host()
> >>> > _config_val=${_config_val%:/*}
> >>> > _config_val=${_config_val#[}
> >>> > _config_val=${_config_val%]}
> >>> > + # factor out network inteface segment in local ipv6
address
> >>> > + if is_ipv6_address $_config_val; then
> >>> > + _config_val=${_config_val%\%*}
> >>> > + fi
> >>>
> >>> There is something unclear to me, why does ipv6 address need an
interface name followed?
> >>> We can see in kdump_install_net(), it uses "ip -o route get to
$_server" to acquire the
> >>> interface name, is there any chance that the name got is different
from that in "ssh"?
> >>>
> >>>
> >>> ssh related commands needs the interface name for routing, since for
link local ipv6 addresses there might be multiple interfaces that could be used for
routing.
> >> That's what I concerned about, e.g. there are multiple available
routing, via eth0 or eth1.
> >> You specified eth1 for "ssh" in /etc/kdump.conf, unfortunately
kdump_install_net() gets
> >> eth0 as kdump's netdev from $(get_ip_route_field "$_route"
"dev"). Is this possible?
> > An available route entry must include destination ip and next hop
> > information, either next hop ip address, or interface to next hop.
> > Only a destination is not a complete route.
>
> I just simplified.
>
> To be specific, my question is that whether the netdev got from the route entry can
be ensured
> to be the same as the one we specified in "ssh" directive, because from
the code we clearly see
> there are two different sources.
Minfei did this on purpose, I remember. He ever explained why, seems no
log record that. Not sure if Dave still can recall.
I do not remember we discussed this issue (link-local and ip route), I
remember we just skipped link-local address to simplify the original
patchset..
I do not understand much about network, but seems the link-local is
local only, it can not go out of local network:
https://www.cisco.com/c/en/us/support/docs/ip/ip-version-6-ipv6/113328-ip...
Thanks
Dave
>
> >
> > >>>
> > >>>
> > >>>
> > >>> Regards,
> > >>> Xunlei
> > >>>
> > >>> > echo $_config_val
> > >>> > }
> > >>> >
> > >>>
> > >>>
> > >> _______________________________________________
> > >> kexec mailing list -- kexec(a)lists.fedoraproject.org
> > >> To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org
> > _______________________________________________
> > kexec mailing list -- kexec(a)lists.fedoraproject.org
> > To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org