У нас на сервере поднято на eth0 несколько vlan (3 провайдера) во внешний мир (интернет). Все провайдеры дают нам по одному реальному IP адресу, а один из провайдеров дал нам сразу 15 реальных IP адресов. На eth1 у нас локальная сеть и клиенты выходят в интернет через NAT. Теперь хочу задействовать все 15 адресов для выхода в интернет, но чего-то недопонимаю. Вот мой ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:20:D1:BC:59 inet6 addr: fe80::20f:20ff:fed1:bc59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13667959 errors:0 dropped:0 overruns:0 frame:0 TX packets:11793938 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:545452754 (520.1 MiB) TX bytes:2759444801 (2.5 GiB) Interrupt:177 Memory:f7ef0000-f7f00000
eth0.101 Link encap:Ethernet HWaddr 00:0F:20:D1:BC:59 inet addr: x.x.x.x Bcast: x.x.x.x Mask:255.255.255.252 inet6 addr: fe80::20f:20ff:fed1:bc59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5100758 errors:0 dropped:0 overruns:0 frame:0 TX packets:6750997 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2310892342 (2.1 GiB) TX bytes:1614750506 (1.5 GiB)
eth0.102 Link encap:Ethernet HWaddr 00:0F:20:D1:BC:59 inet addr: y.y.y.y Bcast: y.y.y.y Mask:255.255.255.252 inet6 addr: fe80::20f:20ff:fed1:bc59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:142942 errors:0 dropped:0 overruns:0 frame:0 TX packets:74047 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:203435004 (194.0 MiB) TX bytes:4619271 (4.4 MiB)
eth0.103 Link encap:Ethernet HWaddr 00:0F:20:D1:BC:59 inet addr:192.168.2.2 Bcast:192.168.2.15 Mask:255.255.255.240 inet6 addr: fe80::20f:20ff:fed1:bc59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:92631 errors:0 dropped:0 overruns:0 frame:0 TX packets:78519 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:91775558 (87.5 MiB) TX bytes:14033877 (13.3 MiB)
В интернет даю доступ по iptables, вот вырезка из скрипта который включает правила маршрутизации для третьего провайдера #Provider3 IP_INET252=«192.168.2.2» # адрес нашего марщрутизатора в сети провайдера. IF_INET252=«eth0.252» # имя интерфейса на провайдера. NET_INET252=«192.168.2.0/28» # адрес сети в которой гейт нашего провайдера. GW252=«192.168.2.1» # гейт провайдера.
ip route flush table T252 #обнуляем таблицу маршрутов ip route add default via $GW252 dev $IF_INET252 table T252 #закидываем в таблицу дефолтный гейт на первого провайдера
ip rule delete table T252 #удаляем наши таблицы, если они присутсвуют в текущей конфигурации (вдруг мы просто перезапускаем скрипт?) ip rule delete table T252 #удаляем наши таблицы, если они присутсвуют в текущей конфигурации (вдруг мы просто перезапускаем скрипт?) ip rule add from $IP_INET252 table T252 #все пакеты от ip адреса провайдера маршрутизировать по таблице ip rule add fwmark 0x252 table T252 #все пакеты, которые имеют метку маршрутизировать по таблице #натим все пакеты которые имеют метку 252 $IPT -t nat -A POSTROUTING -m mark --mark 0x252 -o $IF_INET252 -j SNAT --to-source 192.168.2.2-192.168.2.14
и вот здесь засада, правило "-j SNAT --to-source 192.168.2.2-192.168.2.14" не хочет работать. Точнее я вижу tcpdump-ом что пакеты вылетают но в ответ тишина. Я позвонил провайдеру он говорит, что нужно алиасы поднять на интерфейсе eth0.252, а как это сделать может подскажете. Спасибо