Мотивация:
Я хочу использовать свой Linux-сервер вместо обычного беспроводного маршрутизатора по нескольким причинам.
- Я хочу узнать, как настроить более полный сервер на Linux
- Я не хочу иметь модем, подключенный к маршрутизатору, подключенный к сетевому коммутатору
- Я устал от необходимости отключать мой маршрутизатор каждые 10 дней, потому что он просто зависает
- Я устал от покупки маршрутизаторов только для того, чтобы понять, что им не хватает чего-то важного, например, переадресации портов или статической IP-адресации (dhcp).
Настроить:
В конечном итоге, соединение будет установлено через модем и напрямую через мой сервер 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
(и, следовательно,dhcpd
), это не является обязательным, и предназначен только для централизации всех статических IP-адресов на сервере (в отличие от изменения/etc/network/interfaces
файла на каждом хосте). Поэтому я решил не экспериментировать с этим, пока это не сработает. Однако яdhcp3-server
установил, а такжеisc-dhcp-server
dhcpd.conf
файл и указал, что используюisc-dhcp-server
Ответы:
Я должен идти как Джек Потрошитель из-за нескольких недостающих вещей, которые у тебя есть:
Если ваш клиент будет использовать DHCP для получения IP-адресов, вам нужен DHCP-сервер.
В клиентах это означает, что они получат свои 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 к вашему маршрутизатору никогда не достигнут. Это то, что вы должны иметь:
Следуйте им, и, скорее всего, ваш маршрутизатор будет работать.
источник
sudo iptables -L
вопроса192.168.7.255
и строка 8subnet 192.168.7.0
.255
это обычно используемый широковещательный адрес, любой пакет, отправленный в этом направлении, будет отправлен во все системы в тех же подсетях. Это означает , что любой пакет отправлен 1.2.3.255 будет получена любая система , которая начала Ip с 1.2.3 , так как все они находятся в одной и той же подсети en.wikipedia.org/wiki/Subnetwork#IPv4_subnettingdhcp
или в сети. Будет делать статический IP-адрес для проверки. для статического ip на клиенте, я используюeth1
IP-адрес в качестве шлюза?Брайам ответил на мой вопрос, но я подумал, что было бы полезно провести здесь подробное прохождение. Пожалуйста, обновите это, если я сделал какие-либо ошибки.
Сначала убедитесь, что у вас есть две сетевые карты (NIC) и обновите
/etc/network/interfaces
файл как таковой ( не путайте это с/etc/networks
файлом).Чтобы найти свой
gateway
,broadcast
иnetwork
, следуйте этим инструкциям .Затем зайдите в клиент и отредактируйте
/etc/network/interface
(опять же, не/etc/networks
) файл для статического ip, чтобы убедиться, что хотя бы карта NIC работает.Измените значения в соответствии с приведенными выше значениями. Если это работает, отлично, тогда используйте инструкции здесь, но точно следуйте им , поскольку есть несколько
dhcp
файлов, поэтому не путайте папку/etc/dhcp
с/etc/dhcp3
и так далее.источник