虚拟机从网卡路由问题

近期有很多同事在使用虚拟机双网卡特性的时候,出现了一些问题。我趁此机会写一篇从网卡的短文,希望对大家有所帮助。

大家碰到的问题,可以归结为几类:

1、  已经添加了从网卡,为什么流量不走从网卡?

2、  已经配置了从网卡的IP,为什么报文不带着从网卡的IP出去?

3、  从网卡应该如何使用?

可能这些问题对于做网络的同事来说,比较简单,但是对于写代码出身的同事来说,需要先了解一下路由交换的概念。

路由交换是什么?一个数据包,网络如何转发它?主要是根据报文头的目的mac地址和目的IP地址进行匹配,符合匹配条件的,就做Forward的action——修改目的mac从接口发出去。服务器的协议栈其实也是类似的原理。

当OS1想要发送数据包,数据包走到OS1的协议栈,此时协议栈会做一个判断:

Ø  如果是发送给同网段的IP地址,则直接二层广播获取对方的mac,封装报文后发出

Ø  如果是发给不同网段的IP地址,则查询路由表,确定发文的下一跳IP(俗称网关),然后通过二层广播获取下一跳IP的mac地址,封装报文后发出

我们再回到双网卡的问题上,当主机有双网卡时,便有2个不同网段的IP地址。如上文所述,报文从OS发出,先判断是不是同网段——2个地址都会判断。如果发现跟某一个网卡的IP地址是同网段,则从该网卡出,带着该网卡的IP地址。

如下图,如果OS2要发送报文给192.168.1.11,经过匹配发现跟自己某一个网卡的IP地址192.168.1.10同网段,便会带着192.168.1.10的IP地址,封装192.168.1.11的mac将报文发出去。

所以,虚拟机添加了从网卡以后,哪怕没做任何配置,去访问跟从网卡同网段的IP地址也会从从网卡出去。

但是访问不同网段会如何?

如前面所述,会查询路由表,以确定下一跳。而虚拟机的路由表,在最开始系统会默认配置一条默认路由,指向主网卡的网关。

即,如果只是配置了从网卡,但是没有改变路由的情况下,跨网段的所有流量,依然全部都往主网卡发送。从主网卡主动出去的报文,都会带着主网卡的IP地址。这也是为什么加了从网卡以后,流量都不走的缘故。

那要如何才能使VM的流量从从网卡出去呢?

如图所示,假设VM的主网卡IP地址为192.168.1.10,从网卡为192.168.2.10,要想所有的流量从从网卡出去,则要将默认的网关改为192.168.2.1。如果要指定某一个网段从从网卡出去,则将该网段的下一跳路由改为192.168.2.1即可。不同的OS命令不一样,大家百度即可,我就不重复贴命令行了。

虚拟机主动发出报文,从哪一个网口出去,就带着这个网口的IP地址。

如果是回包,回包回程依然遵守前面路由的规则,但正常情况下回包报文的IP地址保持原访问的IP不变。即如果访问192.168.1.10的报文,哪怕从从网卡出去,报文的源地址依然保持192.168.1.10

一般从网卡要怎么用?

个人建议:

1、  对于安全要求比较高的应用,主网卡绑定EIP对外提供服务,从网卡跟后端虚拟机通讯

2、  对于有映射或者代理需求的业务,将虚拟机都配置从网卡,某网段路由指向某台虚拟机从网卡,流量流到该虚拟机做代理,从主网卡转出去

来源:华为云社区  作者:Harvey_Zhao

