欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用 Open vSwitch 进行第 3 层路由选择

最编程 2024-06-26 14:36:12
...

Open vSwitch(OVS)是许多与虚拟化和云相关的重要产品和项目的核心组件(考虑到OpenStack Quantum,CloudStack,XenServer和Nicira NVP都利用了OVS)。之前我已经讨论过如何在OVS中使用VLAN在这里也是)以及如何在OVS中使用链路聚合。在本文中,我将探讨在层3上使用OVS进行VLAN间路由的问题。

在我看来,谈论使用OVS进行第3层路由实际上有点用词不当。(据我所能确定的那样)实际上,OVS依赖于Linux内核中内置的路由功能,并且不执行路由功能本身。

要将OVS配置为进行VLAN间路由,您需要执行以下步骤:

  1. 为每个VLAN配置OVS。

  2. 配置VLAN接口。

  3. 在Linux内核中启用IP路由。

让我们更详细地看一下每个步骤。

为VLAN配置OVS

这是我已经写过的,因此,请参考以下文章之一以获取更多信息:

对Open vSwitch配置的一些了解

Open vSwitch伪网桥的VLAN

在Open vSwitch虚假网桥 libvirt虚拟网络

完成此步骤后,就可以配置VLAN接口了。

配置VLAN接口

您可以将这些VLAN接口视为多层物理交换机上的交换虚拟接口(SVI)或桥接虚拟接口(BVI)的等效项。例如,如果您熟悉Cisco交换机,则可以将它们视为interface vlan等效的交换机。在Brocade FastIron交换机系列中,这些interface ve等效。

要在OVS中创建VLAN接口,请使用以下命令:

ovs-vsctl add-port <bridge name> <port name> -- set interface <port name> type=internal

请注意,据我所知,VLAN接口需要连接到该特定VLAN的相应OVS虚假网桥(更多信息,请参见)。

我(尚未)找到有关此命令背后的理论(或原理)的详细讨论,但是我可以告诉您,它的作用是启用“伪”设备,该设备可以在Linux中配置为第3层接口。 。(换句话说,您可以为其分配IP地址。)这与我在关于跨OVS运行主机管理的文章中描述的技术相同。

您需要针对所需的每个VLAN接口(即,应通过此启用了OVS的主机进行路由的每个VLAN)重复此过程。

创建VLAN接口后,您需要在Linux中进行配置。确切的过程在Linux发行版之间有所不同。在Ubuntu(我通常使用)中,这意味着在中创建适当的配置节/etc/network/interfaces

假设您要在两个VLAN(VLAN 100和VLAN 200)之间进行路由。如果OVS上的VLAN接口被命名为vlan100vlan200,则可以配置/etc/network/interfaces为包括以下内容:

auto vlan100
iface vlan100 inet static
address 192.168.100.1
netmask 255.255.255.0

auto vlan200
iface vlan200 inet static
address 192.168.200.1
netmask 255.255.255.0

当然,这些只是示例。您需要为每个涉及的VLAN提供适当的IP地址。

创建和配置VLAN接口后,就可以进行最后一步了-在Linux内核中启用IP路由(或IP转发)。

在Linux内核中启用IP转发

万维网上的许多站点对此文件进行了充分的记录。这只是一个例子。对于那些不想打扰另一个网站的人,这里有一个快速的总结:

  • 要临时启用IP转发,请使用sysctl -w net.ipv4.ip_forward=1

  • 要永久启用IP转发,编辑sysctl.conf,这样net.ipv4.ip_forward设置为1。

启用IP转发后,您应该能够将IP流量从一个VLAN通过OVS VLAN接口路由到另一个VLAN。您需要将设备的默认网关设置为OVS VLAN接口上的IP地址,或者需要手动操作路由表。这两种技术的操作步骤将根据您的操作系统而有所不同。我使用Windows Server来宾域对其进行了测试,该域在一个VLAN上运行,并配置为将OVS VLAN接口用作默认网关,并ping与另一个VLAN上的另一台设备进行通信。最大的挑战是确保路由表正确,以便每个设备都指向适当的默认网关(该网关应对应于分配给匹配的OVS VLAN接口的IP地址)。

随时在下面的评论中发布任何问题,更正或澄清。始终欢迎您提供反馈和任何有礼貌的意见。

翻译自:https://blog.scottlowe.org/2012/10/31/layer-3-routing-with-open-vswitch/

推荐阅读