配置SNTA实现共享上网

    xiaoxiao2025-05-07  11

    2.配置SNAT实现共享上网 问题 本案例要求熟悉SNAT策略的典型应用场景,完成以下任务: 1)搭建一套“局域网-Linux网关-互联网”的案例环境 2)在Linux网关上配置SNAT策略,实现局域网主机的共享上网 3)修改现有的SNAT策略,验证MASQUERAD伪装的有效性 方案 采用三台RHEL6虚拟机svr5、gw1、pc120,如图-2所示。其中,虚拟机svr5作为局域网络的测试机,接入NAT网络(virbr0);虚拟机pc120作为Internet的测试机,接入隔离网络(virbr1);虚拟机gw1作为网关/路由器,配置eth0、eth1两块网卡,分别接入两个网络virbr0、virbr1。 图-2 内网测试机svr5还需要将默认网关指向Linux网关的内网接口192.168.4.1: [root@svr5 ~]# route -n | grep UG 0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0 网关gw1上开启路由转发: [root@gw1 ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 [root@gw1 ~]# sysctl -p net.ipv4.ip_forward = 1 … … 步骤 实现此案例需要按照如下步骤进行。 步骤一:搭建一套基于“局域网-Linux网关-互联网”的案例环境 沿用练习一的环境,稍作调整。 停用虚拟机svr5、gw1、pc120上的iptables服务,清空防火墙规则: [root@gw1 ~]# service iptables stop iptables:将链设置为政策 ACCEPT:filter [确定] iptables:清除防火墙规则: [确定] iptables:正在卸载模块: [确定] 去掉外网测试机pc120的路由设置: [root@pc120 ~]# route del default gw 174.16.16.1 [root@pc120 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 174.16.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 步骤二:在Linux网关上配置SNAT策略,实现局域网主机的共享上网 1)在网关启用SNAT转换之前,内网无法访问外网 比如从内网机svr5尝试访问外网机pc120时,因为pc120缺少到svr5所在私网网段的路由记录,所以访问会失败。这个与正常的互联网寻址情况是相吻合的,即私网地址不在互联网中路由。 使用elinks测试Web访问的情况如下: [root@svr5 ~]# elinks --dump http://174.16.16.120 … … ^C //长时间无响应,按Ctrl+c键中止 [root@svr5 ~]# 2)在gw1上添加SNAT转换规则 添加的规则应该在nat表内,将来自局域网段192.168.4.0/24、将要从外网接口eth1出去的数据包,在路由选择之后将数据包的源IP地址修改为网关gw1的外网接口的IP地址174.16.16.120: [root@gw1 ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j SNAT --to-source 174.16.16.1

    [root@gw1 ~]# iptables -t nat -nL POSTROUTING Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all – 192.168.4.0/24 0.0.0.0/0 to:174.16.16.1 3)再次测试从内网访问外网 从内网机svr5上访问外网机pc120的网站,可以成功看到网页: [root@svr5 ~]# elinks --dump http://174.16.16.120 Test Page 120. 但是在检查pc120的Web访问日志时,可以看到来访的客户机地址其实是网关gw1的外网地址,说明网关已经通过SNAT规则把Web请求包的源地址192.168.4.5改成了174.16.16.1,实现了局域网主机共享网关的公网IP地址上网: [root@pc120 ~]# tail -1 /var/log/httpd/access_log 174.16.16.1 - - [19/May/2015:14:14:05 +0800] “GET / HTTP/1.1” 200 15 “-” “ELinks/0.12pre5 (textmode; Linux; -)” 步骤三:修改现有的SNAT策略,验证MASQUERAD伪装的有效性 1) 确认网关gw1上现有的SNAT策略 [root@gw1 ~]# iptables -t nat -nL POSTROUTING Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all – 192.168.4.0/24 0.0.0.0/0 to:174.16.16.1 2) 将网关gw1上的SNAT策略替换为MASQUERADE伪装策略 可以删除原策略,重新设置新策略,匹配条件与SNAT差不多,但是处理方式修改为MASQUERADE即可: [root@gw1 ~]# iptables -t nat -D POSTROUTING 1 [root@gw1 ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j MASQUERADE

    [root@gw1 ~]# iptables -t nat -nL POSTROUTING Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all – 192.168.4.0/24 0.0.0.0/0 3)再次测试从内网访问外网 从内网机svr5上访问外网机pc120的网站,还是可以成功看到网页: [root@svr5 ~]# elinks --dump http://174.16.16.120 Test Page 120.

    最新回复(0)