OVN学习(三)
部署OVN实验环境
同OVN学习(一)
网关
在L3网络基础上部署网关

添加L3网关
### Central节点
# ovn-sbctl show
Chassis "8bd09faf-5ba2-49ad-931b-11155ff3ab00"
hostname: localhost
Encap geneve
ip: "92.0.0.12"
options: {csum="true"}
Port_Binding "dmz-vm2"
Port_Binding "dmz-vm1"
Chassis "303ab2d5-3525-4550-b17f-781faa70ab4a"
hostname: localhost
Encap geneve
ip: "92.0.0.13"
options: {csum="true"}
Port_Binding "inside-vm3"
Port_Binding "inside-vm4"
### 创建逻辑路由
# ovn-nbctl lr-add edge1
#
### 创建逻辑交换机用于连接edge1和tenant1
# ovn-nbctl ls-add transit
### 连接edge1到逻辑交换机上
# ovn-nbctl lrp-add edge1 edge1-transit 02:d4:1d:8c:d9:ae 192.168.0.1/24
# ovn-nbctl lsp-add transit transit-edge1
# ovn-nbctl lsp-set-type transit-edge1 router
# ovn-nbctl lsp-set-addresses transit-edge1 02:d4:1d:8c:d9:ae
# ovn-nbctl lsp-set-options transit-edge1 router-port=edge1-transit
### 连接tenant1到逻辑交换机上
# ovn-nbctl lrp-add tenant1 tenant1-transit 02:d4:1d:8c:d9:af 192.168.0.2/24
# ovn-nbctl lsp-add transit transit-tenant1
# ovn-nbctl lsp-set-type transit-tenant1 router
# ovn-nbctl lsp-set-addresses transit-tenant1 02:d4:1d:8c:d9:af
# ovn-nbctl lsp-set-options transit-tenant1 router-port=tenant1-transit
### 添加静态路由
# ovn-nbctl lr-route-add edge1 "20.0.0.0/24" 192.168.0.2
# ovn-nbctl lr-route-add edge1 "10.0.0.0/24" 192.168.0.2
# ovn-nbctl lr-route-add tenant1 "0.0.0.0/0" 192.168.0.1
### 测试连通性
# ip netns exec vm1 ping -c 2 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=0.506 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=0.272 ms
--- 192.168.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.272/0.389/0.506/0.117 ms
网关与外网连接
### Central节点
### 创建外网逻辑交换机,并配置网关到叫交换机的连接
# ovn-nbctl ls-add outside
# ovn-nbctl lrp-add edge1 edge1-outside 02:d4:1d:8c:d9:be 192.168.200.16/24
# ovn-nbctl lsp-add outside outside-edge1
# ovn-nbctl lsp-set-type outside-edge1 router
# ovn-nbctl lsp-set-addresses outside-edge1 02:d4:1d:8c:d9:be
# ovn-nbctl lsp-set-options outside-edge1 router-port=edge1-outside
### 为外网网卡ens4创建网桥
# ovs-vsctl add-br br-ex
### 为外网网卡ens4创建网桥到网络的映射
# ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=dataNet:br-ex
### 在逻辑交换机outside上添加本地网络端口,并且本地网络的名字为dataNet
# ovn-nbctl lsp-add outside outside-localnet
# ovn-nbctl lsp-set-addresses outside-localnet unknown
# ovn-nbctl lsp-set-type outside-localnet localnet
# ovn-nbctl lsp-set-options outside-localnet network_name=dataNet
### 关联外网网卡ens4到网桥上
# ovs-vsctl add-port br-ex ens4
### 测试连通性(需要注意vm2的ip地址是不是没了,dhclient好像有些问题)
# ip netns exec vm2 ping -c 2 192.168.200.16
PING 192.168.200.16 (192.168.200.16) 56(84) bytes of data.
64 bytes from 192.168.200.16: icmp_seq=1 ttl=253 time=0.445 ms
64 bytes from 192.168.200.16: icmp_seq=2 ttl=253 time=0.407 ms
--- 192.168.200.16 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.407/0.426/0.445/0.019 ms
### 设置网桥地址
# ip addr add 192.168.200.17/24 dev br-ex
# ip link set br-ex up
### 重置下路由
# ip route
default via 192.168.200.1 dev ens4
92.0.0.0/24 dev ens3 proto kernel scope link src 92.0.0.12
169.254.0.0/16 dev ens3 scope link metric 1002
169.254.0.0/16 dev ens4 scope link metric 1003
192.168.200.0/24 dev ens4 proto kernel scope link src 192.168.200.12
192.168.200.0/24 dev br-ex proto kernel scope link src 192.168.200.17
# ip route del default via 192.168.200.1
# ip route del 192.168.200.0/24 dev ens4
设置SNAT
### Central节点
### 设置网关chassis
# ovn-nbctl lrp-set-gateway-chassis edge1-outside 8bd09faf-5ba2-49ad-931b-11155ff3ab00
### 配置SNAT规则
# ovn-nbctl -- --id=@nat create nat type="snat" logical_ip=20.0.0.0/24 external_ip=192.168.200.16 -- add logical_router edge1 nat @nat
# ovn-nbctl -- --id=@nat create nat type="snat" logical_ip=10.0.0.0/24 external_ip=192.168.200.16 -- add logical_router edge1 nat @nat
### 测试连通性
# ip netns exec vm2 ping -c 2 192.168.200.17
PING 192.168.200.17 (192.168.200.17) 56(84) bytes of data.
64 bytes from 192.168.200.17: icmp_seq=1 ttl=62 time=0.758 ms
64 bytes from 192.168.200.17: icmp_seq=2 ttl=62 time=0.071 ms
--- 192.168.200.17 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.071/0.414/0.758/0.344 ms
### Node节点
# ip netns exec vm4 ping -c 2 192.168.200.1
PING 192.168.200.1 (192.168.200.1) 56(84) bytes of data.
64 bytes from 192.168.200.1: icmp_seq=1 ttl=62 time=2.06 ms
64 bytes from 192.168.200.1: icmp_seq=2 ttl=62 time=0.992 ms
--- 192.168.200.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.992/1.528/2.064/0.536 ms
OVN学习(三)的更多相关文章
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化
1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...
- DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...
- SVG 学习<三>渐变
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- day91 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
随机推荐
- python cookbook第三版学习笔记十四:类和对象(五)代理类以及内存回收
代理类: 代理类的作用其实有继承有些类似,如果你想将某个实例的属性访问代理到内部另外一个实例中去,可以用继承也可以用代理.来看下代理的应用: class A: def spam(self,x) ...
- 剑指Offer:二叉搜索树的后序遍历序列【33】
剑指Offer:二叉搜索树的后序遍历序列[33] 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. ...
- 04-树7 二叉搜索树的操作集(30 point(s)) 【Tree】
04-树7 二叉搜索树的操作集(30 point(s)) 本题要求实现给定二叉搜索树的5种常用操作. 函数接口定义: BinTree Insert( BinTree BST, ElementType ...
- mysql优化之 EXPLAIN(一)
数据库优化最常用的命令就是用explain查看一下写的sql是否用到了索引: 如: (root@localhost) [akapp]>explain select * from sc_activ ...
- leetcode 863. All Nodes Distance K in Binary Tree
We are given a binary tree (with root node root), a target node, and an integer value K. Return a li ...
- 51Nod 1158 全是1的最大子矩阵 —— 预处理 + 暴力枚举 or 单调栈
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1158 1158 全是1的最大子矩阵 基准时间限制:1 秒 空 ...
- eclipse的maven工程Dynamic Web Module 2.3 修改为3.0 解决办法
1. 创建Maven Web工程 2. 项目只有src/main/resources >Java Build Path导入Tomcat运行环境 3. 删除以图片红框中的文件 4. Propert ...
- Go丨语言学习笔记--func
Java语言跟Go语言的函数比较 Go语言 func funcName(input type1,input type2,......)(output type1,output type2,...... ...
- leetcode 104 Maximum Depth of Binary Tree(DFS)
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- linux命令学习笔记(23):Linux 目录结构
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件 目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下 ...