На сервере debian squeeze я получил 2 IP-адреса на eth0 (eth0 и eth0: 1). При открытии TCP-соединений сервер по умолчанию использует IP-адрес eth0: 1. Однако я хочу, чтобы он использовал основной (eth0) IP, потому что я хочу, чтобы другой использовался только для (прослушивания) демонов.
#/etc/network/interfaces
auto eth0
iface eth0 inet static
address 92.xxx.xxx.92
netmask 255.255.255.192
network 92.xxx.xxx.64
broadcast 93.xxx.xxx.127
gateway 92.xxx.xxx.65
auto eth0:1
iface eth0:1 inet static
address 108.xxx.xxx.146
netmask 255.255.255.192
gateway 108.xxx.xxx.129
#ip route show
108.xxx.xxx.128/26 dev eth0 proto kernel scope link src 108.xxx.xxx.146
92.xxx.xxx.64/26 dev eth0 proto kernel scope link src 92.xxx.xxx.92
default via 108.xxx.xxx.129 dev eth0 src 108.xxx.xxx.146
default via 92.xxx.xxx.65 dev eth0
Что я могу сделать, чтобы debian использовал 92. IP для исходящих соединений? Другой, конечно, должен работать.
Вы почти наверняка должны иметь только один gateway
параметр в вашей сетевой конфигурации (в основном, если вы не знаете, зачем вам два, вы этого не сделаете). В gateway
Параметр указывает шлюз по умолчанию для вашего компьютера - маршрутизатор, который должен отправлять трафик, у которого нет более конкретного маршрута. В большинстве сетей есть только один маршрутизатор, который соответствует этим критериям, даже если у вас может быть несколько других (более конкретных) маршрутов для других сетей.
Если по каким-либо причинам вам действительно нужно, чтобы 2 разные IP-сети работали одновременно, вам следует использовать ip rule
в Linux.
Скажем, две IP-сети «A» и «B» находятся на одной сетевой карте. «А» - первичный, т.е. е., при пинге некоторых хостов из коробки, вы хотите, чтобы использовались параметры IP «A», поэтому вы помещаете только шлюз по умолчанию «A» в (основную) таблицу маршрутизации. И если вам нужны ответы, приходящие от «B», чтобы использовать шлюз по умолчанию «B», вы можете управлять этим с помощью:
ip rule add from B_Network/Mask lookup table B_table pref 20000
ip route add default via B_gw table B_table
B_table должна быть определена в /etc/iproute2/rt_tables
первый. Видеть LARTC для подробностей.