什么是NAT
NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址,而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址转换成公网地址,从而使得在外网(Internet)上使用一个和数个合法IP地址正常传输数据。其中,这里的外网和内网是相对来讲的,下面假设能够访问互联网的网络为外网。
什么是DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
实验环境
vSphere Client远程esxi
配置网卡
首先新建一个虚拟交换机
注意选择创建交换机的时候,不要选中网卡,把默认选中的网卡前的对勾删掉,之所以这么做,是因为我们要把这个网络的请求都转发到VM Network上去,而不要让它自己走物理网卡出去。
点击下一步给交换机随便起个名字,一路下一步即可
然后新建一个双网卡的虚拟机,我用的是最小化安装centos7
然后打开虚拟机设置
把网卡2连接到我们刚才新建的虚拟交换机上
这里记录一下网卡2的mac地址,接下来会用到
详细配置
自行配置联网,如果是校园网可以用脚本临时登陆
更新yum源yum -y update
确保我们yum到的软件都是最新的
yum -y install net-tools
安装一些基本命令
接下来输入ifconfig找到刚才记录的mac地址,把这个网卡ip设置成内网ip,另一个设置成外网ip
配置如下,外网ip及网关根据实际情况配置,内网ip可参照互联网协议设置(我这里ens160为外网网卡)
私有地址的范围分别是:1
2
3A类地址范围:10.0.0.0—10.255.255.255;
B类地址范围:172.16.0.0---172.31.255.555;
C类地址范围:192.168.0.0---192.168.255.255。
vi /etc/sysconfig/network-scripts/ifcfg-ens160
1 | TYPE=Ethernet |
vi /etc/sysconfig/network-scripts/ifcfg-ens192
1
2
3
4
5
6
7
8TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.255.1
NAME=ens192
DEVICE=ens192
ONBOOT=yes
NETMASK=255.255.255.0
DNS=114.114.114.114
注意不要写网关
重启网卡
service network restart
防火墙配置
关闭防火墙1
2
3setenforce 0
systemctl stop firewalld
systemctl disable firewalld
配置防火墙,让发送至内网网卡(ens192)的数据全部通过
iptables -A FORWARD -i ens192 -j ACCEPT
修改数据报头信息
iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -o ens160 -j MASQUERADE
开启Linux路由功能1
2echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
安装配置DHCP服务
安装DHCP服务1
2yum install -y epel*
yum install -y dhcp
复制DHCP配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
选择yes覆盖原有文件
编辑并修改dhcpd.conf配置文件
vi /etc/dhcp/dhcpd.conf
箭头是修改的地方,后面的代码删除即可
解释:1
2
3
4
5
6
7
8
9
10
11
12subnet后跟子网网段
netmask后面是子网掩码
range是地址池范围
option routers是分发默认网关
默认租期时间(秒)
default-lease-time 600;
最大租期时间(秒)
max-lease-time 7200;
DNS服务器地址(多个地址用","隔开)
option domain-name-servers 223.5.5.5, 114.114.114.114;
为所分配的域分配域名(名字随便起)
option domain-name "vmnet.com";
启动DHCP服务
1 | systemctl restart dhcpd |
查看启动状态
1 | systemctl status dhcpd |