linklocal service doesnt work

Bug #1712934 reported by Senthilnathan Murugappan
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
Trunk
Fix Committed
Critical
Hari Prasad Killi

Bug Description

version: 4.1.0.0-29~mitaka
OS: ubuntu1404

testcase: TestBasicVMVN.test_generic_link_local_service
testcase log: http://10.204.216.50/Docs/logs/4.1.0.0-29_jenkins-VT_CB_mainline_ub1404_Mitaka-10_1503530075.82/logs//testbasicvmvn.html#test_generic_link_local_service

Reset is sent by vrouter while receiving the syn+ack from the linklocal server.
However the metadata service works fine.

Tried to replicate the metadata server with just the linklocal port info alone modified and still observe the issue.

Please find the linklocal info and the tcpdump outputs below.

root@server9:~# curl -s http://10.87.118.173:8085/Snh_LinkLocalServiceInfo? | xmllint --format -
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?>
<LinkLocalServiceResponse type="sandesh">
  <service_list type="list" identifier="1">
    <list type="struct" size="2">
      <LinkLocalServiceData>
        <linklocal_service_name type="string" identifier="1">metadata</linklocal_service_name>
        <linklocal_service_ip type="string" identifier="2">169.254.169.254</linklocal_service_ip>
        <linklocal_service_port type="i32" identifier="3">80</linklocal_service_port>
        <ipfabric_dns_name type="string" identifier="4"/>
        <ipfabric_ip type="list" identifier="5">
          <list type="string" size="1">
            <element>10.10.0.100</element>
          </list>
        </ipfabric_ip>
        <ipfabric_port type="i32" identifier="6">8775</ipfabric_port>
      </LinkLocalServiceData>
      <LinkLocalServiceData>
        <linklocal_service_name type="string" identifier="1">test</linklocal_service_name>
        <linklocal_service_ip type="string" identifier="2">169.254.169.254</linklocal_service_ip>
        <linklocal_service_port type="i32" identifier="3">8775</linklocal_service_port>
        <ipfabric_dns_name type="string" identifier="4"/>
        <ipfabric_ip type="list" identifier="5">
          <list type="string" size="1">
            <element>10.10.0.100</element>
          </list>
        </ipfabric_ip>
        <ipfabric_port type="i32" identifier="6">8775</ipfabric_port>
      </LinkLocalServiceData>
    </list>
  </service_list>
  <more type="bool" identifier="0">false</more>
</LinkLocalServiceResponse>

Tcpdump for the linklocal service with 169.254.169.254:8775 service.

22:19:29.744632 IP (tos 0x0, ttl 63, id 33695, offset 0, flags [DF], proto TCP (6), length 60)
    10.10.0.12.46923 > 10.10.0.100.8775: Flags [S], cksum 0x14b2 (incorrect -> 0xf39e), seq 2309755801, win 14600, options [mss 1420,sackOK,TS val 2265094 ecr 0,nop,wscale 4], length 0
22:19:29.745792 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    10.10.0.100.8775 > 10.10.0.12.46923: Flags [S.], cksum 0xe2ac (correct), seq 3664565918, ack 2309755802, win 28960, options [mss 1398,sackOK,TS val 23275117 ecr 2265094,nop,wscale 7], length 0
22:19:29.746386 IP (tos 0x0, ttl 63, id 10987, offset 0, flags [DF], proto TCP (6), length 40)
    10.10.0.12.46923 > 10.10.0.100.8775: Flags [R], cksum 0x2484 (correct), seq 2309755802, win 0, length 0
22:19:30.744282 IP (tos 0x0, ttl 63, id 33696, offset 0, flags [DF], proto TCP (6), length 60)

Tcpdump for the regular metadata service with 169.254.169.254:80 service.

22:19:12.162070 IP (tos 0x0, ttl 63, id 10551, offset 0, flags [DF], proto TCP (6), length 60)
    10.10.0.12.35875 > 10.10.0.100.8775: Flags [S], cksum 0x14b2 (incorrect -> 0x45aa), seq 37966193, win 29200, options [mss 1460,sackOK,TS val 22902854 ecr 0,nop,wscale 7], length 0
