ovs连接远程控制器的设置

在使用Docker容器进行网络仿真时,每个容器通过veth-pair与OVS交换机相连,容器IP设置在OVS上。由于网络存在环路,ovs到控制器的连接引发ARP风暴。解决方法是将OVS和控制器连接设为带外模式,通过ovs-vsctl命令设置controller的connection-mode为out-of-band并禁用in-band。这能防止环路引起的ARP风暴。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:
使用docker容器来对网络进行仿真,一个docker容器对应一个网络节点,每个docker容器中有一个ovs交换机,docker容器之间使用veth-pair连接起来,并且绑定到ovs交换机上,docker容器的ip地址设置在ovs的网卡上,如:创建了s1的ovs交换机,就设置本地端口s1的IP地址为docker容器的IP地址,其他的都是转发的端口,命令(ifconfig s1 192.168.0.1 netmask 255.255.255.0 up)。整个网络与宿主机隔离。

docker容器内的默认路由为 route add default dev s1这样,即进入网络当中。

当使用ovs-vsctl set-controller 命令时,由于网络时有环的,当建立ovs到控制器的连接时,会产生arp风暴。

这是由于ovs默认时带内设置,需要把ovs和连接远程控制器都设置为带外设置。

可参考:https://docs.openvswitch.org/en/latest/faq/openflow

设置命令

ovs-vsctl set controller br0 connection-mode=out-of-band
ovs-vsctl set bridge br0 other-config:disable-in-band=true
### 使用 OpenDaylight 控制器OVS 下发流表 #### 配置环境准备 为了确保能够顺利通过 OpenDaylight (ODL) 向 Open vSwitch (OVS) 发送流表配置,需先完成必要的软件安装初始化操作。这包括但不限于: - 安装基础工具包 `unzip` 和 `lrzsz` 以及 JDK 环境,可通过命令 `sudo apt-7-jdk` 来实现[^2]。 #### 设置网络接口 待上述准备工作完成后,建议等待一段时间让系统稳定下来再继续后续的操作。通常情况下,在虚拟机环境中启动并加载所有服务大约需要1至3分钟的时间;之后可以利用 `ifconfig` 命令确认主机已经成功获取到了新的 IP 地址[^3]。 #### 连接 ODL 控制器 OVS 要使 ODL 成功管理 OVS 并对其进行编程控制,则必须建立两者之间的通信链路。具体做法是在 OVS 上指定远程控制的信息,即 ODL 的 IP 地址和监听端口号,默认为6633端口。可以通过 Mininet 创建拓扑结构时加入参数来简化此过程,例如使用如下指令创建一个连接到特定 ODL 实例的交换机实例: ```bash mn --switch ovsk --controller=remote,ip=<ODL_IP>,port=6633 ``` 其中 `<ODL_IP>` 应替换为目标 ODL 控制节点的实际 IP 地址[^4]。 #### 登录 ODL Web UI 及配置流表项 一旦完成了物理/逻辑上的连通性构建,就可以借助图形界面来进行更直观便捷的操作了。访问位于本地地址 http://127.0.0.1:8080/index.html 的 ODL Web 页面,并输入默认凭证 admin/admin 登入管理系统。 进入应用模块后,找到用于管理和编辑流表的功能选项卡。对于遵循 OpenFlow 1.0 协议的情况而言,还需要事先调整目标网桥所支持的最大协议版本号,使之兼容于早期标准版次的要求。执行下面这条命令即可达成目的: ```bash ovs-vsctl set bridge br-sw protocols=OpenFlow10 ``` 最后,在 ODL 提供的相关界面上定义所需转发行为的具体规则集——也就是所谓的“流表”,从而指导数据包在网络内部按照预期路径传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值