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.
>
> >
> >
> >
> > 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