Darrell, is this something you can help with?
On Fri, Feb 08, 2019 at 02:18:53PM +0000, Rostyslav Fridman via dev wrote: > I've encountered the issue that SNAT on OVN logical_router in userspace works > for ICMP but not TCP or UDP. I am seeing this behavior on version 2.10.1 as > well as on top of the git tree. > > I try to access internet (216.58.215.110) from container (10.0.0.2). On the > external-router I have SNAT configured. On the external server I see that > container address is translated for ICMP request, but not for TCP. > container:/# ping 216.58.215.110 > PING 216.58.215.110 (216.58.215.110) 56(84) bytes of data. > 64 bytes from 216.58.215.110: icmp_seq=1 ttl=53 time=140 ms > ^C > --- 216.58.215.110 ping statistics --- > 1 packets transmitted, 1 received, 0% packet loss, time 0ms > rtt min/avg/max/mdev = 140.663/140.663/140.663/0.000 ms > container:/# curl 216.58.215.110 > ^C > --- > external-server:~# tcpdump -i vlan111 host 216.58.215.110 > tcpdump: verbose output suppressed, use -v or -vv for full protocol decode > listening on vlan111, link-type EN10MB (Ethernet), capture size 262144 bytes > 07:53:22.393289 IP 10.250.111.40 > waw02s17-in-f14.1e100.net: ICMP echo > request, id 218, seq 1, length 64 > 07:53:22.533574 IP waw02s17-in-f14.1e100.net > 10.250.111.40: ICMP echo > reply, id 218, seq 1, length 64 > 07:53:24.830595 IP 10.0.0.2.58050 > waw02s17-in-f14.1e100.net.http: Flags > [S], seq 219699121, win 29200, options [mss 1460,sackOK,TS val 2742820693 ecr > 0,nop,wscale 7], length 0 > > In the bridge flows I see that NAT should be performed since flow packet > count is increasing. > ovs-appctl bridge/dump-flows br-int > ... > table_id=41, duration=5135s, n_packets=28, n_bytes=2408, > priority=9,ip,metadata=0x1,nw_src=10.0.0.0/8,actions=ct(commit,table=42,zone=NXM_NX_REG12[0..15],nat(src=10.250.111.40)) > > ovn-trace also confirms that it should be working. > > I have the following scheme: > OVS: trunked bonded port --- netdev bridge (br-ext) --- patch --- netdev > bridge (br-int) > OVN: container --- logical_switch (internal-switch) --- logical_router > (internal-router) --- logical_switch (interconnect) --- logical_router > (external-router) --- logical_switch (external-switch with localnet port to > br-ext) > > OVN configuration: > switch d0f22f65-214f-422e-a5ba-68b7ef66581b (interconnect) > port interconnect_to_internal-router > type: router > addresses: ["00:00:00:73:a8:30 100.64.1.2/24"] > router-port: internal-router_to_interconnect > port interconnect_to_external-router > type: router > addresses: ["00:00:00:da:6b:85 100.64.1.1/24"] > router-port: external-router_to_interconnect > switch bcdc365a-7c2c-4c32-9a51-8107864e879a (internal-switch) > port internal-switch_to_internal-router > type: router > addresses: ["00:00:00:6b:83:b1 10.0.3.253/22"] > router-port: internal-router_to_internal-switch > port default_aaa_eth0 > addresses: ["0a:00:00:00:00:03 10.0.0.2"] > switch 3feba85f-4c6f-4550-9435-7f27837c1fd8 (external-switch) > port vlan111-mgmt > addresses: ["a2:dc:3c:76:8f:27"] > port vlan111 > type: localnet > tag: 111 > addresses: ["unknown"] > port external-switch_to_external-router > type: router > addresses: ["00:00:00:61:f0:c0 10.250.111.40/24"] > router-port: external-router_to_external-switch > router f97f9421-c727-488d-8575-bfaf7a7bde6b > (vlan111-80973513-f2fe-48cb-904a-b205fb0bcc6f) > port external-router_to_interconnect > mac: "00:00:00:da:6b:85" > networks: ["100.64.1.1/24"] > port external-router_to_external-switch > mac: "00:00:00:61:f0:c0" > networks: ["10.250.111.40/24"] > nat 486f81b0-491f-4c90-9ddd-04ea27e70ac5 > external ip: "10.250.111.40" > logical ip: "10.0.0.0/8" > type: "snat" > router 5ca8fc47-1860-43c9-a0ee-a285fd877db5 > (overlay-vlan111-80973513-f2fe-48cb-904a-b205fb0bcc6f) > port internal-router_to_interconnect > mac: "00:00:00:73:a8:30" > networks: ["100.64.1.2/24"] > port internal-router_to_internal-switch > mac: "00:00:00:6b:83:b1" > networks: ["10.0.3.253/22"] > > OVS configuration: > Bridge br-int > Port patch-br-int-br-ext > Interface patch-br-int-br-ext > type: patch > options: {peer=patch-br-ext-br-int} > Port "patch-br-int-to-vlan111 " > Interface "patch-br-int-to-vlan111 " > type: patch > options: {peer="patch-vlan111-to-br-int"} > Port "vlan111-mgmt" > Interface "vlan111-mgmt" > type: internal > Port br-int > Interface br-int > type: internal > Port "veth51a477d8" > Interface "veth51a477d8" > Bridge br-ext > Port "patch-vlan111-to-br-int" > Interface "patch-vlan111-to-br-int" > type: patch > options: {peer="patch-br-int-to-vlan111 "} > Port "bond0" > trunks: [111] > Interface "enp4s0f0" > type: dpdk > options: {dpdk-devargs="0000:04:00.0"} > Interface "enp4s0f1" > type: dpdk > options: {dpdk-devargs="0000:04:00.1"} > Port patch-br-ext-br-int > Interface patch-br-ext-br-int > type: patch > options: {peer=patch-br-int-br-ext} > Port br-ext > Interface br-ext > type: internal > ovs_version: "2.11.90" > > What else should I try? Have I missed anything? > Thanks in advance > > -- > Best regards, > Rostyslav Fridman > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev