OVN学习(一)
参考文档
部署OVN实验环境
网络拓扑

### Central节点
# cat ifcfg-ens3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens3
DEVICE=ens3
ONBOOT=yes
IPADDR=92.0.0.12
PREFIX=24
# cat ifcfg-ens4
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens4
DEVICE=ens4
ONBOOT=yes
IPADDR=192.168.200.12
PREFIX=24
GATEWAY=192.168.200.1
DNS1=114.114.114.114
### Node节点
# cat ifcfg-ens3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens3
DEVICE=ens3
ONBOOT=yes
IPADDR=92.0.0.13
PREFIX=24
# cat ifcfg-ens4
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens4
DEVICE=ens4
ONBOOT=yes
IPADDR=192.168.200.13
PREFIX=24
GATEWAY=192.168.200.1
DNS1=114.114.114.114
安装软件包
### Central节点
# yum install -y firewalld-filesystem net-tools
# rpm -ivh openvswitch-kmod-2.8.0-1.el7.centos.x86_64.rpm openvswitch-2.8.0-1.el7.centos.x86_64.rpm openvswitch-ovn-common-2.8.0-1.el7.centos.x86_64.rpm
### 安装控制层
# rpm -ivh openvswitch-ovn-central-2.8.0-1.el7.centos.x86_64.rpm
### 安装数据层
# rpm -ivh openvswitch-ovn-host-2.8.0-1.el7.centos.x86_64.rpm
# systemctl enable ovn-northd openvswitch ovn-controller
# systemctl start ovn-northd openvswitch ovn-controller
# reboot
### Node节点
# yum install -y firewalld-filesystem net-tools
# rpm -ivh openvswitch-kmod-2.8.0-1.el7.centos.x86_64.rpm openvswitch-2.8.0-1.el7.centos.x86_64.rpm openvswitch-ovn-common-2.8.0-1.el7.centos.x86_64.rpm
### 安装数据层
# rpm -ivh openvswitch-ovn-host-2.8.0-1.el7.centos.x86_64.rpm
# systemctl enable openvswitch ovn-controller
# reboot
配置OVN
### Central节点
# ovn-nbctl set-connection ptcp:6641:92.0.0.12
# ovn-sbctl set-connection ptcp:6642:92.0.0.12
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 92.0.0.12:6641 0.0.0.0:* LISTEN 817/ovsdb-server
tcp 0 0 92.0.0.12:6642 0.0.0.0:* LISTEN 857/ovsdb-server
# ovs-vsctl set open . external-ids:ovn-remote=tcp:92.0.0.12:6642
# ovs-vsctl set open . external-ids:ovn-encap-type=geneve
# ovs-vsctl set open . external-ids:ovn-encap-ip=92.0.0.12
# netstat -antp | grep ovn-controller
tcp 0 0 92.0.0.12:57350 92.0.0.12:6642 ESTABLISHED 815/ovn-controller
### Node节点
# ovs-vsctl set open . external-ids:ovn-remote=tcp:92.0.0.12:6642
# ovs-vsctl set open . external-ids:ovn-encap-type=geneve
# ovs-vsctl set open . external-ids:ovn-encap-ip=92.0.0.13
# netstat -antp | grep ovn-controller
tcp 0 0 92.0.0.13:40096 92.0.0.12:6642 ESTABLISHED 807/ovn-controller
L2网络

