一、squid
1、实现透明代理Transparent Proxy
路由功能需打开:echo 1 > /proc/sys/net/ipv4/ip_forward
squid:
http_port 192.168.0.45:8080 transparent
acl allow all

iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080


client:
route add default gw 192.168.10.5


两种解决方案:
1、内部DNS
2、DNS SNAT

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 192.168.0.45


2、reverse proxy,DNAT 实现反向代理
mv squid.conf squid.conf.transparent 
cp squid.conf.bak squid.conf

http_port 192.168.10.11:80 vhost


二、DNS(Domain Name Sytem)
C/S架构
FQDN(Full Qualified Domain Name)完全限定域名
ICANN

根域
.
顶级域
gov,edu,net,com,org,mil,int
cn,hk,ge,uk,jp...
二级域名
ibm,hp。。。



DNS查询类型:(同时存在)
递归
迭代

缓存 (时长 - ip与主机名变化频度)

domain与zone

资源记录类型:
SOA 起始授权记录(权威,哪个范围谁说的算)
NS 那个说的算的人
A 主机名-->ip
PTR ip-->主机名
MX 邮件交换器
CNAME 别名
TXT 表明域的身份信息--url重定向

正副关系:
主域名服务器
从域名服务器---区域传送 

增量传送ixfr

完全区域传送axfr--tcp

allow-transfer { none; };


DNS服务器的类型:
主域名服务器
辅助域名服务器
缓存域名服务器--节约带宽
转发器

——————————————————————————————————————————————————————
二、构建DNS服务器
bind,bind-libs,bind-utils,bind-chroot(jail),caching-nameserver
powerDNS
myDNS---》myDNSng

bind-->named:53-->DNS

named进程:
database:zone file ,FQDN-->IP
 reverse zone file ,ip-->FQDN

file,root dns server
database:
localhost,127.0.0.1
**************************************
yum -y install bind bind-libs bind-utils

/etc/named.conf
/var/named
named.ca
localhost.zone
name [TTL] IN RECORD_TYPE value
named.local
/etc/init.d/named

rndc辅助工具--bind的远程名称进程控制工具
953端口



1)/etc/named.conf
options {
        directory "/var/named";
};

zone "." IN {
        type hint;
        file "named.ca";
        
};      


zone "." IN {
        type master;
        file "localhost.zone";

};


zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";

};


2)/var/named/named.ca
dig -t NS .
dig -t NS . @a.root-servers.net > /var/named/named.ca

3)/var/named/localhost.zone
$TTL 86400
@       IN      SOA     localhost.      admin.localhost. (
                                2011012801
                                1H
                                15M
                                1W
                                1D )
@               IN      NS      localhost.
localhost.      IN      A       127.0.0.1

4)
/var/named/named.local
$TTL 86400
@       IN      SOA     localhost.      admin.localhost. (
                                2011012801
                                1H
                                15M
                                1W
                                1D )

@               IN      NS      localhost.
1               IN      PTR     localhost.

5) chown :named /etc/named.conf 
chown :named /var/named/* -R

service named configtest


dig -t A localhost.
dig -x 127.0.0.1


rndc-confgen > /etc/rndc.conf
tail /etc/rndc.conf |head -9 | sed 's/^# //g' >> /etc/named.conf