单网卡加入OVS网桥

单网卡的情况下,将网卡加入OVS网桥

文档说明: 只记录关键的地方; 发布时间: 2023-08-11

环境: ECS debain 11 OVS+OVN
状态: 完善中
目的: 容器使用 OVN 实现跨主机通信
备注:

因主机只有一个网卡

网卡信息 (IP: 172.17.24.114/18 gateway 172.17.63.255 )

经验小提示:

验证的时候,请先打系统快照,无法登录主机时 就使用快照还原

曾有过血的教训: 因配置 IP 错误,无法登录主机,只能重置操作系统

使用云服务测试 OVN 跨节点互联时(比如成都节点和呼和浩特节点 互联) ,

暂时不要使用 阿里云内地的ECS来测试 ,原因如下:

ECS 安全组端口6081 已经已经开启的情况, 安全组仍然丢弃使用Geneve协议封装的UDP包 。 [暂时不知道如何解决此问题!]

经过各种排除测试, 发现阿里云海外节点ECS 没有这个问题,但是内地节点的ECS 存在上述这个问题

果断换一家云服务器商,比如 华为云 上述问题消失

省钱小提示: 使用 抢占式 云服务器 可以很便宜

网卡加入网桥

ovs-vsctl --if-exists del-br br-eth0
# 添加网桥
ovs-vsctl add-br br-eth0 
# 激活网桥
ip link set br-eth0 up 

{
    ip addr add 172.17.24.114/18 dev br-eth0
    # 这里是最关键的一环,搞错了,就得重启主机 
    ip route replace  default via   172.17.63.253 dev br-eth0
    ip addr flush dev eth0
} ||
{
    echo $?
}

ovs-vsctl add-port br-eth0  eth0
ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=external-network-provider:br-eth0


网卡移除网桥 (恢复为原来的样子)

# 先移除 ovs 配置
ovs-vsctl set Open_vSwitch .  external-ids:ovn-bridge-mappings=' '


ip addr add 172.17.24.114/18 dev eth0
ovs-vsctl --if-exists del-port  eth0
ip route replace default via  172.17.63.253 dev eth0
ip addr flush dev br-eth0

ovs-vsctl --if-exists del-br br-eth0

验证命令

ip a
ip route show 

ovs-dpctl show
ovs-dpctl dump-flows
ovs-appctl ovs/route/show
ovs-ofctl show br-int
ovs-appctl ofproto/list-tunnels

ovs-ofctl dump-flows br-int
ovs-ofctl dump-ports br-int

conntrack -L -p udp –src-nat

cat /proc/net/udp

tcpdump -i any   port 6081 -v -n


## 测试端口6081是否畅通
## 服务端
nc -v -u -l 0.0.0.0 6081
## 客户端 (192.168.1.1 替换为你的服务器公网IP)
nc -u -v  192.168.1.1 6081


关键点

也就这两行,把IP设置到网桥上


ip addr add 172.17.24.114/18 dev br-eth0
ip route replace  default via   172.17.63.253 dev br-eth0

出网设置关键点


sysctl -w net.ipv4.ip_forward=1

iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o br-eth0 -j MASQUERADE


# 默认是1500 需要降低一些
ip netns exec vm1 ip link set dev vm1  mtu 1400

参考文档

  1. OVS 单物理网卡模式下,物理网卡添加到ovn 网桥
  2. ovn 通过分布式路由器连接外部网络 redhat
  3. ovn 通过分布式网关端口连接外部网络
  4. ovn 通过网关虚拟路由器连接外部网络
  5. ovn 通过l2gateway端口连接外部网络
  6. ovn 通过localnet端口连接外部网络
  7. ovn Southbound DB
  8. ovn Northbound DB
  9. ovn load balance功能
  10. ovn acl功能
  11. ovn 配置逻辑路由器实现三层转发
  12. ovs conntrack及nat
  13. ovs-conntrack
  14. OVN 限速
  15. OVN路由器对等连接
  16. 私有地址块
  17. OVN虚拟网络出网网关配置
  18. 容器基于OVN实现跨主机通信实验一
  19. iptables四表五链
  20. 小破站批量屏蔽IP地址实践
  21. iptables详解(1):iptables概念
  22. 帧、报文、报文段、分组、包、数据报的概念区别
  23. Kube-OVN如何实现Pod和主机网络连通
  24. 容器如何使用虚拟化网络
  25. How to make the OVN BGP Agent ready for HWOL and OVS-DPDK
  26. How to create an Open Virtual Network distributed gateway router

SD-WAN 案例

什么是SD-WAN?
什么是智能接入网关
什么是 SD-WAN(新版)

posted @ 2023-08-11 11:36  jingjingxyk  阅读(309)  评论(0编辑  收藏  举报