[openstack-dev] [Openstack] [neutron]

Abdulhalim Dandoush dandoush at esme.fr
Fri Mar 10 15:48:34 UTC 2017


Dear all,

The issue is that we want to create a virtual link between two VMs on
the same physical machine (regardless of their interfaces and network
already created by neutron that inter-connect them through br-int or
ovs). Let us consider the most simple scenario: same physical machine,
same project, etc.

More specifically, let's say that using network name-spaces we can do it
easily as follow, and we want to do the same for compute VMs.

Create two net NameSpaces and inter-connect them via direct veth link

------------------------------------------------------
$ sudo ip netns add vm1

$ sudo ip netns add vm2

$ sudo ip link add name veth1 type veth peer name veth2

$ sudo ip link set dev veth2 netns vm2

$ sudo ip link set dev veth1 netns vm1

$ sudo ip netns exec vm2 ip link set dev veth2 up

$ sudo ip netns exec vm1 ip link set dev veth1 up

$ sudo ip netns exec vm2 ip address add 10.1.1.2/24 dev veth2

$ sudo ip netns exec vm1 ip address add 10.1.1.1/24 dev veth1

$ sudo ip netns exec vm1 bash

# ifconfig

veth1     Link encap:Ethernet  HWaddr 1e:d8:69:ba:76:e2

          inet addr:10.1.1.1  Bcast:0.0.0.0  Mask:255.255.255.0

          inet6 addr: fe80::1cd8:69ff:feba:76e2/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:8 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:648 (648.0 B)  TX bytes:648 (648.0 B)



# ping 10.1.1.2

PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.

64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.051 ms

64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.061 ms

64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=0.072 ms

^C

--- 10.1.1.2 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 1998ms

--------------------------------------------------------------

Thanks in advance,

Abdulhalim

Le 22/02/2017 02:18, 김기석 [Kiseok Kim] a écrit :
> Hello Roua Touihri,
> 
>  
> 
> I think you should consider neutron service plugin.
> 
> with neutron service plugin, you could crdate your own network service
> what you want.
> 
>  
> 
> you could insert your codes into service plugin interacting with
> event(create, delete, update) and resource(port, sunnet, network..)
> 
>  
> 
> Thank you.
> 
>  
> 
> *From:*Roua Touihri [mailto:roua.touihri at devoteam.com]
> *Sent:* Wednesday, February 22, 2017 12:03 AM
> *To:* openstack-dev at lists.openstack.org; openstack at lists.openstack.org
> *Cc:* Abdulhalim Dandoush
> *Subject:* [Openstack] [openstack-dev][neutron]
> 
>  
> 
> Hello everybody,
> 
>  
> 
> How can we interconnect two VMs without using a bridge or a switch as an
> intermediate. That is, only via a virtual link (e.g. veth or tap). In
> fact, I see that when we create an aditional subnet and two ports of the
> given subnet. Then when I attach each port to a running VM, neutron use
> a bridge as an intermediate element. I want to create a mesh topology
> between several VMs of the same tenant in addition to or without the
> default network created by neutron.
> 
>  
> 
> If such a configuration were not possible, I must then create new APIs
> for doing that. However, I do not know how to get started with this
> task. I guess that I should create new classes similarly to the
> "neutron.create_port" one and maybe to overload the veth/tap constructor.
> 
>  
> 
> Thanks in advance
> 
>  
> 
> -- 
> 
>  
> 
> ​Kindly,
> 
>  
> 
>  
> 
> R.T
> 

-- 
Abdulhalim Dandoush
-------------------------------
PhD in Information Technology
Researcher-Teacher
ESME Sudria, Paris Sud
Images, Signals and Networks Lab
Tel: +33 1 56 20 62 33
Fax: +33 1 56 20 62 62



More information about the OpenStack-dev mailing list