Hoz*_*ard 1 linux networking openvswitch
我要做的是通过裸机PC中的Open vSwitch将数据包发送到服务器,而不是在VM上。
为此,我正在考虑以下结构。
服务器电脑
-----------------------------
| ------ |
| |服务器| |
| ------ |
| | veth2(192.168.0.152)|
| | |
| | veth1 |
| ----------- |
| | OVS(br0)| |
| ----------- |
| | eth0(192.168.0.157)|
------- | ---------------------
|
------- | --------
| 客户端电脑|
----------------
用于制作上述环境
,我在下面的命令中做了。
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ip链接添加veth1类型veth对等名称veth2 ifconfig veth1向上 ifconfig veth2向上
之后,我尝试在客户端和服务器之间建立TCP连接。
我检查了客户端的SYN数据包是否已发送到veth2。但是,服务器无法接收该数据包。
我无法猜测出什么问题以及如何在环境之上做出贡献。
我找到了解决方案。
通过使用网络名称空间,我可以创建逻辑网络堆栈。
http://man7.org/linux/man-pages/man8/ip-netns.8.html http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ip链接添加veth1类型veth对等名称veth2
ip netns添加ns1 ip链接集veth2 ns1
完成之后,我可以得到以下结构
服务器电脑
-------------------------------
| ----------------------- |
| | ns1 | |
| | ------ | |
| | |服务器| | |
| | ------ | |
| | veth2 |(192.168.0.157)| |
| ----------------------- |
| | |
| | |
| | veth1 |
| ----------- |
| | OVS(br0)| |
| ----------- |
| eth0 |(192.168.0.157)|
----------- | -------------------
|
------ | --------
| 客户端电脑|
---------------
| 归档时间: |
|
| 查看次数: |
5209 次 |
| 最近记录: |