Мотивация:
Я хочу использовать свой Linux-сервер вместо обычного беспроводного маршрутизатора по нескольким причинам
Настройка:
В конечном итоге, соединение будет подключено к модему и будет напрямую подключаться к моему серверу через eth0
, а затем eth1
будет выводить на сетевой коммутатор, к которому будут подключаться все остальные клиентские компьютеры. через кабели Ethernet (на данный момент забыли о беспроводной связи). В настоящее время, однако, я нахожусь в офисном здании, и у меня есть соединение, входящее в модем, который входит в маршрутизатор, который входит в сетевой коммутатор, который затем входит в eth0
, как указано выше.
Текущие учебные пособия:
Я посмотрел некоторые учебные пособия ( Учебное пособие по Ubuntu является лучшим), и я рассмотрел некоторые вопросы маршрутизатора здесь ( то есть этот ), но все они затеняют несколько ключевых понятий, например:
eth1
к eth0
? В /etc/network/interfaces
нужно ли указывать eth1
использовать eth0
в качестве network
(как правило, это фактический адрес физического маршрутизатора)? eth1
взять Интернет, который входит в eth0
, и передать его кому угодно в сетевом коммутаторе? Текущий подход:
Вот мой /etc/network/interfaces
файл на сервере:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.7.0
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
И ifconfig
говорит мне, что оба NIC работают нормально:
eth0 Link encap:Ethernet HWaddr 20:cf:30:55:a0:5f
inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:948633 (948.6 KB) TX bytes:1274685 (1.2 MB)
eth1 Link encap:Ethernet HWaddr 00:11:95:f7:f4:6d
inet addr:192.168.7.0 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29934 (29.9 KB) TX bytes:213055 (213.0 KB)
Interrupt:21
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:470737 (470.7 KB) TX bytes:470737 (470.7 KB)
wlan0 Link encap:Ethernet HWaddr bc:f6:85:f8:70:5c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
И вот что route -n returns
на сервере:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Тогда на клиенте у меня есть
auto lo
iface lo inet loopback
iface eth0 inet dhcp
Но ему не назначается IP-адрес.
РЕДАКТИРОВАТЬ: Вот файл конфигурации isc-dhcp-server, расположенный в /etc/dhcp3/dhcpd.con
, который я скопировал в основном с с этого сайта .
# Sample /etc/dhcpd.conf
# (add your comments here)
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.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
РЕДАКТИРОВАТЬ: Вывод sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Вопрос:
Какие важные этапы / компоненты мне не хватает в этой настройке?
Я должен пойти как Джек Потрошитель из-за нескольких недостающих вещей, которые у вас есть:
Если ваш клиент будет использовать DHCP для получения IP-адресов, вам нужен сервер DHCP.
iface eth0 inet dhcp
blockquote>В клиентах это указывает, что они получат свои IP-адреса от DHCP-сервера, если вы не настроили DHCP-сервер, либо Вы должны использовать фиксированные IP-адреса или установить DHCP-сервер.
Вам не хватает DNS-серверов, настроенных на клиентах. Либо из-за отсутствия DHCP-сервера, либо вы можете использовать локальный DNS-сервер для всей вашей сети.
Вы не предлагали правила iptables
(вывод sudo iptables -L
), но я могу предположить, что вы не активировали ни правила Маскарада, ни переадресацию IP , как описано .
IP-адрес eth1
не рекомендуется. Любой IP, оканчивающийся на 0
, обычно является самой сетью, и большинство маршрутизаторов / межсетевых экранов просто запутываются, когда они используются . Измените его на 192.168.7.1
, и у вас все будет хорошо.
Ваше значение broadcast
в интерфейсе eth1
неверно. Отправляет пакеты в никуда. Правильным значением (с учетом других значений интерфейса) является 192.168.7.255
.
Ваши параметры на DHCP-сервере порочны. Пакеты ARP к вашему маршрутизатору никогда не достигнут. Вот что у вас должно быть:
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.7.255;
option routers 192.168.7.1; ## This should be the same value of the step 4
option domain-name-servers 8.8.8.8;
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
Следуйте им, и, скорее всего, ваш маршрутизатор будет работать.
Сначала убедитесь, что у вас есть две сетевые карты (NIC), и обновите файл /etc/network/interfaces
как таковой (не делайте , не принимайте это за файл /etc/networks
).
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 192.168.7.1
netmask 255.255.255.0
broadcast 192.168.7.255
network 192.168.1.0
Чтобы найти gateway
, broadcast
и network
, следуйте этим инструкциям .
Затем зайдите в клиент и отредактируйте файл /etc/network/interface
(опять же, , а не /etc/networks
) для статического ip, чтобы убедиться, что хотя бы плата NIC работает.
iface eth0 inet static
address 192.168.7.75
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
Измените значения, чтобы они соответствовали вышеуказанным значениям. Если это работает, отлично, тогда используйте инструкции здесь , но следуйте им точно , так как есть несколько файлов dhcp
, поэтому не путайте папку /etc/dhcp
с /etc/dhcp3
и т. д.