server環境:
eth0 ip地址爲:10.18.6.115
open*** server的配置文件如下
local 10.18.6.115 port 1194 proto udp dev tun ca /etc/open***/easy-rsa/2.0/keys/ca.crt cert /etc/open***/easy-rsa/2.0/keys/server.crt key /etc/open***/easy-rsa/2.0/keys/server.key dh /etc/open***/easy-rsa/2.0/keys/dh1024.pem status /var/run/open***.status server 172.17.1.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "dhcp-option DNS 10.18.6.65" push "route 10.18.6.0 255.255.255.0" push "route 10.18.2.0 255.255.255.0" client-config-dir /etc/open***/ccd user nobody group nobody duplicate-cn keepalive 10 120 comp-lzo persist-key persist-tun script-security 2 verb 3
配置中推送了dns和2條路由到客戶端
設置iptables:
iptables -t nat -A POSTROUTING -s 172.17.1.0/24 -j SNAT --to-source 10.18.6.115
------------------------------------------------------------------------
客戶端192.16.5.0/24和***server在同一個局域網內,通訊正常。
但在載入***配置文件,撥通***後,無法ping通10.18.6.0/24網段。
經過各種配置排除都沒有發現任何問題。
故障分析:
撥***之前, 192.16.5.0/24 →10.18.6.0/24 直接局域網通訊。
撥***之後,由於推送了10.18.6.0/24的路由。客戶端會把與10.18.6.0/24的通訊包封裝到***接口,然後下一跳去找***server 10.18.6.115。但***server的地址也是10.18.6.0/24段啊。這不就矛盾了嗎?簡單說,就是找10.18.6去***server,找***server又得去10.18.6。這推來推去,肯定走不出去。
解決:把10.18.6.0從***server的配置中剔除。
local 10.18.6.115 port 1194 proto udp dev tun ca /etc/open***/easy-rsa/2.0/keys/ca.crt cert /etc/open***/easy-rsa/2.0/keys/server.crt key /etc/open***/easy-rsa/2.0/keys/server.key dh /etc/open***/easy-rsa/2.0/keys/dh1024.pem status /var/run/open***.status server 172.17.1.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "dhcp-option DNS 10.18.6.65" push "route 10.18.2.0 255.255.255.0" client-config-dir /etc/open***/ccd user nobody group nobody client-to-client duplicate-cn keepalive 10 120 comp-lzo persist-key persist-tun script-security 2 verb 3 log open***.log