Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Интернет шлюз с ipip туннелем (работает или интернет или туннель) (решено)  (Прочитано 2322 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Trev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Добрый день. Подсажите пожалуйста по моей проблеме.

Поднят интернет шлюз на 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), при ВКЛЮЧЕННЫХ правилах начинает пинговаться уже внешний адрес.
Подскажите пожалуйста, в чем проблема? Всю голову сломал уже.






« Последнее редактирование: 26 Февраль 2014, 11:49:18 от Trev »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13750
    • Просмотр профиля
Цитировать
sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
исправляйте
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн Trev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Цитировать
sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
исправляйте
Спасибо, помогло..

 

Страница сгенерирована за 0.07 секунд. Запросов: 25.