Назад | Перейти на главную страницу

Маршрутизация трафика через Linux-сервер с двух устройств

Вот моя текущая настройка (все серверы - Ubuntu Server Edition 12.04):

Сервер 0 имеет два устройства, eth0 и eth1. eth0 подключен к стене (Интернету), а eth1 подключен к коммутатору. eth1 имеет следующую запись в / etc / network / interfaces:

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Серверы 1–4 имеют по одному устройству eth0. Все они подключены к коммутатору, и все они получают информацию о DHCP с сервера 0. eth0 имеет следующую запись интерфейсов (это потому, что серверы 1-4 являются бездисковыми узлами, которые запрашивают у сервера 0 все необходимое для загрузки):

iface eth0 inet manual

В этой конфигурации Сервер 0 является единственным сервером, имеющим доступ в Интернет. Как мне перенаправить любой веб-запрос (например, apt-get или HTTP) от серверов 1-4 до сервера 0, чтобы предоставить серверам 1-4 доступ в Интернет? Это похоже на проблему, с которой сталкивались много раз, но я не могу понять, как правильно настроить сеть.

Выход route -n является:

Destination    Gateway         Genmask         Flags ... Iface
0.0.0.0        123.45.132.254  0.0.0.0         UG    ... eth0
123.45.132.0   0.0.0.0         255.255.255.0   U     ... eth0
192.168.1.0    0.0.0.0         255.255.255.0   U     ... eth1

Вам нужно поставить две вещи: активация пересылки (в /etc/sysctl.conf net.ipv4.ip_forward=1) и активируйте NAT с помощью iptables (/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE). NAT переводит частную сеть на внешний IP-адрес, поэтому внутренние машины могут выходить в Интернет. Эта строка должна применяться вашим брандмауэром. Я не знаю, какой у вас брандмауэр, поэтому вы должны интегрировать его в свою конфигурацию.