Я пытаюсь настроить сервер Ubuntu и сначала хочу, чтобы он работал как NAT / маршрутизатор / брандмауэр. У меня вопрос: как сделать так, чтобы компьютеры, подключенные к локальной сети, имели доступ в Интернет?
eth0 Link encap:Ethernet HWaddr 00:1c:23:87:d3:be
inet addr:213.101.213.177 Bcast:213.101.213.191 Mask:255.255.255.192
inet6 addr: fe80::21c:23ff:fe87:d3be/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16037 errors:0 dropped:0 overruns:0 frame:0
TX packets:13626 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2268865 (2.2 MB) TX bytes:1258854 (1.2 MB)
Interrupt:26 Base address:0x6000
eth1 Link encap:Ethernet HWaddr 00:1b:21:4f:e4:0b
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::21b:21ff:fe4f:e40b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:929 errors:0 dropped:0 overruns:0 frame:0
TX packets:309 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:100820 (100.8 KB) TX bytes:45571 (45.5 KB)
eth0 - это интернет с динамическим IP. eth1 - это LAN.
У меня работает dhcp-сервер, и компьютеры получают IP-адреса. Я не уверен, правильно ли я настроил его для компьютеров для разрешения доменных имен.
Это мое dhcpd.conf файл. Обратите внимание, что я закомментировал часть DNS, поскольку я не запускаю bind (должен ли я?)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
option routers 10.0.0.254;
#option domain-name-servers 10.0.0.1;
option domain-name "server.mydomain.com";
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.2 10.0.0.200;
}
И это правила, которые я добавил в начало /etc/ufw/before.rules
# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eth1 through eth0
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't be processed
COMMIT
Статус ufw: (по умолчанию также установлено разрешение)
Status: active
To Action From
-- ------ ----
Anywhere ALLOW 10.0.0.0/24
Когда я пытаюсь проверить связь с Google с компьютера 10.0.0.2, я получаю «целевой хост недоступен» / «неизвестный хост».
Что я пропустил? Спасибо!
Для чего нужен контент /etc/resolv.conf
на 10.0.0.2? Если не полезно сервер имен настроен, вы не сможете пинговать по имени хоста. Либо используйте DHCPD, чтобы установить сервер имен для всех клиентов, либо настройте их вручную.
Если ты не бежишь связывать вы всегда можете использовать общедоступный DNS-сервер, например, недавно запущенную службу DNS от Google. Использовать 8.8.8.8
и 8.8.4.4
серверы имен.
В качестве альтернативы, если это небольшая домашняя / локальная сеть, вы можете рассмотреть возможность использования dnsmasq вместо этого для вашего dhcp / dns сервера. Он работает как DHCP-сервер и DNS-сервер для вашей локальной сети.
Маршрутизатор, который вы указали в /etc/dhcpd.conf
является 10.0.0.254
, но ящик Ubuntu, который вы пытаетесь настроить, (по-видимому) включен 10.0.0.1
.
Таким образом, пакеты ваших клиентских машин даже не отправляются в ящик Ubuntu для обработки и пересылки NAT.