В общем, ситуация такая. Имеется сервер, Centos 6.4 На сервере 4 сетевые карты подключены. eth0 - локалка. eth1 - в мир, со статичным ip - собственно это наш провайдер. точно так же и eth3 - еще один провайдер со статичным ip.
В локальной сети имеется подключенный DVR. 192.168.0.2
Проблема вот в чем, если по дефолту соединение идет через eth1, т.е. в таблице маршрутизации указан gateway для 1 провайдера, из мира по адрессу xxx.xxx.xxx.xxx:90 открывается dvr и все прекрасно работает, все камеры видно. Если перейти на eth3 тобишь получать интернет от них, НО в маршрутизации создана таблица, где указано, что для eth1 - gateway должен быть их, а для eth3 их, из мира можно достать адрес xxx.xxx.xxx.xxx(адрес eth1) открывается страница centos apache test page, все пашет без проблем, но при обращении к 90 порту на этот же адрес, dvr уже не открывается.ip ro list
xxx.xxx.83.164/30 dev eth1 proto kernel scope link src xxx.xxx.83.166
xxx.xxx.69.156/30 dev eth3 proto kernel scope link src xxx.xxx.69.158
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1
default via xxx.xxx.83.165 dev eth1
В данном случае камеры видны из мира.iptables status:
service iptables status
Table: mangle
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 MARK all -- 0.0.0.0/0 0.0.0.0/0 MARK set 0x9Chain INPUT (policy ACCEPT)
num target prot opt source destinationChain FORWARD (policy ACCEPT)
num target prot opt source destinationChain OUTPUT (policy ACCEPT)
num target prot opt source destinationChain POSTROUTING (policy ACCEPT)
num target prot opt source destinationTable: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- 0.0.0.0/0 !192.168.0.1 multiport dports 80,88,8000,8001,8002,8080 redir ports 3128
2 REDIRECT udp -- 0.0.0.0/0 !192.168.0.1 multiport dports 80,88,8000,8001,8002,8080 redir ports 3128
3 REDIRECT tcp -- 0.0.0.0/0 !192.168.0.1 multiport dports 8091,8100,8101,8102,8103,8888,777 redir ports 3128
4 REDIRECT udp -- 0.0.0.0/0 !192.168.0.1 multiport dports 8091,8100,8101,8102,8103,8888,777 redir ports 3128
5 DNAT tcp -- 0.0.0.0/0 xxx.xxx.83.166 tcp dpt:90 to:192.168.0.2:90
6 DNAT tcp -- 0.0.0.0/0 xxx.xxx.83.166 tcp dpt:554 to:192.168.0.2:554
7 DNAT tcp -- 0.0.0.0/0 xxx.xxx.83.166 tcp dpt:9010 to:192.168.0.2:9010
8 DNAT udp -- 0.0.0.0/0 xxx.xxx.83.166 udp dpt:90 to:192.168.0.2:90
9 DNAT udp -- 0.0.0.0/0 xxx.xxx.83.166 udp dpt:554 to:192.168.0.2:554
10 DNAT udp -- 0.0.0.0/0 xxx.xxx.83.166 udp dpt:9010 to:192.168.0.2:9010Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0 mark match 0x9Chain OUTPUT (policy ACCEPT)
num target prot opt source destinationTable: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53
11 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:53
12 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:993
13 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:995
14 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110
15 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:465
16 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3128
17 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT tcp -- 0.0.0.0/0 192.168.0.2 tcp dpt:90
6 ACCEPT tcp -- 0.0.0.0/0 192.168.0.2 tcp dpt:554
7 ACCEPT tcp -- 0.0.0.0/0 192.168.0.2 tcp dpt:9010
8 ACCEPT udp -- 0.0.0.0/0 192.168.0.2 udp dpt:90
9 ACCEPT udp -- 0.0.0.0/0 192.168.0.2 udp dpt:554
10 ACCEPT udp -- 0.0.0.0/0 192.168.0.2 udp dpt:9010
11 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)
num target prot opt source destinationникак не получается разобраться и понять в чем дело... Помогите люди добрые!
/sbin/ip rule add from xxx.xxx.83.166 dev eth1 table 10
/sbin/ip route add default via xxx.xxx.83.165 dev eth1 table 10 --- это gateway eth1
/sbin/ip route flush cache
/sbin/ip route del default
/sbin/ip route add default via xxx.xxx.69.157 --- это та самая eth3 gatewayПри этих настройках, т.е. интернет получаем уже от 2 провайдера, можно достать адрес xxx.xxx.83.166 - centos test page. тобишь доступ есть к серверу из мира к интерфейсу eth1, но при обращении к xxx.xxx.83.166:90 доступа уже нет.
http://sys-adm.org.ua/net/smart-dnatвозможно поможет
> http://sys-adm.org.ua/net/smart-dnat
> возможно поможетОтличная статья, Спасибо!
>[оверквотинг удален]
> /sbin/ip route add default via xxx.xxx.83.165 dev eth1 table 10 ---
> это gateway eth1
> /sbin/ip route flush cache
> /sbin/ip route del default
> /sbin/ip route add default via xxx.xxx.69.157
> --- это та самая eth3 gateway
> При этих настройках, т.е. интернет получаем уже от 2 провайдера, можно достать
> адрес xxx.xxx.83.166 - centos test page. тобишь доступ есть к серверу
> из мира к интерфейсу eth1, но при обращении к xxx.xxx.83.166:90 доступа
> уже нет.default route у одного хоста только одиин. Надо выбрать один интерфейс для дефаулт роута,а для двух остальных надо прописать статические маршруты. Во второйй строке помимо дефааулт гейтвея вы еще и указываете интерфейс, что вы не делаете в последней строке. Покажите поз результаты команды
route -n
Кстате, параметр default gateway указывается в конфиге интерфейса(как вам уже известно), а в последней команде вы указываете что поменялся шлюз по умолчанию, но при этом не говорите, через какой интерфесэйс надо ходить. Ваша машина ищет хост ххх.ххх.69.157 но при этом он ходит через eth1 а не eth3 (если ваши старания правильно понял).Если вы напишите задачу, что именно вы хотите сделать, постараюсь написать более исчерпывающий ответ.
С уважением!Ссори, лезу из телефона не увиделвсю тему целиком.
Значит так:по дефолту мы ходим через eth1 к пров1.
Надо прописать статику следующим образом:
route add xxx.xxx.xxx (публичный адрес подсети, кому даем доступ на DVR) 255.255.255.xxx маска той подсети) gw xxx.xxx.69.157 (пров3)via eth3 (Х тот интерфейс, где подключен линк для сети ххх.ххх.69.157). то есть к нужной внешней подсети ходем через пров3 по интерфейсу eth3.По моему все смог описать по человечески :)
>[оверквотинг удален]
> С уважением!
> Ссори, лезу из телефона не увиделвсю тему целиком.
> Значит так:
> по дефолту мы ходим через eth1 к пров1.
> Надо прописать статику следующим образом:
> route add xxx.xxx.xxx (публичный адрес подсети, кому даем доступ на DVR) 255.255.255.xxx
> маска той подсети) gw xxx.xxx.69.157 (пров3)via eth3 (Х тот интерфейс, где
> подключен линк для сети ххх.ххх.69.157). то есть к нужной внешней подсети
> ходем через пров3 по интерфейсу eth3.
> По моему все смог описать по человечески :)А что за хост 192.168.0.2?
Это собственно и есть двр подключенный в локалке =)
Более чем =) благодарю за внимание и помощь!