On 05/07/2021 09:08, li...@rc.inesa.com wrote:
> Dear OVS Team,
>  
> We are seeing an issue occurred in OVS version 2.11.0. Right now we are 
> trying to encrypt our VXLAN packets in communication. The problem is, when 
> the tunnel is already built between host 1 and host 2, if we run the command 
> to let host 1 ping host 2 and at the same time, run tcpdump command to 
> capture the processing packets, we observed that packets from host 1 to host 
> 2 are well encrypted while packets from host 2 to host 1 are in plaintext (it 
> is supposed to be encrypted too).
>  
> Here is the whole processes of how we found this problem:
>  
> Firstly, we install OVS 2.11.0 and ovs-ipsec on both two centos VMs in 
> virtual box.
> External IP of host 1 is: 10.200.46.186, host 2 is: 10.200.46.187
>  
> Next, we run the following command in order to build up a VXLAN tunnel: (used 
> https://docs.openvswitch.org/en/latest/tutorials/ipsec/ as a reference)
> In host 1:
> # ovs-vsctl add-br br-ipsec
> # ip addr add 192.0.0.1/24 dev br-ipsec
> # ip link set br-ipsec up
>  
> In host 2:
> # ovs-vsctl add-br br-ipsec
> # ip addr add 192.0.0.2/24 dev br-ipsec
> # ip link set br-ipsec up
>  
> And then, we run this command in host 1:
> ovs-vsctl add-port br-ipsec tun -- set interface tun type=vxlan 
> options:remote_ip=10.200.46.187 options:psk=swordfish
>  
> And this command in host 2:
> ovs-vsctl add-port br-ipsec tun -- set interface tun type=vxlan 
> options:remote_ip=10.200.46.186 options:psk=swordfish
>  
> The network topology looks like this:
> Host1:
> [root@ovs-ipsec-001 ~]# ovs-vsctl show
> 81d4eef4-ebd7-4cb4-b1ab-d2c4a4469496
>     Bridge br-ipsec
>         Port tun
>             Interface tun
>                 type: vxlan
>                 options: {psk=swordfish, remote_ip="10.200.46.187"}
>         Port br-ipsec
>             Interface br-ipsec
>                 type: internal
>     ovs_version: "2.11.0"
>  
>  
> Host2:
> [root@ovs-ipsec-002 ~]# ovs-vsctl show
> f2bff28e-4adc-4c8c-941a-602d249e6d6e
>     Bridge br-ipsec
>         Port br-ipsec
>             Interface br-ipsec
>                 type: internal
>         Port tun
>             Interface tun
>                 type: vxlan
>                 options: {psk=swordfish, remote_ip="10.200.46.186"}
>     ovs_version: "2.11.0"
>  
>  
> The ping connection between host 1 and host 2 is good, however, the tcpdump 
> processes shows the "come back" packets of ping is in plaintext:

It looks like the "request" is clear text here (not the reply) but ....

> [root@ovs-ipsec-001 ~]# tcpdump -e -ni any net 10.200.46.187

.... it may be because you are specifying "-i any" above. You should run
tcpdump on the physical interface ( -i <physical interface name ). I
think you are seeing the same packet twice.

> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
> listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 
> bytes
> 16:02:53.267379  In 08:00:27:b1:a5:c0 ethertype IPv4 (0x0800), length 150: 
> 10.200.46.187.44471 > 10.200.46.186.4789: VXLAN, flags [I] (0x08), vni 0
> 02:39:d5:12:45:4a > 9a:2f:5d:68:cc:4b, ethertype IPv4 (0x0800), length 98: 
> 192.0.0.2 > 192.0.0.1: ICMP echo request, id 2717, seq 1388, length 64
> 16:02:53.267549 Out 08:00:27:ca:9b:1a ethertype IPv4 (0x0800), length 184: 
> 10.200.46.186 > 10.200.46.187: ESP(spi=0x6914b456,seq=0x6d7), length 148
> 16:02:54.268637  In 08:00:27:b1:a5:c0 ethertype IPv4 (0x0800), length 150: 
> 10.200.46.187.44471 > 10.200.46.186.4789: VXLAN, flags [I] (0x08), vni 0
> 02:39:d5:12:45:4a > 9a:2f:5d:68:cc:4b, ethertype IPv4 (0x0800), length 98: 
> 192.0.0.2 > 192.0.0.1: ICMP echo request, id 2717, seq 1389, length 64
> 16:02:54.268844 Out 08:00:27:ca:9b:1a ethertype IPv4 (0x0800), length 184: 
> 10.200.46.186 > 10.200.46.187: ESP(spi=0x6914b456,seq=0x6d8), length 148
> 16:02:55.270073  In 08:00:27:b1:a5:c0 ethertype IPv4 (0x0800), length 150: 
> 10.200.46.187.44471 > 10.200.46.186.4789: VXLAN, flags [I] (0x08), vni 0
> 02:39:d5:12:45:4a > 9a:2f:5d:68:cc:4b, ethertype IPv4 (0x0800), length 98: 
> 192.0.0.2 > 192.0.0.1: ICMP echo request, id 2717, seq 1390, length 64
> 16:02:55.270265 Out 08:00:27:ca:9b:1a ethertype IPv4 (0x0800), length 184: 
> 10.200.46.186 > 10.200.46.187: ESP(spi=0x6914b456,seq=0x6d9), length 148
> 16:02:56.272043  In 08:00:27:b1:a5:c0 ethertype IPv4 (0x0800), length 150: 
> 10.200.46.187.44471 > 10.200.46.186.4789: VXLAN, flags [I] (0x08), vni 0
> 02:39:d5:12:45:4a > 9a:2f:5d:68:cc:4b, ethertype IPv4 (0x0800), length 98: 
> 192.0.0.2 > 192.0.0.1: ICMP echo request, id 2717, seq 1391, length 64
> 16:02:56.272231 Out 08:00:27:ca:9b:1a ethertype IPv4 (0x0800), length 184: 
> 10.200.46.186 > 10.200.46.187: ESP(spi=0x6914b456,seq=0x6da), length 148
> 16:02:57.274848  In 08:00:27:b1:a5:c0 ethertype IPv4 (0x0800), length 150: 
> 10.200.46.187.44471 > 10.200.46.186.4789: VXLAN, flags [I] (0x08), vni 0
> 02:39:d5:12:45:4a > 9a:2f:5d:68:cc:4b, ethertype IPv4 (0x0800), length 98: 
> 192.0.0.2 > 192.0.0.1: ICMP echo request, id 2717, seq 1392, length 64
> 16:02:57.275044 Out 08:00:27:ca:9b:1a ethertype IPv4 (0x0800), length 184: 
> 10.200.46.186 > 10.200.46.187: ESP(spi=0x6914b456,seq=0x6db), length 148
>  
> As is shown, when the connection come back from host 2 to host 1, it is not 
> encrypted, and it is obvious that the original VXLAN and ICMP packets are 
> revealed.
>  
> Can you please help us figure out why this happen? Or any other alternative 
> solution of encrypting VXLAN packets?
>  
> Thank you very much!
>  
> Bests,
> Yiming Shi
> 
> 
> _______________________________________________
> 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