在《如何实现一个虚拟路由器》中描述了如何通过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. 网络编程——第一部分
  2. android ui机制的学习笔记
  3. CAD图纸打印出来后很多CAD文字消失了怎么办?
  4. 第九届全国大学生机械设计创新大赛基于STM32F407的HMI USART串口屏智能药箱设计
  5. Oracle中insert into select from用法、table (fn_split())用法、select中的as扩展替代字段用法、Oracle序列
  6. 从技术转管理的困惑(转)
  7. 网站被黑总被跳转到其他网站的处理解决过程
  8. 音视频技术之《移动直播秒开优化经验》
  9. 微计算机应用是核心吗,北大核心哪个杂志好投
  10. APP 微信支付java后台代码(解决支付失败返回-1)
  11. 音符起始点检测(音频节奏检测)(5)
  12. mysql基础之多表练习题
  13. python猪代码_猪圈密码python脚本实现
  14. 图像去噪的快速入门学习
  15. 光猫重置后上不了网解决方法
  16. SQL 之 事务(Transaction)
  17. 小白也能理解的MTCNN(上)
  18. 如果何用nodejs录制网页视频
  19. 投资回报率业内最高!FortiGate在CyberRatings防火墙独立测试中收获近乎完美表现
  20. 15 个优秀的响应式 CSS 框架

热门文章

  1. github copilot使用体验及安装教程
  2. 票据如何扫描?这款扫描软件让你轻松上手
  3. 笔记本电脑开始栏通知栏打不开
  4. Qt - QSetting的使用
  5. Mysql笔记(1)【DQL】
  6. 【AI视野·今日CV 计算机视觉论文速览 第177期】Thu, 16 Jan 2020
  7. 计算机考研用户导师,【计算机考研导师】北京科技大学计算机科学与技术系硕士生导师曾庆峰...
  8. iOS 8 AutoLayout 及SizeClass(三) 使用详解 好多值得学习及研究的地方
  9. Leetcode(77)——组合
  10. XAI之ALE:基于titanic泰坦尼克数据集对RF算法利用ALE累积局部效应图可视化算法进而实现模型可解释性案例