Добрый день!
# ifconfig
eth0 Link encap:Ethernet HWaddr 1a:1a:1a:1a:1a:1a
inet addr:192.168.200.10 Bcast:192.168.200.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:28 Base address:0xe000
eth1 Link encap:Ethernet HWaddr 1b:1b:1b:1b:1b:1b
inet6 addr: fe70::224:d1ff:fe15:bd24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:365574 errors:0 dropped:0 overruns:0 frame:0
TX packets:319358 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:305510970 (305.5 MB) TX bytes:43551826 (43.5 MB)
Interrupt:21 Base address:0xbc00
eth1:1 Link encap:Ethernet HWaddr 1b:1b:1b:1b:1b:1b
inet addr:11.22.33.205 Bcast:11.22.33.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:21 Base address:0xbc00
eth1:2 Link encap:Ethernet HWaddr 1b:1b:1b:1b:1b:1b
inet addr:44.33.22.122 Bcast:44.33.22.127 Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:21 Base address:0xbc00
eth2 Link encap:Ethernet HWaddr 1c:1c:1c:1c:1c:1c
inet addr:192.168.1.241 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe70::224:d1ff:fe10:c40e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:268328 errors:0 dropped:0 overruns:0 frame:0
TX packets:292235 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25363710 (25.3 MB) TX bytes:300222487 (300.2 MB)
Interrupt:20 Base address:0x2000
eth2:1 Link encap:Ethernet HWaddr 1c:1c:1c:1c:1c:1c
inet addr:192.168.1.240 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Base address:0x2000
eth1.10 Link encap:Ethernet HWaddr 1a:1a:1a:1a:1a:1a
inet addr:44.33.22.125 Bcast:44.33.22.127 Mask:255.255.255.248
inet6 addr: fe70::224:d1ff:fe15:bd24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:4830 (4.8 KB)
eth1.20 Link encap:Ethernet HWaddr 1a:1a:1a:1a:1a:1a
inet addr:11.22.33.207 Bcast:11.22.33.255 Mask:255.255.255.0
inet6 addr: fe70::224:d1ff:fe15:bd24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:6072 (6.0 KB)
lo Link encap:Локальная петля (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:20300 errors:0 dropped:0 overruns:0 frame:0
TX packets:20300 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2344755 (2.3 MB) TX bytes:2344755 (2.3 MB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.16.130.1 P-t-P:172.16.130.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
# ip route show
55.66.77.20 via 11.22.33.205 dev eth1
172.16.130.2 dev tun0 proto kernel scope link src 172.16.130.1
44.33.22.120/29 dev eth1.10 proto kernel scope link src 44.33.22.125
44.33.22.120/29 dev eth1 proto kernel scope link src 44.33.22.122
172.16.130.0/24 via 172.16.130.2 dev tun0
11.22.33.0/24 dev eth1.20 proto kernel scope link src 11.22.33.207
11.22.33.0/24 dev eth1 proto kernel scope link src 11.22.33.205
192.168.3.0/24 dev eth1 scope link src 192.168.1.241
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.241
192.168.200.0/24 dev eth0 proto kernel scope link src 192.168.200.10
10.0.0.0/8 dev eth2 proto kernel scope link src 10.1.1.1
default via 192.168.1.250 dev eth2
# iptables -tnat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
SQUID_ROUTE all -- 0.0.0.0/0 0.0.0.0/0
DNAT tcp -- 0.0.0.0/0 11.22.33.205 tcp dpt:1230 to:192.168.1.100:22
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 172.16.201.172 0.0.0.0/0 mark match !0x1 to:44.33.22.122
SNAT all -- 172.16.130.0/24 0.0.0.0/0 to:192.168.1.240
SECOND_ROUTE all -- 192.168.1.0/24 0.0.0.0/0
Chain SECOND_ROUTE (1 references)
target prot opt source destination
SNAT all -- 192.168.1.0/24 0.0.0.0/0 mark match !0x1 to:192.168.1.241
Chain SQUID_ROUTE (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 192.168.1.0/24
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,8080 to:192.168.1.240:3128
# iptables -t mangle -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
MARK all -- 0.0.0.0/0 192.168.2.0/24 MARK xset 0x1/0xffffffff
MARK all -- 0.0.0.0/0 10.10.10.0/24 MARK xset 0x1/0xffffffff
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
MARK all -- 0.0.0.0/0 192.168.2.0/24 MARK xset 0x1/0xffffffff
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
11.22.33.205 - наш внешний адрес
44.33.22.122 - наш второй внешний адрес
192.168.1.250 - ADSL-роутер внутри локальной сети
В сети имеются web-серверы, доступ к которым осуществляется через адрес 11.22.33.205. Также имеется IPSec-соединение с удалённым адресом 11.22.33.205 <-> 55.66.77.20.
Задача: - Необходимо, чтобы исходящие в интернет пакеты, не относящиеся к IPSec, с клиентов и шлюза 192.168.1.240 ходили через шлюз 192.168.1.250. Соответственно, у всех клиентов сети будет указан 192.168.1.240 в качестве шлюза.
- Должна работать IPSec (как выше сказано, пакеты до удалённого адреса 55.66.77.20 должны уходить только с 11.22.33.205).
- Пакеты внешних соединений, установленных на 11.22.33.205 естественно должны ходить через 11.22.33.205.
Что имеем: в данный момент удалось орагнизовать первые два пункта. Проблема с третьим. В идеале должно быть так: удалённый клиент (пусть будет 88.88.88.88) запрашивает сайт с нашего адреса 11.22.33.205, устанавливается соединение и, в рамках данного содинения, наш шлюз должен отдавать пакеты через етот интерфейс. Если же кто-то из сети или сам шлюз решит установить соединение 88.88.88.88:1234, то такой пакет должен будет уйти через 192.168.1.250
Делал по етой статье: http://gazette.linux.ru.net/rus/articles/lartc/x348.html но столкнулся с той проблемой, что у меня два разномастных канала - один настроен через сетевую с внешним IP, другой - через ADSL-модем, который находится внутри сети.
Возникла мысль, что соединения как-то можно маркировать посредством iptables, но в мануалах написано, что MARK маркирует только одиночные пакеты, да и то внутри шлюза. Советуют играть с TOS. По нему есть два вопроса: будет ли один TOS принадлежать всем пакетам из одного соединения? И как правильно его задавать?
В общем, посоветуйте что-нть по задаче