Okay,

After your explanation, I understand how to operate with OVS’s NAT
function, your answer help with me a lot!

Appreciated for your answer!



---
Best Regards,

Wei-Yu Chen
Wireless Internet Laboratory
Department of Computer Science
National Chiao Tung University

On 4 May 2018 at 10:59:01 AM, Guru Shetty (g...@ovn.org) wrote:

No, OVS NAT cannot do that. OVS NAT in your situation is more useful with a
controller that will program the OVS. And when a packet comes in that needs
to reach the gateway, the controller needs to 1. Create a ARP request for
the gateway's IP, collect the reply and update the flows such that future
packets know the MAC address.

On 2 May 2018 at 20:52, Wei-Yu Chen <aweimeow...@gmail.com> wrote:

> Hi Guru,
>
> Thanks for your reply, but I can’t make sure what MAC address for Gateway,
> doesn’t this should be automatic done by OVS NAT function?
>
>
> ---
> Best Regards,
>
> Wei-Yu Chen
> Wireless Internet Laboratory
> Department of Computer Science
> National Chiao Tung University
>
> On 30 April 2018 at 11:49:29 PM, Guru Shetty (g...@ovn.org) wrote:
>
>
>
> On 26 April 2018 at 06:41, Wei-Yu Chen <aweimeow...@gmail.com> wrote:
>
>> Hello all,
>>
>> Recently, I’m trying on SNAT with OVS, I tried to apply all possible
>> flows to OVS, but SNAT still don’t work, so I post this message for asking
>> your help.
>>
>> In my experiment environment, I used Ubuntu 16.04 with kernel version
>> 4.10.0–28-generic, and OVS’s version 2.9.0.
>>
>> I have a VM in my PC, connected VM and OVS with a Linux bridge, as
>> following illustrated:
>>
>> +———————————–+
>> | |
>> | +——+ +—–+ |
>> | +–+ br +———+ OVS | |
>> | | +——+ vnet2+—+-+ |
>> | | | |
>> | +–+——+ | |
>> | | VM | | |
>> | |10.1.1.2 | | |
>> | +———+ +—+—-+ |
>> | Ubuntu 16.04 | enp2s0 | |
>> +————————+——–+-+
>>
>> And OVS have 2 IP addresses, 10.1.1.1/24 and an public IP
>> address(140.113.x.x) original enp2s0 have. I attached vnet2 and enp2s0 on
>> my OVS.
>>
>> I referred many posts and wrote following script:
>>
>> #!/bin/sh
>> IN="vnet2"
>> OUT="enp2s0"
>>
>> flow1="in_port=$IN,ip,actions=ct(commit,zone=1,nat(src=10.1.1.1)),$OUT"
>> flow2="in_port=$OUT,ip,ct_state=-trk,actions=ct(zone=1,nat)"
>> flow3="in_port=$OUT,ip,ct_state=+trk,ct_zone=1,actions=$IN"
>>
>> # Add Flows
>> sudo ovs-ofctl add-flow $BR $flow1
>> sudo ovs-ofctl add-flow $BR $flow2
>> sudo ovs-ofctl add-flow $BR $flow3
>>
>> But I found ICMP echo to Google DNS from VM (nw_src=10.1.1.2,
>> nw_dst=8.8.8.8), when it passed to enp2s0, only source IP address changed
>> to 10.1.1.1, but source MAC address keep same as VM’s MAC, and destination
>> MAC address keep same as OVS’s MAC address. (VM’s default gateway is
>> 10.1.1.1/24, OVS’s vnet2 interface).
>>
> You need to change the MAC addresses too.
>
>
>
>> Tcpdump’s log:
>>
>>     10.1.1.1 > 8.8.8.8: ICMP echo request, id 725, seq 1, length 64
>> 21:12:09.413082 52:54:00:fd:d6:ce > 70:4d:7b:6e:16:e0, ethertype IPv4 
>> (0x0800), length 98: (tos 0x0, ttl 64, id 41649, offset 0, flags [DF], proto 
>> ICMP (1), length 84)
>>
>> I also tried to find reason by conntrack tool, but it shows only 10.1.1.2
>> have a NEW connection to 8.8.8.8 but didn’t get any reply.
>>
>> I can’t figure out why OVS’s SNAT didn’t work, do my flows have wrong?
>> Any suggestion and idea is appreciated, Thanks very much.
>>
>> P.s. Attachment is illustration snapshot, if illustrate broken in mail
>> viewer, please take a look on the attachment.
>>
>>
>> ---
>> Best Regards,
>>
>> Wei-Yu Chen
>> Wireless Internet Laboratory
>> Department of Computer Science
>> National Chiao Tung University
>>
>> _______________________________________________
>> discuss mailing list
>> disc...@openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>>
>>
>
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to