幫忙看看:利用 iptables dhcp squid 實現多網段透明代理
在一台linux(fc6)上架了 squid ,用 dhcp和iptables 實現透明代理
eth0 的地址為 192.168.8.100, eth1是外網介面
設置了eth0:1 ,eth0:2 , ............eth0:5 五個子介面 為五個網段 201.0,202.0,........205.0動態分配地址
eth0:1 的配置文件
DEVICE=eth0:1
BOOTPROTO=none
BROADCAST=192.168.201.15
HWADDR=**********
IPADDR=192.168.201.1
NETMASK=255.255.255.240
NETWORK=192.168.201.0
ONBOOT=yes
TYPE=Ethernet
其他類似
dhcp的配置為
subnet 192.168.201.0 netmask 255.255.255.248 {
default-lease-time 86400;
max-lease-time 259200;
option routers 192.168.201.1;
option subnet-mask 255.255.255.248;
option nis-domain "domain.org";
option domain-name "domain.org";
option time-offset -18000;
option domain-name-servers 為公網上的dns伺服器
host pc1 {hardware ethernet:........
fixed-address : ........ }......}其他網段類似
iptables 實現透明代理語句 為
echo "1"> /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.8.0/24 --dport 80 -j DNAT --to 192.168.8.100:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.201.0/29 --dport 80 -j DNAT --to 192.168.201.1:3128
其他網段類似
結果:
dhcp分配正常
當在eth0的子網8.0 內測試時 一切正常
但在eth0:1等子介面分配的子網內測試時
ping 普通ip地址 能出去 但ping dns的地址出不去 連不上dns了
折騰了好久才到這地步,感覺離成功就差一步了...
鬱悶中...請大家幫忙看看
《解決方案》
別的論壇的朋友 認為虛擬出的子介面 轉發有問題
可iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.201.0/29 --dport 80 -j DNAT --to 192.168.8.100:3128 后
即 轉發到eth0上 問題依舊
各位朋友指點一下阿
《解決方案》
換DNS伺服器地址,這個和是那個地址應該沒關係吧,都是ICMP協議!
《解決方案》
我所有的機器都用的那個dns 網通的202.106.196.115 是正常的
《解決方案》
問題已經解決了
果然是dns設置的問題,謝謝3樓的