Добрый день. Подсажите пожалуйста по моей проблеме.
Поднят интернет шлюз на Ubunta Server 12.04.4 - раздает интернет пользователям и связывается по ipip туннелю с другим сервером, с которого получает почту, несколько сайтов и обменивается данными с 1С. Проблема в том, что пока не применены правила iptables - почта, и вебсервисы работают, но не работает интернет, как только применяем правила iptables - появляестся интернет и отрубается почта и т.д.
Конфигурация такова:
/etc/network/interfaces
# The loopback network interface
auto lo eth0 eth1 eth1:1
iface lo inet loopback
#Интернет
iface eth0 inet static
address 194.xxx.xxx.xxx
netmask 255.255.255.252
dns-nameservers 194.xxx.xxx.xxx 194.xxx.xxx.xxx
post-up /home/root/tunnels.sh
gateway 194.xxx.xxx.xxx
post-up iptables-restore < /etc/iptables.up.rules
#Локальная сеть
iface eth1 inet static
address 192.168.39.250
netmask 255.255.255.0
iface eth1:1 inet static
address 192.168.40.250
netmask 255.255.255.0
broadcast 192.168.40.255
network 192.168.40.0
/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
Туннели и маршрутизация поднимаются скриптом /home/root/tunnels.sh
#!/bin/bash
### Создаем point-to-point интерфейс туннеля tun0, сначала идет ip адрес удаленной машины, затем локальной, в конце указываем интерфейс$
ip tunnel add tun0 mode ipip remote 212.yyy.yyy.yyy local 194.xxx.xxx.xxx dev eth0
### Присвоим локальный ip адрес туннелю, и укажем ip пира на удаленном сервере, сначала идет локальный ip, потом удаленный
ifconfig tun0 192.168.253.46 netmask 255.255.255.252 pointopoint 192.168.253.45
### Устанавливаем MTU для интерфейса
ifconfig tun0 mtu 1280 up
### Запускаем интерфейс
ifconfig tun0 up
### Создаем point-to-point интерфейс туннеля tun1, сначала идет ip адрес удаленной машины, затем локальной, в конце указываем интерфейс$
ip tunnel add tun1 mode ipip remote 91.yyy.yyy.yyy local 194.xxx.xxx.xxx dev eth0
### Присвоим локальный ip адрес туннелю, и укажем ip пира на удаленном сервере, сначала идет локальный ip, потом удаленный
ifconfig tun1 192.168.252.25 netmask 255.255.255.252 pointopoint 192.168.252.26
### Устанавливаем MTU для интерфейса
ifconfig tun1 mtu 1280 up
### Запускаем интерфейс
ifconfig tun1 up
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.253.45
route add -net 192.168.13.0 netmask 255.255.255.0 gw 192.168.253.45
route add -net 192.168.9.0 netmask 255.255.255.0 gw 192.168.253.45
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.253.45
route add -net 192.168.125.0 netmask 255.255.255.0 gw 192.168.253.45
route add -net 212.19.27.200 netmask 255.255.255.248 gw 192.168.253.45
Туннели поднимаются и маршрутизация выполняется, просматриваю командой netstat -rn
root@gate:/home/rootl# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 194.xxx.xxx.xxx 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 192.168.253.45 255.255.0.0 UG 0 0 0 tun0
192.168.1.0 192.168.253.45 255.255.255.0 UG 0 0 0 tun0
192.168.9.0 192.168.253.45 255.255.255.0 UG 0 0 0 tun0
192.168.13.0 192.168.253.45 255.255.255.0 UG 0 0 0 tun0
192.168.39.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.40.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.125.0 192.168.253.45 255.255.255.0 UG 0 0 0 tun0
192.168.252.24 0.0.0.0 255.255.255.252 U 0 0 0 tun1
192.168.253.44 0.0.0.0 255.255.255.252 U 0 0 0 tun0
194.xxx.xxx.xxx 0.0.0.0 255.255.255.252 U 0 0 0 eth0
212.19.27.200 192.168.253.45 255.255.255.248 UG 0 0 0 tun0
Пока iptables не включен, туннель исправно функционирует, почта получается, 1С обменивается данными, веб сервисы доступны.
Добавляю правила в iptables
sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.39.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1:1 -s 192.168.40.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
Включаю IP-форвардинг
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
В /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
Сохраняю конфигурацию
sudo sh -c "iptables-save > /etc/iptables.up.rules"
И внутренняя сеть отрубается, интернет появляется.
iptables -L выводит следующее:
root@gate:/home/root# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.39.0/24 anywhere ctstate NEW
ACCEPT all -- 192.168.40.0/24 anywhere ctstate NEW
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
При попытке пинга ресурса по доменному имени при ОТКЛЮЧЕННЫХ правилах iptables пингуется внутренний адрес (192.168.13.4, 192.168.9.1), при ВКЛЮЧЕННЫХ правилах начинает пинговаться уже внешний адрес.
Подскажите пожалуйста, в чем проблема? Всю голову сломал уже.