Я хочу настроить nat на сервере / маршрутизаторе с несколькими публичными IP-адресами (в разных подсетях и с разными шлюзами, но с одинаковым физическим интерфейсом Ethernet), используя адрес A для всего локального трафика, исходящего от сервера, и адрес B для других машины позади нац. Я уже делал множество простых настроек nat, но редко работал с несколькими не локальными сетевыми адресами на одной машине. Предполагая, что установка, которую я хочу, возможна, как мне ее настроить?

2 ответа2

0

Предполагая, что у нас есть один основной интерфейс A называемый eth0:

inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255

и другой интерфейс B называется eth1:

inet 192.168.2.1 netmask 255.255.255.0  broadcast 192.168.2.255

Также есть третья сеть C в подсети 10.0.0.0/24 из которой мы хотим направить трафик к A или B

Прежде всего, проверьте ip rule ls:

0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

и главная политика маршрутизации ip route list table main

default via 192.168.1.1 dev eth0 
10.0.0.0/24 dev lxc  proto kernel  scope link  src 10.0.0.1 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1 metric 100 

Теперь мы хотим добавить правило для почтового сервера с IP-адресом 10.0.0.13 для маршрутизации через интерфейс B

echo "200 mail" >> /etc/iproute2/rt_tables
ip rule add from 10.0.0.13 table mail

проверьте таблицу маршрутизации ip rule ls

0:      from all lookup local 
32765:  from 10.0.0.13 lookup mail 
32766:  from all lookup main 
32767:  from all lookup default

Наконец, мы добавляем маршрут по умолчанию и очищаем кеш:

ip route add default via 192.168.2.1 dev eth1 table mail
ip route flush cache
0

Как я понял из вашего требования, вам нужно иметь два nat, один для локальной сети, а другой для самого сервера. Вы хотите, чтобы локальный ips/ LAN выходил через адрес A, а трафик, генерируемый сервером, проходил через адрес B.

Сначала добавьте адрес A и адрес B во внешнюю сеть Ethernet через подчиненный интерфейс.

ifconfig eth0 address A/x.x.x.x

ifconfig eth0:1 address B/x.x.x.x

Второй Добавьте правило SNAT для сети LAN

iptables -t nat -A POSTROUTING -s < LAN IP NETWORK > -o eth0 -j SNAT --to < address a >

В-третьих, добавьте SNAT для остальных (это также будет включать в себя машину souce)

iptables -t nat -A POSTROUTING  -o eth0 -j SNAT --to < address B >

если это не работает, мы можем проверить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .