Всех приветствую.!
Итак столкнулся с достаточно (на мой взгляд) экзотической проблемой. Необходимо настроить сервер с 4-ми интерфейсами некоторым образом (немного ниже опишу каким)
Сейчас немного о сетях:
Сервер подключен по eth0 в сложную локальную сеть (несколько городов):
Город А имеет сеть типа 10.103.0.Х/16;
Город Б имеет сеть типа 10.102.0.Х/16;
В городе А находится сам сервер.
У сервера есть еще 3 сетевых, 2 из которых обслуживает сам сервер, по третьей получает личный интернет:
Eth1 - сервер раздает IP, интернет ( из eth3), обмен файлами, загрузка по PXE.
Eth2 - сервер раздает IP, интернет ( из eth3), обмен файлами, загрузка по PXE.
Eth3 - сервер получает интернет (DHCP) для себя и раздает его в сети eth1 и eth2.
В идеале должно быть так:
Клиенты сети eth0 должны получать возможность доступа к файлам на самом сервере, и web морде сервера.
Клиенты eth1 и eth2 должны получать интернет из eth3 и свободно общаться между собой и с клиентами сети eth0 только из города A.
Камни:
В сети eth0 имеющую сложную схему, все клиенты получают IP по DHCP.
1)Если я настраиваю на сервере в интерфейсе eth0 – DHCP. Сервер и все клиенты eth1 и eth2 сразу лезут за интернетом через шлюз интерфейса eth0. Клиенты двух городов видят мой сервер.
2) Если настраиваю статику на eth0 (без шлюза) eth1 и eth2 получают инет из eth3, но к серверу в данном случае нельзя достучаться из города Б (оно и понятно, шлюза нет)
Сейчас работает все по второй схеме.
Как быть, что посоветуете?
Данные сервера
interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.103.0.120
netmask 255.255.0.0
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
auto eth2
iface eth2 inet static
address 192.168.2.1
netmask 255.255.255.0
auto eth3
iface eth3 inet dhcp
Таблицы маршрутов:
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
iptables -A FORWARD -i eth3 -o eth3 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Я так понимаю еще и с DNS надо разрулить, но если честно уже голова болит от прочитанного и нагугленного. Часть работает, другая отваливается и по кругу….
В качестве DNS сервера выбрал DNSmasq, он вполне пока со всем справляется.
Вот его конфиг:
# Add other name servers here, with domain specs if they are for non-public domains.
server=/srv/192.168.1.1
# If you want dnsmasq to listen for DHCP and DNS requests only on specified interfaces (and the loopback) give the name of the interface (eg eth0) here. Rep$
interface=eth1
interface=eth2
# If you want dnsmasq to provide only DNS service on an interface, configure it as shown above, and then use the following line to disable DHCP and TFTP on $
no-dhcp-interface=eth0
# Set the domain for dnsmasq. this is optional, but if it is set, it does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long as the domain part matches this setting.
# 2) Sets the «domain» DHCP option thereby potentially setting the domain of all systems configured by DHCP
# 3) Provides the domain part for «expand-hosts»
domain=srv
# This is an example of a DHCP range where the netmask is given. This is needed for networks we reach the dnsmasq DHCP server via a relay agent. If you don'$
dhcp-range=192.168.1.20,192.168.1.150,255.255.255.0,24h
dhcp-range=192.168.2.20,192.168.2.150,255.255.255.0,24h
# Override the default route supplied by dnsmasq, which assumes the router is the same machine as the one running dnsmasq.
dhcp-option=3,192.168.1.1
# The same as above, but use custom tftp-server instead machine running dnsmasq
dhcp-boot=pxelinux.0,srv,192.168.1.1,192.168.2.1
# The DHCP server needs somewhere on disk to keep its lease database. This defaults to a sane location, but if you want to change it, use the line below.
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
Кто подскажет/ткнет носом/направит???