Настройка сети на сервере с несколькими сетевыми портами

Привет всем: Я только что установил Ubuntu Server 12.04.3 на Sunfire X4100

Этот сервер имеет 4 порта Ethernet, моя цель - использовать:

  • eth0 to подключение к модему и т. д. к Интернету
  • eth1, eth2, eth3 для подключения некоторых коммутаторов и точек доступа для создания внутренней сети, совместного использования ресурсов, хранения, принтеров и т. д.

Для достижения этой цели я установил dhcp-сервер [apt-get install isc-dhcp-server] и использовал следующую конфигурацию:

/etc/default/isc-dhcp-server
 INTERFACES="eth1 eth2 eth3"

/etc/network/interfaces
auto lo
  iface lo inet loopback

auto eth0
    iface eth0 inet static
    address 192.168.1.5
    netmask 255.255.255.0
    network 192.168.1.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

auto eth1
    iface eth1 inet static
    address 192.168.1.5
    netmaks 255.255.255.0
    network 192.168.1.0

auto eth2
    iface eth2 inet static
    address 192.168.1.5
    netmaks 255.255.255.0
    network 192.168.1.0

auto eth3
    iface eth3 inet static
    address 192.168.1.5
    netmaks 255.255.255.0
    network 192.168.1.0

моя конфигурация DHCP-сервера

/etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option netbios-name-servers 192.168.1.1;
# Use Google public DNS
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "mydomain.it";
# Define address range
subnet 192.168.2.0 netmask 255.255.255.0 {
   range 192.168.2.15 192.168.2.25;
}

Результат:

  • Сервер имеет требуемый IP-адрес и может выходить в Интернет
  • Клиентские машины получают IP-адрес от DHCP, но не могут перейдите через Интернет и / или пропинг-сервер или модем

Ниже приведен результат ip ad на сервере:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:14:4f:20:20:9c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::214:4fff:fe20:209c/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:14:4f:20:20:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.5/32 scope global eth1
    inet6 fe80::214:4fff:fe20:209d/64 scope link 
       valid_lft forever preferred_lft forever
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:14:4f:20:20:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.5/32 scope global eth2
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:14:4f:20:20:a3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.5/32 scope global eth3
6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 06:0d:62:1a:3c:c5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

здесь ниже ip r на сервере:

 default via 192.168.1.1 dev eth0  metric 100 
169.254.0.0/16 dev eth3  scope link  metric 1000 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.2 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 

Здесь под картинкой карты:

Network Picture

2
задан 12 February 2014 в 23:49

2 ответа

1) настроить сети

Помимо DHCP-части (и предполагаемого перенаправителя), вам необходимо правильно настроить свои интерфейсы.

В большинстве случаев каждый интерфейс находится в своей собственной IP-сети (я даю примеры адресов, вам придется их адаптировать).

Оставьте eth0 как есть.

auto eth1
  iface eth1 inet static
  address 192.168.2.5
  netmask 255.255.255.0
  network 192.168.2.0

auto eth2
  iface eth2 inet static
  address 192.168.3.5
  netmask 255.255.255.0
  network 192.168.3.0

auto eth3
  iface eth3 inet static
  address 192.168.4.5
  netmask 255.255.255.0
  network 192.168.4.0

Если DHCP-сервер работает на той же машине, вам придется настроить его соответствующим образом. Просто для тестирования вы можете назначить одному хосту в каждой подсети статический IP-адрес (например, использовать 192.168.2.11 для одного хоста, подключенного к eth1)

После правильной настройки IP-сетей и IP-адресов вы потребуется включить IP-переадресацию с

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

(только один раз, чтобы проверить успешность)

и путем редактирования /etc/sysctl.conf и «активации» линии

net.ipv4.ip_forward=1

, удалив # в начале.

Когда это будет сделано (каждый клиент должен иметь возможность пропинговать соответствующий интерфейс вашего сервера)

2) активировать NAT

(попробуйте сначала для одной подсети, я приведу пример для eth1 вы должны адаптировать адреса для других)

sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Теперь клиенты в подсети 1 должны иметь возможность пинговать IP-адреса в Интернете - но только до следующей перезагрузки вашего сервера , Если это работает, продолжайте с eth2 и eth3 соответственно.

Чтобы сделать его постоянным, вам нужно сохранить текущую (рабочую) конфигурацию правил сетевого фильтра

sudo iptables-save | sudo tee /etc/iptables-NAT.sav

, а затем создать следующую запись в /etc/rc.local, чтобы перезагрузить одну и ту же конфигурацию при каждой перезагрузке. Убедитесь, что exit 0 соответствует после вашей новой записи

iptables-restore < /etc/iptables-NAT.sav

(здесь sudo не требуется)

3) DHCP

Конфигурация DHCP неверна. Вы должны создать разные подсети для каждого интерфейса и , вы должны установить соответствующий «шлюз» (используя option routers) для каждой подсети.

# for eth1 with 192.168.2.5 as local address
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.15 192.168.2.25;
option routers 192.168.2.5;
} 
# for eth2 with 192.168.3.5 as local address
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.15 192.168.3.25;
option routers 192.168.3.5;
} 
# for eth3 with 192.168.4.5 as local address
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.15 192.168.4.25;
option routers 192.168.4.5;
} 

Теперь все клиенты должны иметь возможность доступа к IP-адресам за пределами вашей сети, разрешение имен (вероятно) пока недоступно.

0
ответ дан 12 February 2014 в 23:49

Вам необходимо включить переадресацию IP на сервере, чтобы пакеты от хостов могли достигать WAN:

sudo sysctl net/ipv4/ip_forward=1

Попробуйте это, а затем попробуйте пропинговать внешний IP или URL с хостов.

0
ответ дан 12 February 2014 в 23:49

Другие вопросы по тегам:

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