On 08/22/2017 at 11:34 AM, Ziyue Yang wrote:
> Hi,
>
> On Tue, Aug 22, 2017 at 9:30 AM, Xunlei Pang <xpang@redhat.com <mailto:xpang@redhat.com>> 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@redhat.com <mailto:xpang@redhat.com> <mailto:xpang@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 > >>> > Signed-off-by: Ziyue Yang <ziyang@redhat.com <mailto:ziyang@redhat.com> <mailto:ziyang@redhat.com <mailto:ziyang@redhat.com>>>
> >>> >
> >>> > 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.
> >>> >
I think we should use the one in "ssh". Please see another reply of me.> >>> > ---
> >>> > 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.
>
> Yes I agree.
> Since $1 in kdump_setup_ifname is promised to be an interface with valid route, maybe we can use the $1 in kdump_setup_ifname directly as the interface in the ssh_target related code?
>
>
>
> >>>
> >>>
> >>>
> >>> Regards,
> >>> Xunlei
> >>>
> >>> > echo $_config_val
> >>> > }
> >>> >
> >>>
> >>>
> >> _______________________________________________ > >> kexec mailing list -- kexec@lists.fedoraproject.org <mailto:kexec@lists.
fedoraproject.org >
> >> To unsubscribe send an email to kexec-leave@lists.fedoraproject.org <mailto:kexec-leave@lists.fedoraproject.org >
>
>