利用物理机搭建OVS时,set-manager无法连接的解决办法

在搭建SDN环境时,遇到物理机上的OVS无法通过ovsdb-client连接的问题。尽管能ping通,且控制器连接正常,但无论尝试改变端口还是使用passive模式,ovs-vsctl都无法设置manager。查阅官方文档后发现需在ovsdb-server启动参数中加入manager_options。添加后,成功连接OVS,强调理解官方文档的重要性。

问题描述:

       在搭建简易的SDN真实网络时,在计算机上用ovs模拟OpenFlow交换机,一台计算机搭建Floodlight模拟控制器,同时利用ovsdb-client通过OVSDB进行远程配置,在利用自动连接管理交换机时,发现无法连接到OVS。但是在原本在mininet上测试的时候,可以正常连通。

问题排查:

       首先,测试两台计算机之间的连通性,发现能够ping通两台机子,同时控制器连接也是正常的,但是位于同一台计算机的ovsdb-client程序却无法连通ovs。

      考虑到端口是否被占用,修改了原本连接的端口号,将6640改成6666,发现还是无法连通。

      查看官方OVS官方文档,对于设置manager的操作只提到了两种,active模式:

      ovs-vsctl set-manager tcp:<ip>:<port>

       passive模式:

       ovs-vsctl set-manager ptcp:<port>

      于是测试了用passive模式连接,还是无法连上。

      索性暴力点,搜索了所有官方文档有关manager的地方,发现一个关键的问题:

These commands manipulate the manager_options column in the Open_vSwitch table and rows in the Managers table. When ovsdb−server is configured to use the manager_options column for OVSDB connections (as described in the startup scripts provided with Open vSwitch; the corresponding ovsdb−server command option is --remote=db:Open_vSwitch,Open_vSwitch,manager_options), this allows the administrator to use ovs−vsctl to configure database connections。

     这段话里提到,需要设置manager_options才能够连接远端管理,查看了我的ovsdb-server启动配置语句,

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:Open_vSwitch,Open_vSwitch --private-key=db:Open_vSwitch,SSL,private_key \ --certificate=db:Open_vSwitch,SSL,certificate \ --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ --pidfile --detach

其中并为设置manager_options,所以在对应的地方加上,如下

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:Open_vSwitch,Open_vSwitch,manager_options \ --private-key=db:Open_vSwitch,SSL,private_key \ --certificate=db:Open_vSwitch,SSL,certificate \ --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ --pidfile --detach

重新启动ovsdb-server,发现连接manger成功。

问题总结:

       在安装ovs的时候,直接参照网上的教程一步步做的,并不知道其中真正的意义是什么,所以在配置ovsdb-server初始化的时候,并没有考虑到自身需求,造成问题难以排查。所以,尽量多看官方文档!!!

<think>好的,我现在需要帮助用户解决如何清除Open vSwitch的原有配置,以解决NFSen启动失败的问题,特别是地址已被占用的情况。首先,我要回想用户提供的引用内容,看看里面有没有相关的命令或者步骤。 根据引用中的信息,用户提到了ovs-vsctl的各种命令,比如删除网桥(del-br)、删除端口(del-port)等。比如引用2和3中提到,可以使用ovs-vsctl del-br br0来删除网桥,并且如果加上--if-exists参数,即使网桥不存在也不会报错。这可能是一个关键点,因为用户可能希望彻底清除所有配置,不管是否存在某些组件。 用户的问题可能是由于之前的OVS配置占用了某些网络接口或端口,导致NFSen启动地址冲突。因此,清除所有OVS的配置,包括网桥、端口、控制器设置等,可能会有帮助。 接下来,我需要整理出步骤来彻底清除OVS的配置。首先,列出所有现有的网桥,然后逐个删除。可能还需要检查并删除相关的端口,特别是那些可能绑定到物理接口的端口,比如eth0,因为引用2中提到将物理网卡挂接到网桥的命令,所以需要确保这些端口也被移除。 另外,引用4中提到了控制器的设置,比如获取或删除控制器的命令。如果之前的配置中有设置控制器,可能需要清除这些设置,避免残留配置导致问题。还有,镜像(Mirror)相关的配置,如引用5中的例子,如果存在镜像配置,也需要删除。 此外,用户可能需要停止OVS的服务,确保在清除配置服务没有运行,避免冲突。然后,再重启服务,应用新的配置。最后,验证配置是否已被清除,比如使用ovs-vsctl show查看当前状态。 需要注意的是,清除所有配置可能会影响现有的网络设置,所以需要提醒用户在操作前备份配置,或者确认清除不会影响其他服务。 总结步骤应该是: 1. 停止OVS服务 2. 删除所有网桥 3. 删除残留的端口或接口 4. 清除控制器和故障模式设置 5. 删除镜像配置(如果有的话) 6. 重启服务并验证 在回答中要确保命令正确,比如使用正确的参数,如--if-exists来避免错误。同,引用相关的引用内容来支持步骤的正确性,比如引用2和3中的删除网桥和端口的命令,引用4中的控制器相关操作。 还需要生成相关问题,比如如何备份配置、如何检查现有配置等,这些可以帮助用户进一步操作。</think>### 逐步解决方案 要清除 Open vSwitch 的原有配置以解决 NFSen 地址占用问题,请按以下步骤操作: --- #### **1. 停止 Open vSwitch 服务** ```bash systemctl stop openvswitch-switch ``` 停止服务可确保配置清理无进程占用资源[^2]。 --- #### **2. 删除所有网桥** ```bash ovs-vsctl --if-exists del-br br0 # 删除默认网桥 br0 ovs-vsctl list-br | xargs -I {} ovs-vsctl del-br {} # 删除所有网桥 ``` - `--if-exists` 确保网桥不存在不会报错[^3]。 - 通过 `list-br` 列出所有网桥并批量删除,避免遗漏[^2]。 --- #### **3. 清理残留端口与接口** ```bash ovs-vsctl list-ports br0 | xargs -I {} ovs-vsctl del-port br0 {} # 删除网桥上的所有端口 ovs-vsctl --if-exists del-port eth0 # 删除物理网卡绑定(如 eth0) ``` - 若物理网卡(如 eth0)曾被绑定到网桥,需手动解除关联[^2]。 --- #### **4. 清除控制器与故障模式配置** ```bash ovs-vsctl del-controller br0 # 删除网桥的控制器配置 ovs-vsctl del-fail-mode br0 # 删除故障模式设置 ``` - 控制器配置残留可能导致端口占用[^4]。 --- #### **5. 删除镜像配置(如有)** 若存在镜像规则(如引用[5]的报错场景): ```bash ovs-vsctl clear Bridge br-int mirrors # 清除网桥的镜像配置 ovs-vsctl destroy Mirror mymirror # 删除具体镜像规则 ``` --- #### **6. 重启服务并验证** ```bash systemctl start openvswitch-switch ovs-vsctl show # 确认无残留配置 ip addr show # 检查端口占用是否解除 ``` - 若 NFSen 仍报错,重启服务器确保配置完全生效[^2]。 --- ### 注意事项 - **备份配置**:清理前建议备份数据库 `cp /etc/openvswitch/conf.db /path/to/backup`。 - **版本兼容性**:若清理后仍报错,检查 Open vSwitch 版本与系统兼容性(如引用[1]的版本问题)。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值