Привет всем: Я только что установил Ubuntu Server 12.04.3 на Sunfire X4100
Этот сервер имеет 4 порта Ethernet, моя цель - использовать:
Для достижения этой цели я установил 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 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
Здесь под картинкой карты:
Помимо 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
, удалив #
в начале.
Когда это будет сделано (каждый клиент должен иметь возможность пропинговать соответствующий интерфейс вашего сервера)
(попробуйте сначала для одной подсети, я приведу пример для 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
не требуется)
Конфигурация 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-адресам за пределами вашей сети, разрешение имен (вероятно) пока недоступно.
Вам необходимо включить переадресацию IP на сервере, чтобы пакеты от хостов могли достигать WAN:
sudo sysctl net/ipv4/ip_forward=1
Попробуйте это, а затем попробуйте пропинговать внешний IP или URL с хостов.