Soru Linux'ta sanal ağ aygıtları


Birisi, ayrıntı çiftlerinin ve musluk arayüzlerinin arasındaki farkları ve bu cihazların linux köprüsüne veya openvswitch'e nasıl bağlandığını ayrıntılı olarak açıklayabilir.

Bunu buldum: "Veth, çift olarak oluşturulan özel bir ağ aygıtıdır, trafiğin yönünü değiştirmek için bir yöntem olarak düşünmekteyim, yani çıkış yönü trafiği, Linux protokol yığınından aygıt aygıtına gönderildiğinde, başka bir aynaya gönderilir. veth aygıtı, bu yüzden ayna bir yön trafiği olarak davranır ve daha fazla kullanım için Linux protokol yığına geri koyun.

Dokunma cihazı, mantıksal net bir cihazdır, ancak diğerlerinden farklıdır: kullanıcı uzay programına, doğrudan Linux protokol yığınına trafiği enjekte etmenin yanı sıra, yığından gelen trafiği alabilir. Kullanıcı uzayındaki 2. seviyedeki (veya seviye 3'teki tun cihazında) Linux protokol yığınının tünelini açar, yığın veri trafiği yönünden olduğu gibi kullanıcı alanından gelen verileri dikkate alır.

ama bana tüm resmi vermedi.

şimdiden teşekkürler!


17
2017-09-03 10:08


Menşei


Superuser.com üzerinde daha iyi soru? Linux sanal ağına giriş. . . superuser.com/questions/428694/... - gaoithe


Cevaplar:


İp tuntap ile oluşturulan Linux musluk arayüzleri olamaz ağ ad alanlarını eklemek için kullanılır linuxbridges ya da openvswitch için veth çiftine bağımlı olmamız gerekir.

Sanal Ethernet arayüzleri çift olarak gelir ve bir tüp gibi bağlanırlar - bir veth arabiriminde ne olursa olsun diğer eş arabirimi ortaya çıkar. Sonuç olarak, veth arayüzlerini kullanabilirsiniz ağ ad alanı bağlamak için fiziksel olarak “varsayılan” veya “global” ad alanı aracılığıyla dış dünyaya arayüzler var.

Vnet0 gibi bir TAP cihazı, KVM ve Xen gibi hiper denetleyicilerin sanal ağ arabirim kartını nasıl uyguladıklarıdır (tipik olarak bir VIF veya vNIC denir). Bir TAP cihazına gönderilen bir Ethernet çerçevesi konuk işletim sistemi tarafından alınır.


13
2018-05-17 15:46





Bu sanal ağ yapılarının amacı benzerdir. Ancak ince farklılıklar vardır ve bu nedenle farklı durumlarda kullanılırlar:

  1. MUSLUK: Kullanıcı-uzay uygulaması / VM, musluk ara-yüzüne bir ethernet çerçevesini okuyabilir ya da yazabilir ve fiziksel (ör. Eth0) portları vasıtasıyla çekirdeğe erişen başka bir ethernet çerçevesi gibi ele alınacağı ana çekirdeğe erişebilir. Potansiyel olarak bir yazılım köprüsüne ekleyebilirsiniz (örneğin, linux köprüsü)

  2. VETH: Genellikle, çerçeveyi iletme / alma için bir arabirim "tutmak" (daha iyi ifade yokluğu) için bir arabirim bağlamaya çalıştığınızda kullanılır. Bu varlıklar konteyner / köprü / ovs-switch vb. Olabilir. Bir docker / lxc kabını OVS'ye bağlamak istediğinizi varsayalım. Bir veth çifti oluşturabilir ve ilk arayüzü docker / lxc'e (örneğin, bir fiziksel arabirim olarak) gönderebilir ve diğer arayüzü OVS'ye gönderebilirsiniz. Bunu TAP ile yapamazsınız.

VETH'yi kullanmamız gerektiğini ve OVS'yi kullanırken dokunmamayacağımız konusunda yanlış olmamamız gerektiğini lütfen unutmayın. Tam olarak, musluk arayüzüyle aynı şekilde davranan OVS'deki dahili portları oluşturabiliriz. Fakat bu her zaman mümkün değildir, örneğin musluk benzeri bir arayüzü sentezleyemeyen bir öğeye bağlanmak istediğinizde. yani .:

$ ovs-vsctl add-port ovs-switch-name tap0

Şimdi kullanabilirsiniz tap0 musluk arayüzlerini kullandığımız gibi.


13
2018-01-13 17:36