Сервер Ubuntu 15.04 как Маршрутизатор и Сервер DHCP с несколькими подсетями

в моей компании я был присвоен для создания новой сети, где 1 сервер человечности управляет DHCP для 3 подсетей, позволяет коммуникацию этих подсетей друг между другом и совместно использует соединение с общественностью к подсетям. Все это чуть более чем 1 networkcard. DHCP настроен для соединения по eth0, и подключением с общественностью управляют по виртуальному интерфейсу eth0:1.

Конфигурация/etc/network/interfaces похожа на это:

#The local network interface
auto eth0
iface eth0 inet static  
 address 10.0.1.1  
 netmask 255.255.240.0  

#The public virtual network interface
auto eth0:1  
iface eth0:1 inet static  
 address 10.0.0.3  
 netmask 255.255.255.0                  
 gateway 10.0.0.1               
 dns-nameservers 10.0.0.1

##IP-routing table

# modem + sonicwall  
 up route add -net 10.0.0.0/24 gw 10.0.0.1 dev eth0:1  
  up route add -net 10.0.0.0/24 dev eth0:1

# servers  
 up route add -net 10.0.1.0/24 gw 10.0.1.1 dev eth0  
  up route add -net 10.0.1.0/24 dev eth0  

# printers
 up route add -net 10.0.7.0/24 gw 10.0.1.1 dev eth0  
  up route add -net 10.0.7.0/24 dev eth0

# workstations
 up route add -net 10.0.8.0/21 gw 10.0.1.1 dev eth0  
  up route add -net 10.0.8.0/21 dev eth0

/etc/dhcp/dhcpd.conf:

# Global Configuration
authoritative;
option domain-name-servers      10.0.0.1;
option routers                  10.0.0.1;

# ----------------------------------------------------------
# Subnetting
# ----------------------------------------------------------
# Servers
shared-network wonder {
 subnet 10.0.1.0 netmask 255.255.255.0 {
  range                          10.0.1.1 10.0.1.255;
  option domain-name             "servers.wonder.land.com";
  option subnet-mask             255.255.255.0;
  option broadcast-address       10.0.1.255;
  option routers                 10.0.1.1;
  default-lease-time             86400;
  max-lease-time                 86400;

  host FILESERVER {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.1.2;
   option host-name             "FILESERVER";
  }

  host MAILSERVER {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.1.3;
   option host-name             "MAILSERVER";
  }
 }

 # Printers
 subnet 10.0.7.0 netmask 255.255.255.0 {
  range                          10.0.7.1 10.0.7.255;
  option domain-name             "printers.wonder.land.com";
  option subnet-mask             255.255.255.0;
  option broadcast-address       10.0.7.255;
  option routers                 10.0.1.1;
  default-lease-time             86400;
  max-lease-time                 86400;

  host HP9500 {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.7.1;
   option host-name             "HP5900";
  }
 }

 # Workstations
 subnet 10.0.8.0 netmask 255.255.248.0 {
  range                          10.0.8.1 10.0.15.255;
  option domain-name             "workstations.wonder.land.com";
  option subnet-mask             255.255.248.0;
  option broadcast-address       10.0.8.255;
  option routers                 10.0.1.1;
  default-lease-time             86400;
  max-lease-time                 86400;
  filename                       "pxelinux.0";

  # XXX
  host WSXXX001 {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.8.1;
   option host-name             "WSXXX001";
  }

  host WSXXX002 {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.8.2;
   option host-name             "WSXXX002";
  }

  host WSXXX003 {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.8.3;
   option host-name             "WSXXX003";
  }

  # YYY
  host WSYYY001 {
   hardware ethernet            XX:XX:XX:XX:XX:XX;
   fixed-address                10.0.8.4;           
   option host-name             "WSYYY001";
  }
 }
}

и наконец, что не менее важно, iptables/etc/rc.local

#Connection between Subnets
iptables -I FORWARD -i eth0 -o eth0 -s 10.0.0.0/24 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -d 10.0.0.0/24 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -s 10.0.1.0/24 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -d 10.0.1.0/24 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -s 10.0.7.0/24 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -d 10.0.7.0/24 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -s 10.0.8.0/21 -j ACCEPT
iptables -I FORWARD -i eth0 -o eth0 -d 10.0.8.0/21 -j ACCEPT

#Connection from local to public
iptables -A FORWARD -i eth0 -o eth0:1 -j ACCEPT

#Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i eth0:1 -j ACCEPT
iptables -A FORWARD -i eth0:1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Block not established connections from public to local
iptables -A FORWARD -i eth0:1 -o eth0 -j REJECT

#Masquerade local network 
iptables -t nat -A POSTROUTING -o eth0:1 -j MASQUERADE

Моя проблема состоит в том, что Клиентский наклон связывается между подсетями, ни имеет соединение с внешней стороной. Я проходил много практических руководств, считайте другие проблемы народов, которым дали решение и попробовали много это на прошлой неделе. От машины окон в 10.0.8. X подсетей я могу проверить с помощью ping-запросов каждый клиент до модема 10.0.0.1, но не имею соединения с Интернетом. На машинах Ubuntu я могу только проверить с помощью ping-запросов в той же подсети. Но теперь я в точке, где я не знаю дальше и нуждаюсь в помощи для окончания этого проекта. Я надеюсь, что кто-то может указать на меня в правильное направление для получения этой целой сетевой работы.

0
задан 12 September 2015 в 17:21
1 ответ

Есть несколько проблем с конфигурацией:

  1. Вы используете один сетевой интерфейс. Это не обеспечит никакой изоляции между публичными и частными подсетями и может вызвать другие проблемы. Вы действительно должны добавить второй сетевой интерфейс, если это возможно.
  2. Вы хотите использовать несколько подсетей, но не имеете gw IP-адресов для этих подсетей на вашем локальном сетевом интерфейсе. Например, в DHCP-конфигурации для подсети 10.0.7.0 с сетевой маской 255.255.255.0 вы указали маршрутизатор 10.0.1.1. Это находится за пределами подсети и означает, что клиенты в этой подсети не смогут дозвониться до маршрутизатора. Для каждой подсети локального интерфейса необходимо добавить отдельный IP-адрес маршрутизатора - например, 10.0.7.1: вверх ip addr добавьте 10.0.7.1/24 dev eth0 в секции iface eth0 в /etc/network/interfaces.
  3. Маршруты, которые вы добавляете в действиях вверх, в этом случае не понадобятся - маршрутизатор уже будет знать, как до них добраться, т.к. у него будут IP-адреса маршрутизатора.
  4. У вас включена IP-переадресация? Проверьте вывод cat /proc/sys/net/ipv4/ip_forwarding - он должен показывать 1. Если нет, сделайте echo "1" > /proc/sys/net/ipv4/ip_forwarding и установите net.ipv4.ip_forward=1 в /etc/sysctl.conf

Надеюсь, это поможет.

.
0
ответ дан 5 December 2019 в 12:03

Теги

Похожие вопросы