Добрый день уважаемое сообщество!
Пытаюсь пробросить порт до серверов через 2 канала, скрипт следующий:
#! /bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
#/usr/bin/pon vpn
echo 'Чистим таблицы'
ip route flush table Akado
ip route flush table TTK
ip route flush table Megafon
echo 'Правила ТТК'
#Правила для ТТК
ip route add default via 188.168.202.254 table TTK
ip rule add from 188.168.202.254 table TTK
echo 'Правила акадо'
# Правила для Акадо
ip route add default via 217.78.183.246 table Akado
ip rule add from 217.76.183.246 table Akado
echo 'Правила маркировки'
# Правила по которым пойдут пакеты
ip rule add fwmark 10 lookup Akado
ip rule add fwmark 20 lookup TTK
# Правила для Мегафона
echo 'Правила loopback'
# Правила lo
ip route add 127.0.0.0/8 dev lo table 201
ip route add 127.0.0.0/8 dev lo table 202
ip route add 127.0.0.0/8 dev lo table 203
ip route flush cache
echo 'Чистим таблицы iptables'
# Чистим iptables
iptables -F
iptables -t nat -F
iptables -t raw -F
iptables -t mangle -F
iptables -X
echo 'Убираем ненужные пакеты'
# Дропаем корявые пакеты
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT # Принимаем всё от lo
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT #Разрешаем установленные соединения
iptables -A INPUT -m conntrack --ctstate NEW -i eth0 -j ACCEPT #Разрешаем новые из локальной сети
iptables -A INPUT -m tcp -p tcp --dport 22 -j ACCEPT #Разрешаем SSH отовсюду
echo 'Разрешаем пинги'
#Разрешаем пинги
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
echo 'Разрешаем пинги'
#Разрешаем пинги
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
echo 'Разрешаем NAT TTK'
#Разрешаем NAT через ТТК
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
echo 'Разрешаем NAT Akado'
#Разрешаем NAT через Акадо
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 'Проброс портов ТТК'
# Пробрасываем порт через ТТК
iptables -t nat -A PREROUTING -p tcp -d 188.168.202.148 --dport 80 -j DNAT --to-destination 192.168.0.52
iptables -A FORWARD -i eth0 -d 192.168.0.52 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 188.168.202.148 --dport 25 -j DNAT --to-destination 192.168.0.50
iptables -A FORWARD -i eth0 -d 192.168.0.50 -p tcp --dport 25 -j ACCEPT
echo 'Маркируем пакеты'
iptables -t mangle -A PREROUTING -i eth2 -j CONNMARK --set-mark 20
iptables -t mangle -A PREROUTING -i ppp0 -j CONNMARK --set-mark 10
iptables -t mangle -A POSTROUTING -j CONNMARK --restore-mark
echo 'Проброс портов акадо'
# Пробрасываем порт через Акадо
iptables -t nat -A PREROUTING -p tcp -d 178.75.33.202 --dport 80 -j DNAT --to-destination 192.168.0.52
iptables -A FORWARD -i eth0 -d 192.168.0.52 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 178.75.33.202 --dport 25 -j DNAT --to-destination 192.168.0.50
iptables -A FORWARD -i eth0 -d 192.168.0.50 -p tcp --dport 25 -j ACCEPT
Пакет всё равно идет по дефолтному маршруту, где что не правильно?
Пользователь решил продолжить мысль 06 Сентября 2012, 11:22:35:
Дело видимо даже не в маркировке, локально пакеты тоже не идут.
делаю ping -I eth2 8.8.4.4 ответов нет, меняю маршрут появляются, но исчезают на другом интерфейе.
Помогите пожалуйста.