作者/来源:yixinu.com
栏目:运维/编程
日期:2012-05-14 06:43:16
NAT network address translation
example: 双网卡NAT服务器配置
eth0 : 连接外网 192.168.73.173
eth1: 连接内网 152.10.0.1
1、如果希望Linux 能够扮演一个router的角色 必须把ip forwarding 的功能打开
echo "1" > /proc/sys/net/ipv4/ip_forward
2、开启 router 后
iptables -t nat -A POSTROUTING -s 152.10.0.0/16 -o eth0 -j MASQUERADE
保存规则
/etc/init.d/iptables save
此时 /etc/sysconfig/iptables :
# Generated by iptables-save v1.4.7 on Thu May 10 22:02:57 2012 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 152.10.0.0/16 -o eth0 -j MASQUERADE COMMIT # Completed on Thu May 10 22:02:57 2012 # Generated by iptables-save v1.4.7 on Thu May 10 22:02:57 2012 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 69 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 69 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 3713 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 3713 -j ACCEPT COMMIT # Completed on Thu May 10 22:02:57 2012
声明:服务器已开启DHPC服务,配置为:
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 152.10.0.0 netmask 255.255.0.0 {
range 152.10.1.10 152.10.1.254;
option domain-name-servers 152.10.0.1;
option domain-name "server002.com";
option routers 152.10.0.1;
option broadcast-address 152.10.255.255;
default-lease-time 600;
max-lease-time 7200;
next-server 152.10.0.1;
filename "pxelinux.0";
}
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95;
filename "vmunix.passacaglia";
server-name "toccata.fugue.com";
}
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
class "foo" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}
shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of "foo";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "foo";
range 10.0.29.10 10.0.29.230;
}
}
3、在客户端 自动获取IP和DNS
完成后发现问题,依然上不了网,无法通过域名访问网站 ,但能用IP访问网站,说明NAT服务器已经成功,
问题在 DNS 服务器未开启。。
4、配置DNS服务器,并开启,配置文件如下:
options {
listen-on port 53 { localhost; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
// 在没有注释掉这3行之前,依然不能通过DNS访问网站 ,不知道这3行有何作用
// dnssec-enable yes;
// dnssec-validation yes;
// dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "server002.com." IN {
type master;
file "server002.com";
};
include "/etc/named.rfc1912.zones";
5、重启服务 ,客户机可以能过域名访问网站了
