专栏名称: SDNLAB
SDNLAB是专注网络创新技术的先锋媒体和实践平台,涵盖SDN、NFV、CCN、软件定义安全、软件定义数据中心等相关领域,提供新闻资讯、技术交流、在线实验、行业分析、求职招聘、教育培训、方案咨询、创业融资等多元服务。
目录
相关文章推荐
河北交通广播  ·  【992 | ... ·  21 小时前  
河北交通广播  ·  【992 | 痛心】“菜刀哥”去世,年仅39岁…… ·  昨天  
河北省应急管理  ·  小雪+中到大雪!雨雪上线,河北未来三天…… ·  2 天前  
中汇信达深圳税务师事务所  ·  深圳12366每周热点:先进制造业加计抵减、 ... ·  2 天前  
中汇信达深圳税务师事务所  ·  深圳12366每周热点:先进制造业加计抵减、 ... ·  2 天前  
51好读  ›  专栏  ›  SDNLAB

OVN实战三之打通真实网络提供NAT

SDNLAB  · 公众号  ·  · 2017-09-08 17:55

正文

邢森:Java、Python码农,运营“写程序的康德”自媒体。现就职于上海电信信息网络部任职架构师,主要负责网络相关产品的研发工作。


概述

上篇文章《OVN实战二之Overlay实现》介绍了OVN中逻辑交换机、逻辑路由器的用法,本章介绍如何让OVN中的虚拟机访问外部网络和面向外部网络提供服务(NAT)。


拓扑结构


在GNS3中新增一个Linux虚拟机,E0/0连接ovn-node3的E2/0:

为Linux的第一块网卡配置上IP地址172.16.10.100,为后面的配置实现两个目标:

vm1可以ping通172.16.10.100;

在172.16.10.100上可以访问vm4中的WWW服务。


创建外部网络


在OVN中和外部网络通讯必须使用某个固定的节点,有点类似于Neutron中的网络节点(注意Neutron中的分布式路由只解决东西向流量的分布式,访问外部网络还是需要网络节点)。OVN通过逻辑路由器的chassis字段识别出绑定到某个固定的节点,我们把上一章的R1改造成固定路由器。新拓扑如下:

在ovn-node1执行:


sudo ovn-nbctl set Logical_router c971ec21-82d2-480d-a8e6-1d5566de966d options:chassis=c3c30f4f-e7e2-46fa-b621-210fd98858c5


其中的chassis是通过sudo ovn-sbctl show获取到的ovn-node3的chassis。创建网关交换机。在ovn-node1上执行:


sudo ovn-nbctl ls-add gateway-sw1

sudo ovn-nbctl lsp-add gateway-sw1 localnet-port

sudo ovn-nbctl lsp-set-addresses localnet-port unknown

sudo ovn-nbctl lsp-set-type localnet-port localnet

sudo ovn-nbctl lsp-set-options localnet-port network_name=physnet-node3


绑定网关交换机和R1,在ovn-node1上执行


sudo ovn-nbctl lrp-add r1 r1-gs1 00:00:00:10:00:00 172.16.10.20/24

sudo ovn-nbctl lsp-add gateway-sw1 gs1-r1

sudo ovn-nbctl lsp-set-type gs1-r1 router

sudo ovn-nbctl lsp-set-addresses gs1-r1 00:00:00:10:00:00

sudo ovn-nbctl lsp-set-options gs1-r1 router-port=r1-gs1


配置ovn-node3的外部网桥,在ovn-node3上执行:


sudo ovs-vsctl add-br br-ex

sudo ovs-vsctl add-port br-ex ens39

sudo ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet-node3:br-ex



验证结果


通过Linux节点ping 172.16.10.20:

通过vm1 ping 172.16.10.20:

但是vm1 此时ping不通172.16.10.100(Linux),这是因为我们少了一部配置,需要为Router配置上NAT映射,把192.168.100.0/24的外网请求全部绑定到172.16.10.20上。在ovn-node1上执行:


sudo ovn-nbctl -- --id=@nat create nat type="snat" logical_ip=192.168.100.0/24 external_ip=172.16.10.20 -- add logical_router r1 nat @nat









请到「今天看啥」查看全文