定义逻辑网络
创建一个逻辑交换机,然后添加两个交换机端口,并为端口设置物理地址
### Central节点
# $FQDN|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/'
02:d4:1d:8c:d9:8f
### Node节点
# $FQDN|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/'
02:d4:1d:8c:d9:8e
### Central节点
# ovn-nbctl ls-add ls1
# ovn-nbctl lsp-add ls1 ls1-vm1
# ovn-nbctl lsp-set-addresses ls1-vm1 02:d4:1d:8c:d9:8f
# ovn-nbctl lsp-set-port-security ls1-vm1 02:d4:1d:8c:d9:8f
# ovn-nbctl lsp-add ls1 ls1-vm2
# ovn-nbctl lsp-set-addresses ls1-vm2 02:d4:1d:8c:d9:8e
# ovn-nbctl lsp-set-port-security ls1-vm2 02:d4:1d:8c:d9:8e
伪造虚拟机
创建网络命名空间,并在br-int上添加端口,然后将端口添加到命名空间,最后通过设置端口的MAC地址和网卡名完成和交换机端口的映射
### Central节点
# ip netns add vm1
# ovs-vsctl add-port br-int vm1 -- set interface vm1 type=internal
# ip link set vm1 netns vm1
# ip netns exec vm1 ip link set vm1 address 02:d4:1d:8c:d9:8f
# ip netns exec vm1 ip addr add 172.16.255.11/24 dev vm1
# ip netns exec vm1 ip link set vm1 up
# ovs-vsctl set Interface vm1 external_ids:iface-id=ls1-vm1
# ip netns exec vm1 ip addr show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
8: vm1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 02:d4:1d:8c:d9:8f brd ff:ff:ff:ff:ff:ff
inet 172.16.255.11/24 scope global vm1
valid_lft forever preferred_lft forever
inet6 fe80::d4:1dff:fe8c:d98f/64 scope link
valid_lft forever preferred_lft forever
### Node节点
# ip netns add vm2
# ovs-vsctl add-port br-int vm2 -- set interface vm2 type=internal
# ip link set vm2 netns vm2
# ip netns exec vm2 ip link set vm2 address 02:d4:1d:8c:d9:8e
# ip netns exec vm2 ip addr add 172.16.255.22/24 dev vm2
# ip netns exec vm2 ip link set vm2 up
# ovs-vsctl set Interface vm2 external_ids:iface-id=ls1-vm2
# ip netns exec vm2 ip addr show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
8: vm2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 02:d4:1d:8c:d9:8e brd ff:ff:ff:ff:ff:ff
inet 172.16.255.22/24 scope global vm2
valid_lft forever preferred_lft forever
inet6 fe80::d4:1dff:fe8c:d98e/64 scope link
valid_lft forever preferred_lft forever
测试
### Central节点
# ovn-sbctl show
Chassis "8bd09faf-5ba2-49ad-931b-11155ff3ab00"
hostname: localhost
Encap geneve
ip: "92.0.0.12"
options: {csum="true"}
Port_Binding "ls1-vm1"
Chassis "303ab2d5-3525-4550-b17f-781faa70ab4a"
hostname: localhost
Encap geneve
ip: "92.0.0.13"
options: {csum="true"}
Port_Binding "ls1-vm2"
# ip netns exec vm1 ping -c 2 172.16.255.22
PING 172.16.255.22 (172.16.255.22) 56(84) bytes of data.
64 bytes from 172.16.255.22: icmp_seq=1 ttl=64 time=0.507 ms
64 bytes from 172.16.255.22: icmp_seq=2 ttl=64 time=0.448 ms
--- 172.16.255.22 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.448/0.477/0.507/0.036 ms
新增伪造虚拟机
### Central节点
# ovn-nbctl lsp-add ls1 ls1-vm3
# ovn-nbctl lsp-set-addresses ls1-vm3 02:d4:1d:8c:d9:8d
# ovn-nbctl lsp-set-port-security ls1-vm3 02:d4:1d:8c:d9:8d
# ovn-nbctl show
switch 5e62ba49-df50-40f0-b778-8e56a7f8cefe (ls1)
port ls1-vm3
addresses: ["02:d4:1d:8c:d9:8d"]
port ls1-vm2
addresses: ["02:d4:1d:8c:d9:8e"]
port ls1-vm1
addresses: ["02:d4:1d:8c:d9:8f"]
### Node节点
# ip netns add vm3
# ovs-vsctl add-port br-int vm3 -- set interface vm3 type=internal
# ip link set vm3 netns vm3
# ip netns exec vm3 ip link set vm3 address 02:d4:1d:8c:d9:8d
# ip netns exec vm3 ip addr add 172.16.255.33/24 dev vm3
# ip netns exec vm3 ip link set vm3 up
# ovs-vsctl set Interface vm3 external_ids:iface-id=ls1-vm3
# ip netns exec vm3 ip addr show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
9: vm3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 02:d4:1d:8c:d9:8d brd ff:ff:ff:ff:ff:ff
inet 172.16.255.33/24 scope global vm3
valid_lft forever preferred_lft forever
inet6 fe80::d4:1dff:fe8c:d98d/64 scope link
valid_lft forever preferred_lft forever
# ip netns exec vm3 ping -c 2 172.16.255.22
PING 172.16.255.22 (172.16.255.22) 56(84) bytes of data.
64 bytes from 172.16.255.22: icmp_seq=1 ttl=64 time=0.584 ms
64 bytes from 172.16.255.22: icmp_seq=2 ttl=64 time=0.060 ms
--- 172.16.255.22 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.060/0.322/0.584/0.262 ms
### Central节点
# ovn-sbctl show
Chassis "8bd09faf-5ba2-49ad-931b-11155ff3ab00"
hostname: localhost
Encap geneve
ip: "92.0.0.12"
options: {csum="true"}
Port_Binding "ls1-vm1"
Chassis "303ab2d5-3525-4550-b17f-781faa70ab4a"
hostname: localhost
Encap geneve
ip: "92.0.0.13"
options: {csum="true"}
Port_Binding "ls1-vm3"
Port_Binding "ls1-vm2"
OVN学习(一)的更多相关文章
- OVN学习(三)
部署OVN实验环境 同OVN学习(一) 网关 在L3网络基础上部署网关 添加L3网关 ### Central节点 # ovn-sbctl show Chassis "8bd09faf-5ba ...
- OVN学习(二)
部署OVN实验环境 同OVN学习(一) L3网络 创建逻辑交换机和路由 ### Central节点 ### 创建逻辑交换机和路由器 # ovn-nbctl ls-add inside # ovn-nb ...
- ovs ovn 学习资料
0.A Primer on OVN http://blog.spinhirne.com/2016/09/a-primer-on-ovn.html 1.Open Virtual Networking W ...
- 【Network】OVS、VXLAN/GRE、OVN等 实现 Docker/Kubernetes 网络的多租户隔离
多租户隔离 DragonFlow与OVN | SDNLAB | 专注网络创新技术 Neutron社区每周记(6.25~7.6)| OVS将加入Linux基金会?OVN或抛弃ovsdb? | Unite ...
- Android学习——windows下搭建Cygwin环境
在上一篇博文<Android学习——windows下搭建NDK_r9环境>中,我们详细的讲解了在windows下进行Android NDK开发环境的配置,我们也讲到了在NDk r7以后,我 ...
- java基础学习总结——面向对象1
目录 一.面向过程的思想和面向对象的思想 二.简单理解面向对象 三.面向对象的设计思想 四.对象和类的概念 五.如何抽象出一个类? 六.类(对象)之间的关系 七.Java与面向对象 八.为什么使用面向 ...
- Ansible学习实战手记-你想要知道的可能都在这里了
最近接触了ansible工具,查找了一些资料,也做了一些总结.希望能给刚接触的新手带来一些帮助. 此总结有实际例子,大部分也是从实践中用到才逐一总结的. 当然可能肯定一定会存在一些错误和纰漏,还望大家 ...
- SSIS 学习之旅 FTP文件传输-脚本任务
这一章主要讲解一下用脚本怎么把CSV文件抛送到FTP服务器上 设计: 通过Demon库的Users表数据生成CSV文件. 生成后的CSV文件抛送到FTP指定目录下. 控件的使用这里就不做详细讲 ...
- SSIS 学习之旅 FTP文件传输-FTP任务
这一章主要讲解一下FTP控件. 设计: 通过Demon库的Users表数据生成CSV文件. 生成后的CSV文件抛送到FTP指定目录下. 其他控件的使用这里就不做详细讲解了.大家如果有不懂得可以 ...
随机推荐
- NFT是什么,有什么前景?
去年 11 月,Crypokitties 的发布给加密货币的世界带来了风暴,有些加密猫的价格甚至涨到了 30 万美元,以太坊网络拥堵不堪,平均贡献了当时以太坊网络30%的交易额.当 Cryptokit ...
- Wireshark学习笔记——怎样高速抓取HTTP数据包
0.前言 在火狐浏览器和谷歌浏览器中能够很方便的调试network(抓取HTTP数据包),可是在360系列浏览器(兼容模式或IE标准模式)中抓取HTTP数据包就不那么那么方便了.尽管也可使用H ...
- UVA - 11464 Even Parity 【暴力枚举】
题意 给出一个 01 二维方阵 可以将里面的 0 改成1 但是 不能够 将 1 改成 0 然后这个方阵 会对应另外一个 方阵 另外一个方阵当中的元素 为 上 下 左 右 四个元素(如果存在)的和 要求 ...
- 笔记 jsp/ajax/js/jquery/html5/css+div->table
1. jsp 1).jsp(39,33) equal symbol expected: 这个异常是说第39行有 " '( 冒号单引号)问题 2)${map[key]} map和key换 ...
- SDUT 2133 数据结构实验之栈三:后缀式求值
数据结构实验之栈三:后缀式求值 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 对于一个基于二元运算符的后缀表示式(基本操作数都是 ...
- SpringBoot2.0之整合Dubbo
Dubbo支持协议 Dubbo支持dubbo.rmi.hessian.http.webservice.thrift.redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的. Sprin ...
- hello vue不显示
本身是做java后端开发的,但对任何技术都感兴趣.于是尝试了下最近国内比较火的vue框架. 在使用官网的例的时候子就卡壳了,写了个html,第一个Hello VUE!就是出不来,只显示{{messag ...
- Spark- ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
运行 mport org.apache.log4j.{Level, Logger} import org.apache.spark.rdd.RDD import org.apache.spark.{S ...
- BZOJ 1198 [HNOI2006]军机调度:dfs
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1198 题意: 有n个雇佣军,m个任务. 第i个雇佣军能够参加cnt个任务,分别为temp[ ...
- RQNOJ 169 最小乘车费用:水dp
题目链接:https://www.rqnoj.cn/problem/169 题意: 给出行驶1-10公里的费用(所有车一样),可以倒车,问行驶n公里的最小费用. 题解: 大水题... (=´ω`=) ...