概述
在L2互通、L3互通实验基础上通过NAT实现访问公网。
 架构图如下,
 这里两台逻辑路由器LR1和GLR是通过一台逻辑交换机LSjoin互连的,
 GLR和物理网络设备通过LSlocal相连。
 
物理拓扑
如上一个实验OVN实验----L2互通
逻辑拓扑

配置
开始实验前先检查一下当前的组网,可以看到两个网段,网关都在lr1上,类似一个单臂路由的网络模型,只不过这些网络设备都是分布式的。

 测试一下,四个容器之间是可以互通的。
 记录一下host44的chassis id
 
 创建一个路由器lr2,这台路由器通过指定chassis 使其绑定在host44上,因为按照上图,只有host44才能到互联网,所以这里lr2不能是分布式的
 ovn-nbctl create Logical_Router name=lr2 options:chassis=9a36c481-5cb4-4c82-85f6-39f57343daa1
 创建两个ls
 ovn-nbctl ls-add ls-join
 ovn-nbctl ls-add ls-local
 lr2添加接口连接lsjoin
 ovn-nbctl lrp-add lr2 lr2-lsjoin 00:00:00:00:00:01 10.10.1.2/24
 ls-join添加接口连接lr2
 ovn-nbctl lsp-add ls-join lsjoin-lr2
 ovn-nbctl lsp-set-type lsjoin-lr2 router
 ovn-nbctl lsp-set-addresses lsjoin-lr2 00:00:00:00:00:01
 ovn-nbctl lsp-set-options lsjoin-lr2 router-port=lr2-lsjoin
 lr1添加接口连接ls-join,IP和lr2-lsjoin同网段
 ovn-nbctl lrp-add lr1 lr1-lsjoin 00:00:00:00:00:02 10.10.1.1/24
 ls-join添加接口连接lr1
 ovn-nbctl lsp-add ls-join lsjoin-lr1
 ovn-nbctl lsp-set-type lsjoin-lr1 router
 ovn-nbctl lsp-set-addresses lsjoin-lr1 00:00:00:00:00:02
 ovn-nbctl lsp-set-options lsjoin-lr1 router-port=lr1-lsjoin
lr2添加接口连接lslocal
 ovn-nbctl lrp-add lr2 lr2-lslocal 00:00:00:00:00:03 10.10.2.1/24
 ls-local添加接口连接lr2
 ovn-nbctl lsp-add ls-local lslocal-lr2
 ovn-nbctl lsp-set-type lslocal-lr2 router
 ovn-nbctl lsp-set-addresses lslocal-lr2 00:00:00:00:00:03
 ovn-nbctl lsp-set-options lslocal-lr2 router-port=lr2-lslocal
 lr2的接口绑定在host44
 
ls-local上添加localnet 类型的接口,并设置 network_name 为 externalnet
 ovn-nbctl lsp-add ls-local lslocal-localnet
 ovn-nbctl lsp-set-addresses lslocal-localnet unknown
 ovn-nbctl lsp-set-type lslocal-localnet localnet
 ovn-nbctl lsp-set-options lslocal-localnet network_name=externalnet
 host44映射网络名称和实际网桥,这里是在host44上配置
 ovs-vsctl add-br br-ens8
 ovs-vsctl add-port br-ens8 ens8
 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=externalnet:br-ens8
 ip link set dev br-ens8 up
 ip addr add 10.10.2.44/24 dev br-ens8 //也可以不配IP
配置静态路由
 lr1默认路由指向lr2
 ovn-nbctl lr-route-add lr1 “0.0.0.0/0” 10.10.1.2
 l2到4台容器的回程路由
 ovn-nbctl lr-route-add lr2 “192.168.0.0/16” 10.10.1.1
 l2默认路由指向物理网关
 ovn-nbctl lr-route-add lr2 “0.0.0.0/0” 10.10.2.254
 查看路由表
 ovn-nbctl lr-route-list lr2
配置NAT
 ovn-nbctl – --id=@nat create nat type=“snat” logical_ip=192.168.0.0/16 external_ip=10.10.2.1 – add logical_router lr2 nat @nat
 
进入容器ping 114.114.114.114,可以ping通了
 



















