在《如何实现一个虚拟路由器》中描述了如何通过linux网络虚拟化的基础功能NameSpace、veth pair、bridge、tap实现一个路由器的最小模型,从而实现云计算环境下处于不同网段的虚拟机可以跨网段互通。本文在此基础上继续拓展,从而实现内网访问外网的功能。

主要设计思路为:在上节所提及的虚拟路由NameSpace内添加一个端口,我们称之为external端口,设置此external端口的IP为外部网络的固定IP。在虚拟路由NameSpace内通过设置路由表可以将内部网络(上文例子中的192.168.0.0/24和192.168.1.0/24)向外出的网络包转发到此external端口上。在虚拟路由NameSpace外通过一个veth-pair将NameSpace内的external端口和服务器上的物理网卡连通。

本例子的前提是外部已经有一个网段192.168.149.0/24。其中192.168.149.2是外部网络的网关,通过此网关,网段192.168.149.0/24内的ip可以连通外网,192.168.149.33是在外部网段中挑选的一个空闲ip。

创建一对veth-pair的tap设备,并把一端放入ns_router中,把另一端加入网桥br_mgmt:

创建tap_ext_router和tap_ext_peer
# ip link add tap_ext_router type veth peer name tap_ext_peer
把tap_ext_router放入ns_router
# ip link set tap_ext_router netns ns_router
把tap_ext_peer加入网桥
brctl addif br_mgmt tap_ext_peer

将两个tap设备UP:

# ifconfig tap_ext_peer up
# ip netns exec ns_router ifconfig tap_ext_router up

在ns_router中设置外部ip,并设置默认路由:

# ip netns exec ns_router ip addr add local 192.168.149.33/24 dev tap_ext_router
# ip netns exec ns_router route add default gw 192.168.149.2

前面已经提到192.168.149.2是外部网络192.168.149.0/24的网关,192.168.149.33是在外部网段中挑选的一个空闲ip。

最后虚拟路由NameSpace中的路由信息为:

通过以上设置,整个系统的网络拓扑结构演变为:

在虚拟机内部配置dns为192.168.149.2后就可以ping通外网了。但是这个架构还不能实现VLAN网络隔离和外部网络访问内部网络以及分布式路由的功能。


关注本公众号,了解更多关于云计算虚拟化的知识。

如何实现一个虚拟路由器(2)相关推荐

  1. 如何实现一个虚拟路由器

    本文通过linux网络虚拟化的基础功能NameSpace.veth pair.bridge.tap实现一个路由器的最小模型,从而实现云计算环境下处于不同网段的虚拟机可以跨网段互通. 虚拟网卡Tun/t ...

  2. 虚拟路由器冗余协议-VRRP

    虚拟路由器冗余协议 (VRRP:Virtual Router Redundancy Protocol) 虚拟路由器冗余协议(VRRP)是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 ...

  3. 虚拟路由器冗余协议VRRP原理详解!

    虚拟路由器冗余协议VRRP原理详解! https://virtual.51cto.com/art/201905/596666.htm?pc 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前 ...

  4. H3C之虚拟路由器冗余协议(VRRP)的原理及应用

    VRRP简介:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  5. 虚拟路由器冗余协议(VRRP)

    简介 虚拟路由器冗余协议(VRRP)是一种LAN接入设备备份协议.一个局域网络内的所有主机都设置缺省网关,这样主机发出的目的地址不在本网段的报文将被通过缺省网关发往三层交换机,从而实现了主机和外部网络 ...

  6. 网络基础之虚拟路由器冗余协议(VRRP)理论基础及华为ENSP基础配置

    一. VRRP的引入 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来不可预计的损失,所以可以通过部署多个 ...

  7. ovn 通过网关虚拟路由器连接外部网络

    本文实验如何通过ovn的网关逻辑路由器将ovn网络连接到外部网络. 前面讲过ovn的逻辑路由器是分布式的,这意味着它没有绑定到某个节点上,而是存在于所有节点上的,同时它是通过每个节点的openflow ...

  8. 学习VRRP虚拟路由器冗余协议与项目实例

    目录 VRRP定义 VRRP目的 VRRP作用: VRRP好处: VRRP两组重要概念 VRRP的工作原理 VRRP的工作过程: 怎么让路由器成为主路由器? VRRP配置的总结 VRRP项目实例 总结 ...

  9. VRRP(虚拟路由器冗余协议)

    文章目录 一.vrrp 基本概述 二.vrrp主备份过程 三.主备路由器切换过程 3.1 master发生故障,主备切换过程 3.2 原有的注路由器恢复 实际操作 一.vrrp 基本概述 Virtua ...

最新文章

  1. 禁用Browser Link
  2. 数据中心管理人员预计2018年发生的变化
  3. python tqdm_推荐一些实用的的 Python 库
  4. 薛定谔的猫——.NET 4.1 中的新基类,开源Preview中
  5. c语言多个形参,C中子函数最多有几个形参
  6. javascript arraybuffer
  7. MATLAB中数组的原始索引和线性索引之间相互进行转换
  8. 楚留香服务器维护时间,2019年06月28日官方维护公告
  9. 安卓显示视频画面的动画效果及代码
  10. 一个离职程序员的找工作历程(2021.4.28更新)
  11. android动态壁纸2.2.1,动态壁纸选择器
  12. PyTorch实战使用Resnet迁移学习
  13. 前端实现播放实时监控视频笔记(hls http-flv)
  14. 图解 Vue3.0 编译器核心原理(Vue3.0源码解析)
  15. 【数据压缩】TGA文件格式分析
  16. Unity骚操作:Spine动画打包成AssetBundle资源到安卓平台时,材质丢失的问题解决方案
  17. 将视频旋转90度的解决方法
  18. 前端毕业设计 天气预报
  19. “老三样”会思考:以威胁情报驱动安全产品演进
  20. 做题中遇到的各种密码整理记录

热门文章

  1. [天地间]03-英国斯特拉福德小镇
  2. BFU-计算机网络全书笔记 BFU-CS 2021-2022 期末总结
  3. 7个免费小巧软件,让您的电脑用着更舒服
  4. 方差、标准差、协方差、协方差矩阵、散度矩阵
  5. Spring Data(一)|什么是Spring Data 理解
  6. 常见问题--表的约束initially immediate 理解
  7. OpenMLDB 官方网站正式上线
  8. MySQL用户权限总结【用户授权必会】
  9. 跨境卖家期待已久的大促,黑五TikTok玩法
  10. 物理实验-用落球法测定液体的粘滞系数(仿真实验大厅) 实验报告 重庆理工大学