slirpnetstack:使用gvisornetstack的slirp4netns实现

时间:2021-05-18 01:43:25
【文件属性】:
文件名称:slirpnetstack:使用gvisornetstack的slirp4netns实现
文件大小:66KB
文件格式:ZIP
更新时间:2021-05-18 01:43:25
Go slirpnetstack 非特权网络名称空间的用户模式网络。 首先看一下slirp4netns项目: 该代码的总体思路是: 获取其他人(例如容器)使用的网络名称空间的句柄。 打开居住在其中的tun / tap设备。 从该名称空间进程接收/发送L3数据包。 这些L3数据包的神奇之处在于-slirpnetstack使用用户空间(非特权)网络堆栈。 它能够终止网络连接并将其转换为syscall。 因此,从来宾网络名称空间接收到的SYN在主机内核名称空间中变为connect()。 L3 UDP数据包变为sendto(),依此类推。 slirpnetstack可以做三件事: 它可以将离开来宾名称空间的连接“路由”到主机名称空间提供的Internet。 这对于为访客提供Internet访问很有用。 经典SLIRP用例。 它可以“本地转发”连接。 它将绑定到主机ip / port
【文件预览】:
slirpnetstack-master
----LICENSE-BSD-Cloudflare(1KB)
----netns_utils.go(713B)
----.gitignore(113B)
----go.mod(1KB)
----routing.go(5KB)
----Makefile(2KB)
----ext()
--------ext.go(63B)
----.travis.yml(908B)
----net.go(6KB)
----pp.go(2KB)
----main_test.go(673B)
----test-gvisor.sh(1KB)
----go.sum(44KB)
----proxy.go(4KB)
----addr_test.go(1004B)
----main.go(10KB)
----README.md(7KB)
----tests()
--------__init__.py(26B)
--------cover.py(3KB)
--------base.py(9KB)
--------mockdns()
--------test_basic.py(47KB)
--------mocktcpecho()
--------mockudpecho()
--------utils.py(3KB)
--------runner.py(698B)
----stack.go(7KB)
----fwd.go(6KB)
----kacon.go(3KB)
----metrics.go(1KB)
----local_routes.go(1KB)
----addr.go(9KB)
----udp.go(847B)
----unconn()
--------unconn.go(3KB)

网友评论