Два провайдера-один сервер. Как правильно настроить?
Всем привет. Я новичок в линке, но пытаюсь решить для себя огромную проблему и перейти в Win2003 на Ubuntu.
У меня стояла задача, настроить два шлюза от двух провайдеров. Это у меня получилось сделать через iproute2.
Вот скрипт что я использую:
#!/bin/sh
IP1=195.182.142.73
IP2=37.230.206.62
P1=195.182.142.65
P2=37.230.206.32
IF1=eth0
IF2=eth1
# добавим дефаулт гетвей в каждую таблицу.
ip route add default via $P1 table T1
ip route add default via $P2 table T2
# Говорим, что по дефолту будем ходить через первого провайдера.
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
Все работает, apache, mysql и ssh отзываются по разным ip адресам.
Я залил сервер Counter Strike 1.6, и тут началось, он никак не хочет быть доступным по двум шлюзам. В настройках можно указать ip, перепробовал все что угодно. Указывал 0.0.0.0, 127.0.0.1, не хочет и все тут. Работает тольно если указать один из внешних.
При этом в netstat при запуске сервера появляются строчки с указанием портов:
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1024/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 934/sshd
tcp6 0 0 :::80 :::* LISTEN 1052/apache2
tcp6 0 0 :::22 :::* LISTEN 934/sshd
udp 0 0 0.0.0.0:26900 0.0.0.0:* 1862/hlds_linux
udp 0 0 0.0.0.0:27015 0.0.0.0:* 1862/hlds_linux
помогите пожалуйста разобраться.
PS. Получилось настроить это на микротике с помощью маркировки пакетов. Но не хочется использовать доп оборудование и нат.
Хм. lo не пробовал. По идее вообще если нет сети ЗА сервером - должно работать и так, но... При добавлении интерфейсов поднимаются маршруты в соответствующие сети, и если клиент из сети А придет на интерфейс Б - обратный пакет вполне может улететь в А.
Как вариант - дописать маршрут "А через А" в таблицу маршрутизации Б и наоборот.
Но я бы заморочился с маркировкой коннектов все же :)