Hello VPP experts,

I'm trying to use GRE tunnelling inside Microsft Azure but I'm having some 
troubles in making it work.

Please, attached you can find the configuration I have inside Azure. What I 
would like to do is to send packets from VM1 to VM4, passing through the two 
VMs in the middle, in which VPP is deployed. Between VM2 and VM3 I would like 
to deploy a GRE tunnel.

More in details, the packets should go from Eth1 of VM1 to eth1 of VM2. Here 
the packets are passed to eth2 and using a GRE tunnel, the packets should reach 
eth2 of VM3.

Note that inside VM2 and VM3 I have deployed VPP and both the nic eth1 and eth2 
are controlled by VPP

For now, what I have is that the packets are correctly processed by VPP but 
they get lost between the link VM2 and VM3.

To setup GRE and ip routes, inside the VPP CLI I typed these commands:

 create gre tunnel src 10.0.20.4 dst 10.0.20.5     // to create the GRE tunnel 
between eth2 of VM2 and eth2 of VM3
set int state gre0 up
ip route add 10.0.30.0/24 via gre0     // to route all the packets that have to 
go towards VM4 via the gre interface




If I do a trace add dpdk-input and show trace I obtain the following trace:

01:50:51:710865: dpdk-input
  FailsafeEthernet2 rx queue 0
  buffer 0x293aa: current data 14, length 84, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
                  ext-hdr-valid
                  l4-cksum-computed l4-cksum-correct l2-hdr-offset 0
  PKT MBUF: port 3, nb_segs 1, pkt_len 98
    buf_len 2176, data_len 98, ol_flags 0x0, data_off 128, phys_addr 0x18e4eb00
    packet_type 0x11 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x0 fdir.hi 0x0 fdir.lo 0x0
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
  IP4: a0:3d:6f:00:c1:8f -> 00:0d:3a:95:04:ae
  ICMP: 10.0.10.5 -> 10.0.30.5
    tos 0x00, ttl 64, length 84, checksum 0xae35
    fragment id 0x506a, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x19f2
01:50:51:710897: ip4-input
  ICMP: 10.0.10.5 -> 10.0.30.5
    tos 0x00, ttl 64, length 84, checksum 0xae35
    fragment id 0x506a, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x19f2
01:50:51:710902: ip4-lookup
  fib 0 dpo-idx 4 flow hash: 0x00000000
  ICMP: 10.0.10.5 -> 10.0.30.5
    tos 0x00, ttl 64, length 84, checksum 0xae35
    fragment id 0x506a, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x19f2
01:50:51:710904: ip4-midchain
    GRE: 10.0.20.4 -> 10.0.20.5
      tos 0x00, ttl 254, length 108, checksum 0x805a
      fragment id 0x0000
    GRE ip4
01:50:51:710907: adj-midchain-tx
  adj-midchain:[4]:ipv4 via 0.0.0.0 gre0: mtu:9000 
4500000000000000fe2f80c60a0014040a00140500000800
  stacked-on:
    [@3]: ipv4 via 10.0.20.5 FailsafeEthernet4: mtu:9000 
123456789abc000d3a9514d90800
01:50:51:710908: ip4-rewrite
  tx_sw_if_index 2 dpo-idx 2 : ipv4 via 10.0.20.5 FailsafeEthernet4: mtu:9000 
123456789abc000d3a9514d90800 flow hash: 0x00000000
  00000000: 123456789abc000d3a9514d908004500006c00000000fd2f815a0a0014040a00
  00000020: 14050000080045000054506a40003f01af350a000a050a001e050800
01:50:51:710910: FailsafeEthernet4-output
  FailsafeEthernet4
  IP4: 00:0d:3a:95:14:d9 -> 12:34:56:78:9a:bc
  GRE: 10.0.20.4 -> 10.0.20.5
    tos 0x00, ttl 253, length 108, checksum 0x815a
    fragment id 0x0000
  GRE ip4
01:50:51:710911: FailsafeEthernet4-tx
  FailsafeEthernet4 tx queue 0
buffer 0x293aa: current data -24, length 122, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
                  ext-hdr-valid
                  l4-cksum-computed l4-cksum-correct l2-hdr-offset 0
  PKT MBUF: port 3, nb_segs 1, pkt_len 122
    buf_len 2176, data_len 122, ol_flags 0x0, data_off 104, phys_addr 0x18e4eb00
    packet_type 0x11 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x0 fdir.hi 0x0 fdir.lo 0x0
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
  IP4: 00:0d:3a:95:14:d9 -> 12:34:56:78:9a:bc
  GRE: 10.0.20.4 -> 10.0.20.5
    tos 0x00, ttl 253, length 108, checksum 0x815a
    fragment id 0x0000
  GRE ip4


the part that I don't understand and maybe could be an issue on why GRE is not 
working is this one:

01:50:51:710910: FailsafeEthernet4-output
  FailsafeEthernet4
  IP4: 00:0d:3a:95:14:d9 -> 12:34:56:78:9a:bc
  GRE: 10.0.20.4 -> 10.0.20.5
    tos 0x00, ttl 253, length 108, checksum 0x815a
    fragment id 0x0000
  GRE ip4

where there is a MAC address which does not belong to any nic  of the VMs: 
12:34:56:78:9a:bc

Could you help me  to highlight what I'm missing in my configuration? Perhaps 
I'm missing some route tables?

Thanks in advance for your answers,
Francesco

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#12137): https://lists.fd.io/g/vpp-dev/message/12137
Mute This Topic: https://lists.fd.io/mt/29629256/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to