День добрый
подскажите с таким вопросом
есть 2 канала инета
- eth1 - 85.159.1.16 белый ip на нём сайт,почта
- ppp0 - DHCP городская сеть нашего провайдера
- eh0 - 192.168.2.2 - сеть офиса
ось CentOS
задача
1. нужно чтобы все по умолчанию ходили в инет только через 85,159,1,106
2. пользовались ресурсами сети городской сети ppp0 . так как она тарифицируется у провайдера как локальный трафик, то плата не идёт. диапазон своих адресов провайдер дал.
1 вопрос решил
2 тоже
но тут стал вопрос. как только прописываю маршруты то пользователи сети провайдера не могут зайти на мой сайт точнее на 85,159,1,106
обнуляю таблицы всё нормально
с других провайдеров все заходят нормально
так как сеть очень большая очень критично чтобы могли заходить
мои данные
eth0 Link encap:Ethernet HWaddr 00:02:44:BF:35:A8
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::202:44ff:febf:35a8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10856030 errors:0 dropped:0 overruns:0 frame:0
TX packets:15081664 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2651228179 (2.4 GiB) TX bytes:1970649620 (1.8 GiB)
Interrupt:201 Base address:0xa000
eth1 Link encap:Ethernet HWaddr 00:E0:4D:3D:ED:87
inet addr:85.159.1.106 Bcast:85.159.1.107 Mask:255.255.255.252
inet6 addr: fe80::2e0:4dff:fe3d:ed87/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15022239 errors:0 dropped:0 overruns:0 frame:0
TX packets:9629363 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1404944921 (1.3 GiB) TX bytes:1097257234 (1.0 GiB)
Interrupt:209 Base address:0xe000
eth2 Link encap:Ethernet HWaddr 00:E0:4C:18:6A:DD
inet addr:192.168.2.253 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:4cff:fe18:6add/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1478745 errors:0 dropped:0 overruns:0 frame:0
TX packets:1402626 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:624660856 (595.7 MiB) TX bytes:1658229354 (1.5 GiB)
Interrupt:193 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:13406 errors:0 dropped:0 overruns:0 frame:0
TX packets:13406 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:49378487 (47.0 MiB) TX bytes:49378487 (47.0 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:77.247.21.18 P-t-P:192.168.13.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:20427 errors:0 dropped:0 overruns:0 frame:0
TX packets:15403 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:12307088 (11.7 MiB) TX bytes:1108314 (1.0 MiB)
[root@linux ~]# iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 180K packets, 15M bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 223 packets, 13238 bytes)
pkts bytes target prot opt in out source destination
72245 5608K MASQUERADE all -- * eth1 0.0.0.0/0 0.0.0.0/0
167 8040 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 3872 packets, 281K bytes)
pkts bytes target prot opt in out source destination
скрипт с ip провайдера и маршрутами
route add 217.77.208.178 gw 192.168.13.1
route add 217.77.208.179 gw 192.168.13.1
route add 217.77.208.180 gw 192.168.13.1
route add 217.77.208.181 gw 192.168.13.1
route add 217.77.208.40 gw 192.168.13.1
route add 217.77.208.183 gw 192.168.13.1
route add 217.77.208.132 gw 192.168.13.1
route add 217.77.208.134 gw 192.168.13.1
route add 217.77.208.131 gw 192.168.13.1
route add -net 217.77.216.0/21 gw 192.168.13.1
route add -net 80.252.248.0/21 gw 192.168.13.1
route add -net 80.252.246.0/23 gw 192.168.13.1
route add -net 77.247.16.0/20 gw 192.168.13.1
route add -net 212.92.224.0/19 gw 192.168.13.1
2 канала интернет + маршрутизация + невидит сервер
Модераторы: SLEDopit, Модераторы разделов
-
octopus
- Сообщения: 5
- ОС: Fedora
-
Ariasp
- Сообщения: 254
- Статус: NixLander
Re: 2 канала интернет + маршрутизация + невидит сервер
octopus писал(а): ↑26.11.2008 01:18но тут стал вопрос. как только прописываю маршруты то пользователи сети провайдера не могут зайти на мой сайт точнее на 85,159,1,106
обнуляю таблицы всё нормально
с других провайдеров все заходят нормально
......................................................................
route add -net 212.92.224.0/19 gw 192.168.13.1
скорее всего здесь причина такая -- запрос на 85.159.1.16 приходит извне, через канал первого прова; а ответ на этот запрос - после прописывания route add - отправляется через 192.168.13.1, именно если запрос пришёл из сети второго прова; мало того, что ответ маскируется в этом случае правилом iptables, так ещё неизвестно, какие у прова второй сети есть фильтры; даже если фильтров нет -- клиент не будет понимать, если запрос был отправлен на 85.159.1.16, а ответ приходит от 192.168.13.1 или ещё откуда; разумеется произойдёт облом
правильным решением здесь была бы настройка маршрутизации по источнику с помощью iproute2 -- через 192.168.13.1 в сеть второго прова заруливаются только запросы из сети 192.168.2.0;
но можно попробовать такой вариант (хотя не факт, что сработает) -- маскировать на ppp0 только запросы из сети 192.168.2.0, т.е.
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
вместо MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
-
octopus
- Сообщения: 5
- ОС: Fedora
Re: 2 канала интернет + маршрутизация + невидит сервер
[root@linux ~]# iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 90 packets, 15935 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 8 packets, 638 bytes)
pkts bytes target prot opt in out source destination
70 7785 MASQUERADE all -- * eth1 192.168.2.0/24 0.0.0.0/0
0 0 MASQUERADE all -- * ppp0 192.168.2.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 8 packets, 638 bytes)
pkts bytes target prot opt in out source destination
поставил
но не проходит
я понимаю что згостка в то что запрос на 85,159,1,106 должен уходить обратно через 85,159,1,106
а он входит в сеть и тут маршрут идёт на 192,168,13,1 и тут затык
iproute2 настраивал 2 таблицы как нашёл в примерах всё работает но также
в инет через 85,159,1,106
и в сетку провайдера
а пользователи опять не видят меня
вопрос как прописать чтоб пакеты приходящие на 85,159,1,106 от второго провайдера не маршрутизировались у меня
правильным решением здесь была бы настройка маршрутизации по источнику с помощью iproute2 -- через 192.168.13.1 в сеть второго прова заруливаются только запросы из сети 192.168.2.0;
подскажите как это точнее прописать
ip route add 217.77.208.178 dev ppp0 table T1
ip route add 217.77.208.179 dev ppp0 table T1
ip route add 217.77.208.180 dev ppp0 table T1
ip route add 217.77.208.181 dev ppp0 table T1
ip route add 217.77.208.40 dev ppp0 table T1
ip route add 217.77.208.183 dev ppp0 table T1
ip route add 217.77.208.132 dev ppp0 table T1
ip route add 217.77.208.134 dev ppp0 table T1
ip route add 217.77.208.131 dev ppp0 table T1
ip route add 217.77.216.0/21 dev ppp0 table T1
ip route add 80.252.248.0/21 dev ppp0 table T1
ip route add 80.252.246.0/23 dev ppp0 table T1
ip route add 77.247.16.0/20 dev ppp0 table T1
ip route add 212.92.224.0/19 dev ppp0 table T1
ip route add default dev ppp0 table T1
вот таблица
тут я так понимаю нужно приписать ip rule
ip rule add from 192.168.2.0/24 table T1
всё заворачивается на ppp0
Chain PREROUTING (policy ACCEPT 90 packets, 15935 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 8 packets, 638 bytes)
pkts bytes target prot opt in out source destination
70 7785 MASQUERADE all -- * eth1 192.168.2.0/24 0.0.0.0/0
0 0 MASQUERADE all -- * ppp0 192.168.2.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 8 packets, 638 bytes)
pkts bytes target prot opt in out source destination
поставил
но не проходит
я понимаю что згостка в то что запрос на 85,159,1,106 должен уходить обратно через 85,159,1,106
а он входит в сеть и тут маршрут идёт на 192,168,13,1 и тут затык
iproute2 настраивал 2 таблицы как нашёл в примерах всё работает но также
в инет через 85,159,1,106
и в сетку провайдера
а пользователи опять не видят меня
вопрос как прописать чтоб пакеты приходящие на 85,159,1,106 от второго провайдера не маршрутизировались у меня
правильным решением здесь была бы настройка маршрутизации по источнику с помощью iproute2 -- через 192.168.13.1 в сеть второго прова заруливаются только запросы из сети 192.168.2.0;
подскажите как это точнее прописать
ip route add 217.77.208.178 dev ppp0 table T1
ip route add 217.77.208.179 dev ppp0 table T1
ip route add 217.77.208.180 dev ppp0 table T1
ip route add 217.77.208.181 dev ppp0 table T1
ip route add 217.77.208.40 dev ppp0 table T1
ip route add 217.77.208.183 dev ppp0 table T1
ip route add 217.77.208.132 dev ppp0 table T1
ip route add 217.77.208.134 dev ppp0 table T1
ip route add 217.77.208.131 dev ppp0 table T1
ip route add 217.77.216.0/21 dev ppp0 table T1
ip route add 80.252.248.0/21 dev ppp0 table T1
ip route add 80.252.246.0/23 dev ppp0 table T1
ip route add 77.247.16.0/20 dev ppp0 table T1
ip route add 212.92.224.0/19 dev ppp0 table T1
ip route add default dev ppp0 table T1
вот таблица
тут я так понимаю нужно приписать ip rule
ip rule add from 192.168.2.0/24 table T1
всё заворачивается на ppp0
-
Ariasp
- Сообщения: 254
- Статус: NixLander
-
octopus
- Сообщения: 5
- ОС: Fedora
Re: 2 канала интернет + маршрутизация + невидит сервер
вот что дало
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
и теперь инет у всех пропал
и даже пинг на 192,168,2,2 пропал
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
Error: an inet address is expected rather than "192.168.2.0/24".
и теперь инет у всех пропал
и даже пинг на 192,168,2,2 пропал
-
Ariasp
- Сообщения: 254
- Статус: NixLander
Re: 2 канала интернет + маршрутизация + невидит сервер
ip route flush table T1
an inet address is expected rather than "192.168.2.0/24"
не воспринимает суффикс маски /24, зараза; но если вместо 192.168.2.0/24 использовать просто 192.168.2.0, может не дать результат; тогда остаётся метить пакеты из 192.168.2.0/24 с помощью mangle
iptables –t mangle –A PREROUTING –i eth0 –p tcp -d 217.77.216.0/21 -j MARK --set-mark 2
и т.п.
ip rule del from 192.168.2.0/24 table T1 (или ip rule flush table T1)
ip rule add fwmark 2 table T1
+
ip route flush table T1
ip route add 217.77.216.0/21 via 192.168.13.1 dev ppp0 table T1
ip route flush cache
-
sdukshis
- Сообщения: 83
- ОС: Linux
Re: 2 канала интернет + маршрутизация + невидит сервер
Думаю что здесь можно использовать состояние соединения -m --state.
Т.е если сервер отвечает на http-запрос то для всех сетей назначения, кроме внутренней сети офиса устанавливать маршрутизацию по eth1
$EXT_GW="шлюз на eth1"
iptables -t nat -A OUTPUT -d !192.168.2.0/24 -p tcp --sport 80 -m --state ESTABLISHED,RELATIVE -j DNAT --to $EXT_GW
Т.е если сервер отвечает на http-запрос то для всех сетей назначения, кроме внутренней сети офиса устанавливать маршрутизацию по eth1
$EXT_GW="шлюз на eth1"
iptables -t nat -A OUTPUT -d !192.168.2.0/24 -p tcp --sport 80 -m --state ESTABLISHED,RELATIVE -j DNAT --to $EXT_GW
-
octopus
- Сообщения: 5
- ОС: Fedora
Re: 2 канала интернет + маршрутизация + невидит сервер
ни как не хочет
в первом варианте директива -t не проходит
и как только всё припишу ложится всё
блин, как собака всё понимаю но сделать не могу
аж бесит
в первом варианте директива -t не проходит
и как только всё припишу ложится всё
блин, как собака всё понимаю но сделать не могу
аж бесит
-
octopus
- Сообщения: 5
- ОС: Fedora
Re: 2 канала интернет + маршрутизация + невидит сервер
не прошу готового решения
может кто подскажет куда копать
или ни у кого такого решения не было
может кто подскажет куда копать
или ни у кого такого решения не было