虚拟机从网卡路由问题相关推荐

  1. 【Ubuntu日常技巧】VirtualBox多网卡路由配置,保障虚拟机连接上外网

    [背景]: 配置Ubuntu 虚拟机双网卡,一个是Host-Only网络,一个是桥接网络.当在虚拟机中同时连接到两个网络后,虚拟机能够ping通内部网络,不能ping通外部网络,如www.baidu. ...

  2. 爱快--虚拟机单网卡(带机上网)

    虚拟机单网卡(带机上网) 两个真实网卡,三个虚拟网卡  相当于三个RJ45口  一个wan口,两个lan口 一个外网wan1    wan连接路由器 采用DHCP获取上级ip, 这个虚拟网卡桥接真实U ...

  3. 威联通+nas+mysql_小白玩NAS 篇一:威联通QNAS虚拟机安装软路由+硬路由(无线AP)

    小白玩NAS 篇一:威联通QNAS虚拟机安装软路由+硬路由(无线AP) 2019-04-01 20:46:00 86点赞 749收藏 128评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就 ...

  4. 史上最简单的虚拟机搭建软路由+ NAS+家庭媒体中心的白皮书

    原文网址:https://post.smzdm.com/p/a5k6ml3k/ 前言: 引言: 上次写的那篇一步一步搭建高配置软路由发出来以后,得到了很多值友的赞赏,也有很多的值友希望能有更进一步的文 ...

  5. 史上最简单的虚拟机搭建软路由 NAS 家庭媒体中心

    前言: 虚拟机环境搭建: 虚拟机选择:虚拟机的选择有很多:Hyper-V.VMware.Exsi.virualbox,稳定性最高,兼容性最好,资源消耗也最小的应该是Hyper-V和Exsi,我自己用的 ...

  6. CentOS系统双网卡路由设置

    CentOS系统双网卡路由设置 2011-11-22 16:35:05|  分类: linux_route |举报 |字号 订阅 下载LOFTER 我的照片书  | centos 设置双网卡,双网关 ...

  7. 烂泥:为KVM虚拟机添加网卡

    本文首发于烂泥行天下. 前几篇文章介绍了有关KVM安装虚拟机以及如何给虚拟机添加硬盘,今天我们再来介绍下有关如何给KVM虚拟机添加网卡. 给KVM虚拟机添加网卡,可以分为两种形式:图形界面的和virs ...

  8. kvm上添加万兆网卡_烂泥:为KVM虚拟机添加网卡

    本文首发于烂泥行天下. 前几篇文章介绍了有关KVM安装虚拟机以及如何给虚拟机添加硬盘,今天我们再来介绍下有关如何给KVM虚拟机添加网卡. 给KVM虚拟机添加网卡,可以分为两种形式:图形界面的和virs ...

  9. win10如何解决浏览器出现“正在解析主机”的问题,很大原因是虚拟机,虚拟网卡,小米随身wifi导致的,DNS优选下载,

    如何解决浏览器出现"正在解析主机"的问题 ,很大原因虚拟机,虚拟网卡,小米随身wifi导致的 =========================================== ...

最新文章

  1. R语言绘制ROC曲线图
  2. mysql数据库中数据类型的长度
  3. WebForm-博客园-1.0-账户模块(Passport)-登录与注册
  4. 官宣:OpenMMLab 重磅升级—百花齐放春满园
  5. C中的运算符优先级和结合性 *p++
  6. k8s一个容器多个镜像_从零开始学K8s: 6.运行一个简单的容器
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的家庭理财管理系统
  8. 【BZOJ】【1096】【ZJOI2007】仓库建设
  9. 一个小偷写给失主的信【爆笑】
  10. bootstrap按钮组(二)
  11. 山东春季高考计算机知识点,山东春季高考专业知识点总结
  12. 今天晴儿和老佛爷又一起上台了
  13. 关于AOP方面的设计 UML图
  14. 青春散场,永远的天王!
  15. 关于电影《暗杀》背后的故事和想法
  16. mysql:设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)表(四)所示
  17. linux 命令运行kodi,在Ubuntu/Debian/Raspbian中安装Kodi for Linux的方法
  18. ubuntu配置IP地址,网关,DNS和路由
  19. 读取xml文件信息并存入数据库
  20. 第十届颗携枪通过固定障碍

热门文章

  1. 信息技术课与计算机课有关系吗,信息技术教学与计算机教学的区别与联系
  2. c++代码表白_微信表情翻译成文字代码,微信表情翻译我喜欢你[多图]-软件资讯...
  3. js元素事件绑定与解绑兼容代码
  4. asp.net core系列 67 Web压力测试工具WCAT
  5. Qbxt 模拟题 day3(am) T3 选数字 (select)(贪心)
  6. PAT (Top Level) Practise 1008 Airline Routes(Tarjan模版题)
  7. c# Chart 服务器端动态创建ChartArea
  8. $.prop()和$.attr() 区别用法
  9. IOS UI UITableView
  10. 使用javascript在客户端获取URL参数值的函数