В Unix все - файл.
Эти файлы организованы в древовидной структуре, начинающейся в корне /
.
Ваша файловая система или файловые системы будут затем смонтированы в соответствующих местах в Вашем /
согласно Вашему /etc/fstab
файл. Этот файл содержит информацию о Ваших файловых системах, какому устройству они принадлежат и к которой точке они будут смонтированы к - точка монтирования.
Это, "монтируют понятие".
Это не ограничено дисками и другим blockdevices, вот некоторое вовлечение в качестве примера, смонтируйтесь:
Вы неправильно понимаете проблему. Не каждый пакет является ответом, и не каждый пакет может быть подобран к некоторому другому пакету, таким образом, что "тот же сетевой интерфейс, поскольку они вошли на", имеет смысл. То, что Вы хотите сделать, выбрать шлюз для пакета на основе его исходного IP-адреса.
Это называют основанной на источнике маршрутизацией или маршрутизацией политики. Можно сделать это с простым iptables
правило, но лучший способ состоит в том, чтобы настроить две таблицы маршрутизации, один для каждого общедоступного исходного адреса:
Во-первых, составьте две таблицы (Замена <NAME1> и <NAME2> с разумными именами Ваших двух поставщиков, того же с IP1, DEV1, и так далее):
echo 200 <NAME1> >> /etc/iproute2/rt_tables
echo 201 <NAME2> >> /etc/iproute2/rt_tables
Добавьте шлюз к каждой таблице маршрутизации (в случае необходимости):
ip route add <NET1> dev <DEV1> src <SRC1> table <NAME1>
ip route add <NET2> dev <DEV2> src <SRC2> table <NAME2>
Затем маршрут по умолчанию:
ip route add default via <IP1> table <NAME1>
ip route add default via <IP2> table <NAME2>
Затем правила выбрать таблицу маршрутизации на основе исходного адреса:
ip rule add from <IP1> table <NAME1>
ip rule add from <IP2> table <NAME2>
Посмотрите Маршрутизацию для нескольких восходящих каналов/поставщиков для получения дополнительной информации.
Ответ Дэвида Шварца отличный, но вы можете немного упростить правила маршрутизации, имея только одну дополнительную таблицу, и используя ваш маршрут по умолчанию для другой. У меня есть сервер, который находится за двумя NAT шлюзами, и я недавно просмотрел процесс воссоздания этого сценария между кучей ВМ. Мой /etc/network/interfaces
выглядит следующим образом:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.13.13
netmask 255.255.255.0
up ip route add table optus default via 192.168.13.10
up ip rule add from 192.168.13.213 table optus
up ip route add default via 192.168.13.11
auto eth0:0
iface eth0:0 inet static
address 192.168.13.213
netmask 255.255.255.0
(это для установки, где два провайдера - Optus и iiNet, отсюда и название таблицы 'optus')
Это, плюс строка в /etc/iproute2/rt_tables
, создающая таблицу, должна быть всем, что вам нужно. У вас будет два IP-адреса; трафик с 192.168.13.13 будет выходить через 192.168.13.11, а трафик с 192.168.13.213 будет выходить через 192.168.13.10. Настройте эти два шлюза так, чтобы они делали свою портовую экспедицию соответствующим образом (192.168.13.11 перенаправляет трафик на 192.168.13.13, а 192.168.13.10 перенаправляет трафик на 192.168.13.213), а остальные должны позаботиться о себе.
Вам, возможно, придется немного подкорректировать свою ситуацию, поскольку вы используете публичные IP-адреса напрямую, но что-то подобное все равно должно работать. Кроме того, гораздо проще сделать это в /etc/network/interfaces
, а затем git-управлять этим файлом, вместо того, чтобы пытаться вспомнить, как он был настроен, двумя годами позже, когда система должна быть перезагружена!
Пример двойной сети
В этом примере показано, как дополнительный eth1
с 10.130.0.2
сетевой маской 255.255.255.255
и шлюзом 10.130.0.1
можно сделать доступным для служб, которые связываются с ним, напримерping -I eth1 8.8.8.8
Технически мы:
ip addr add 10.130.0.2/32 broadcast 10.130.0.2 dev eth1
ip link set eth1 up
ip route add 10.130.0.1 src 10.130.0.2 dev eth1
ip route add 10.130.0.1 src 10.130.0.2 dev eth1 table 100
ip route add default via 10.130.0.1 dev eth1 metric 10
ip route add default via 10.130.0.1 dev eth1 table 100
ip rule add from 10.130.0.2/32 table 100
ip rule add to 10.130.0.2/32 table 100
curl --interface eth1 ifconfig.co
curl --interface eth0 ifconfig.co
ping -I eth1 8.8.8.8