码迷,mamicode.com
首页 > 其他好文 > 详细

虚拟机实现IP转发

时间:2018-05-06 22:28:20      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:模式   自连接   笔记   src   ice   conf   centos   运行   设置ip   

  因为工作需要,在师傅的带领下实现了一个虚拟机的SNAT IP转发功能,该功能实现的效果大概就是将虚拟机当做电脑的路由器,主机的请求通过虚拟机转发出去,接收到的回应也通过虚拟机解析回来,以便在虚拟机上开发防火墙功能。

  先介绍一下设备的情况,一台很久的台式机(大概就是学校机房那种,内存3G左右,处理器i3几代不清楚)装载Windows7系统(OK,这样的配置也是可以运行虚拟机的,台式机还是比笔记本强得多),虚拟机装载Centos6.5系统,内存分配1G,磁盘空间40G。OK话不多说,我们直接开干吧。

  我们要实现的目标大概如下图所示:

技术分享图片

  我们知道虚拟机要联网是需要一个网络适配器的,对于目标虚拟机来说需要两个网络适配器,一个用于连接外网(Internet),另一个用于连接内网(Windows7),两个网卡使用不同网段的IP,在虚拟机中实现路由转发功能。

  首先为虚拟机新建一个网络适配器,右键自己的虚拟机--->设置--->底部add”--->网络适配器

技术分享图片

  进入Centos系统,所有关于网络的配置文件都在:

/etc/sysconfig/network-script/

  其中ifcfg-eth0就是网络适配器的配置文件,在这里,我们使用虚拟网卡的方式完成虚拟机路由器的配置,所以不需要为第二个适配器设置配置文件,它将处于混杂模式,没有IP地址,我们想让第一个网络适配器连接到外网,第二个适配器连接到内网(连接Windows),就需要进行一系列设置。

  假设外网的IP为192.168.111.9,网关为192.168.111.1,在ifcfg-eth0中将IP地址设置为外网IP,网关设置为外网网关。假设内网IP(WindowsIP)为192.168.133.5,那么需要将内网的网关设置为第二个适配器的IP地址,然而第二个适配器处于混杂模式,没有IP,需要新建一个虚拟网卡,为其设置IP并且将其绑定到第二个适配器上。

  新建虚拟网卡

brctl addbr br0

  将其绑定到适配器上

brctl addif br0 eth1

  为虚拟网卡设置IP地址(作为内网的网关使用)

ifconfig br0 192.168.133.4

  将Windows系统的网关设置为br0的IP地址

  重启网络服务(注意上面虚拟网卡的创建和设置是不会自动保存的,下次开机之后就没有了,建议写一个脚本文件将上面的内容写进去,每次开机都运行脚本)

service network restart

  这个时候两个适配器都各自连接到了该连接的地方,现在需要对两张适配器进行IP请求的转发将Windows的请求由第二个适配器eth1转发到eth0上去,通过eth0与外界沟通。

  首先开启系统的IPv4的转发功能,配置文件如下

/etc/sysctl.conf

  找到下面属性

net.ipv4.ip_forward

  将其值改为1,代表允许IPv4转发

  在转发的部分使用了iptables工具进行IP的转发,iptables是对数据包进行检测的一款简易访问工具,将规则组成一张表,实现了绝对详细的访问控制功能,使用下面命令进行IP转发

iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -o eth0 -j SNAT --to-source 192.168.111.9

  代表将192.168.133.0/24网段上所有的IP请求都由192.168.111.9转发。

  iptables设置的内容保存有两种方法,第一种将配置文件存放到一个目录

iptables-save >/var/log/iptables.backup

  需要读取配置时

iptables-restore </var/log/iptables.backup

  第二种方式是使用下面命令自动存储

service iptables save

  当然还是要重启服务

service iptables restart 
service network restart 

  如此一来就完成了虚拟机充当路由器转发IP的功能

 

虚拟机实现IP转发

标签:模式   自连接   笔记   src   ice   conf   centos   运行   设置ip   

原文地址:https://www.cnblogs.com/huaxh/p/8999578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!