22:19:12.163121 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    10.10.0.100.8775 > 10.10.0.12.35875: Flags [S.], cksum 0x034c (correct), seq 1379981974, ack 37966194, win 28960, options [mss 1398,sackOK,TS val 23270721 ecr 22902854,nop,wscale 7], length 0
22:19:12.163226 IP (tos 0x0, ttl 63, id 10552, offset 0, flags [DF], proto TCP (6), length 52)
    10.10.0.12.35875 > 10.10.0.100.8775: Flags [.], cksum 0x14aa (incorrect -> 0xa215), ack 1, win 229, options [nop,nop,TS val 22902854 ecr 23270721], length 0
22:19:12.163539 IP (tos 0x0, ttl 63, id 10553, offset 0, flags [DF], proto TCP (6), length 438)
    10.10.0.12.35875 > 10.10.0.100.8775: Flags [P.], cksum 0x162c (incorrect -> 0x86de), seq 1:387, ack 1, win 229, options [nop,nop,TS val 22902854 ecr 23270721], length 386
22:19:12.171158 IP (tos 0x0, ttl 64, id 53205, offset 0, flags [DF], proto TCP (6), length 267)
    10.10.0.100.8775 > 10.10.0.12.35875: Flags [P.], cksum 0xf3ac (correct), seq 1:216, ack 387, win 235, options [nop,nop,TS val 23270723 ecr 22902854], length 215
22:19:12.171299 IP (tos 0x0, ttl 63, id 10554, offset 0, flags [DF], proto TCP (6), length 52)
    10.10.0.12.35875 > 10.10.0.100.8775: Flags [.], cksum 0x14aa (incorrect -> 0x9fb0), ack 216, win 237, options [nop,nop,TS val 22902856 ecr 23270723], length 0
22:19:12.171798 IP (tos 0x0, ttl 63, id 10555, offset 0, flags [DF], proto TCP (6), length 52)
    10.10.0.12.35875 > 10.10.0.100.8775: Flags [F.], cksum 0x14aa (incorrect -> 0x9faf), seq 387, ack 216, win 237, options [nop,nop,TS val 22902856 ecr 23270723], length 0
22:19:12.172054 IP (tos 0x0, ttl 64, id 53206, offset 0, flags [DF], proto TCP (6), length 52)
    10.10.0.100.8775 > 10.10.0.12.35875: Flags [F.], cksum 0x9faf (correct), seq 216, ack 388, win 235, options [nop,nop,TS val 23270724 ecr 22902856], length 0
22:19:12.172125 IP (tos 0x0, ttl 63, id 10556, offset 0, flags [DF], proto TCP (6), length 52)
    10.10.0.12.35875 > 10.10.0.100.8775: Flags [.], cksum 0x14aa (incorrect -> 0x9fac), ack 217, win 237, options [nop,nop,TS val 22902857 ecr 23270724], length 0

Tags: sanity vrouter
description: updated
Revision history for this message
Hari Prasad Killi (haripk) wrote :

The packet from the server is being sent to the vhost instead of to the VM, resulting in the server sending the reset.

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/35252
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/35252
Committed: http://github.com/Juniper/contrail-vrouter/commit/3e73bee0277e1bb667e2276faa6b6b9ff6136c0d
Submitter: Zuul (<email address hidden>)
Branch: master

commit 3e73bee0277e1bb667e2276faa6b6b9ff6136c0d
Author: Divakar D <email address hidden>
Date: Mon Sep 4 19:58:48 2017 +0530

Change of flow key nh for link local

For link local packets, the packet's nh is RCV NH. The flow key nh for
these packets is chosen by Agent as nh of the interface of RCV NH. To
match this flow key nh, Vrouter also started using this NH as flow key
NH

Change-Id: If29d3a6cc2ae8148d690cd204a6813fb76e9715b
closes-bug: #1712934

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.