什麼是NAT?
NAT(Network address translation)即網絡地址轉換,作爲一種過渡解決手段,可以用來減少對全球合法IP地址的需求。簡單的說,NAT就是在內部專用網絡中使用內部地址,而當內部節點要與外界網絡發生聯繫時,就在邊緣路由器或者防火牆處,將內部地址轉換成全局地址,從而使得在外部公共網(Internet)上使用一個和數個合法IP地址正常傳輸數據。
其中,這裏的外網和內網是相對來講的,下面假設能夠訪問互聯網的網絡爲外網。
實驗環境
一臺有兩張網卡的centos虛擬機,外網 ip:172.18.74.184 內網 ip:10.0.0.1
關閉防火牆
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
配置網絡
配置外網網卡網絡(我這裏是ens160,按照自己實際情況進行相應配置)
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens160"
DEVICE="ens160"
ONBOOT="yes"
IPADDR="172.18.74.184"
NETMASK="255.255.255.0"
GATEWAY="172.18.74.253"
DNS1="8.8.8.8"
配置內網網卡網絡(我這裏是ens192,主要不要填寫網管GATEWAY)
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens192"
DEVICE="ens192"
ONBOOT="yes"
IPADDR="10.0.0.1"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
防火牆配置
配置防火牆,讓發送至內網網卡(ens192)的數據全部通過
iptables -A FORWARD -i ens192 -j ACCEPT
NAT配置
修改數據報頭信息
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens160 -j MASQUERADE或
iptables -t nat -A POSTROUTING -j SNAT --to-source 172.18.74.184(外網IP地址)
開啓Linux路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
檢查是否啓用(內容爲1即爲啓用,爲0即爲關閉),重啓網絡服務後會變爲0,需要重新執行上條指令啓用路由功能
cat /proc/sys/net/ipv4/ip_forward
什麼是DHCP?
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。
搭建DHCP服務
使用yum方式安裝dhcp服務
yum install dhcp-* -y
複製配置文件
將/usr/share/doc/dhcp-*/dhcpd.conf.example文件複製到/etc/dhcp/dhcpd.conf,選擇覆蓋
cp /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
修改dhcpd.conf文件
vim /etc/dhcp/dhcpd.conf
更改以下部分
7 option domain-name "zhang.com";
##域名:參見/etc/resolv.conf,隨便寫
8 option domain-name-servers 8.8.8.8,114。114.114.114;
##指定dns服務器,多臺用逗號隔開。
30 subnet 10.0.0.0 netmask 255.255.255.0 {
##指定子網絡及子網掩碼
31 range 10.0.0.10 10.0.0.100;
##指定IP範圍
32 option routers 10.0.0.1;
##指定默認網關(本機內網ip)
33 }
34#### 刪除27,28行,34行及以後
啓動DHCP服務
systemctl restart dhcpd
systemctl enable dhcpd
查看啓動狀態
systemctl status dhcpd
netstat -uap | grep dhcpd