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