Я наткнулся на довольно специфическую проблему, и у меня нет знаний, чтобы решить ее самостоятельно. Я настроил сервер Ubuntu (16.04.2), который будет действовать как маршрутизатор. До сих пор я настроил два сетевых интерфейса: WAN и LAN. Dns также работает, клиент получает локальный IP-адрес, но не имеет доступа к Интернету, возможно, из-за неправильной настройки правил брандмауэра. Примечание: переадресация портов также включена.
Ifconfig
enp0s3 Link encap:Ethernet
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
enp0s8 Link encap:Ethernet
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2190 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
Ifconfig
#WAN
auto enp0s3
iface enp0s3 inet dhcp
#LAN
auto enp0s8
iface enp0s8 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
Маршрутизация
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s8
Маршрутизация
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo any anywhere anywhere
3 704 ACCEPT all -- enp0s8 any anywhere anywhere
12 997 ACCEPT all -- enp0s3 any anywhere anywhere ctstate RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- enp0s8 enp0s3 anywhere anywhere
0 0 ACCEPT all -- enp0s3 enp0s8 anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT 12 packets, 904 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 1 packets, 48 bytes)
pkts bytes target prot opt in out source destination
7 520 MASQUERADE all -- any enp0s3 anywhere anywhere
rc.local
Я использую файл rc.local для использования этих строк после загрузки.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp0s8 -j ACCEPT
iptables -A INPUT -i enp0s3 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
iptables -A FORWARD -i enp0s3 -o enp0s8 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
rc.local
enp0s3 flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
RX packets 8
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 221
TX errors 0 dropped 0 overrunes 0 carrier 0 collisions 0
Может кто-нибудь, пожалуйста, объясните мне, что мне не хватает? Пришлось набрать все из нескольких терминалов, чтобы могли быть ошибки. Я буду продолжать исправлять, если это необходимо.
Спасибо!
У вас, похоже, много опечаток. Или, если они не опечатываются, это ошибки в вашей конфигурации, которые частично объяснят, почему для вас не работает. Чтобы получить значимую помощь, было бы намного лучше, если бы вы скопировали и вставляли содержимое файла или результаты команд, а не пытались просто ввести его в свой вопрос.
Я думаю, что ваша основная проблема в том, что вы не правильно настроить машину для работы в качестве маршрутизатора. Чтобы функционировать как два маршрутизатора NIC, шлюз по умолчанию для всего трафика в вашей локальной сети должен переходить на WAN IP, который, по-видимому, является enp0s3 в вашем случае.
Также обратите внимание, что IP-адреса 10.x.x.x (и 192.168.0.0/16) по определению не поддаются обработке. Я ожидал бы, что интернет-адрес подсети маршрутизатора будет иметь зарегистрированный IP-адрес, если только его трафик не находится в подсети, где весь трафик переходит в другой модем или маршрутизатор.
Предполагая, что ошибки, которые я вижу в то, что вы опубликовали, действительно опечатывается, а не ошибки конфигурации, то, что вы создали, похоже, скорее является переадресатором моста / пакета, чем маршрутизатором. WAN, настроенная вами, больше похожа на другую подсеть LAN, поэтому я не удивлен, что трафик не попадает в Интернет.
Поскольку вы не установили какое-либо программное обеспечение маршрутизатора, и поскольку маршрутизаторы обычно имеют как минимум три интерфейса на них (не включая DMZ), вы будете контролировать всю маршрутизацию в своей конфигурации через таблицу маршрутизации. Вы добавили бы маршруты с помощью команды
route add
Достаточно просто, чтобы использовать, и если вы допустили ошибку, вы можете удалить маршрут с помощью команды
route del
Страница руководства для этого команда относительно понятна.
Это чрезмерное упрощение, но в принципе, enp0s3 будет IP-адресом класса C, доступен из Интернета. enp0s8 будет подсеть вашего собственного изобретения (например, 192.168.0.1/24), где IP-адрес, назначенный для enp0s3, является шлюзом по умолчанию.
Ваша таблица маршрутизации может быть проверена путем ввода
route -n
У вас, похоже, много опечаток. Или, если они не опечатываются, это ошибки в вашей конфигурации, которые частично объяснят, почему для вас не работает. Чтобы получить значимую помощь, было бы намного лучше, если бы вы скопировали и вставляли содержимое файла или результаты команд, а не пытались просто ввести его в свой вопрос.
Я думаю, что ваша основная проблема в том, что вы не правильно настроить машину для работы в качестве маршрутизатора. Чтобы функционировать как два маршрутизатора NIC, шлюз по умолчанию для всего трафика в вашей локальной сети должен переходить на WAN IP, который, по-видимому, является enp0s3 в вашем случае.
Также обратите внимание, что IP-адреса 10.x.x.x (и 192.168.0.0/16) по определению не поддаются обработке. Я ожидал бы, что интернет-адрес подсети маршрутизатора будет иметь зарегистрированный IP-адрес, если только его трафик не находится в подсети, где весь трафик переходит в другой модем или маршрутизатор.
Предполагая, что ошибки, которые я вижу в то, что вы опубликовали, действительно опечатывается, а не ошибки конфигурации, то, что вы создали, похоже, скорее является переадресатором моста / пакета, чем маршрутизатором. WAN, настроенная вами, больше похожа на другую подсеть LAN, поэтому я не удивлен, что трафик не попадает в Интернет.
Поскольку вы не установили какое-либо программное обеспечение маршрутизатора, и поскольку маршрутизаторы обычно имеют как минимум три интерфейса на них (не включая DMZ), вы будете контролировать всю маршрутизацию в своей конфигурации через таблицу маршрутизации. Вы добавили бы маршруты с помощью команды
route add
Достаточно просто, чтобы использовать, и если вы допустили ошибку, вы можете удалить маршрут с помощью команды
route del
Страница руководства для этого команда относительно понятна.
Это чрезмерное упрощение, но в принципе, enp0s3 будет IP-адресом класса C, доступен из Интернета. enp0s8 будет подсеть вашего собственного изобретения (например, 192.168.0.1/24), где IP-адрес, назначенный для enp0s3, является шлюзом по умолчанию.
Ваша таблица маршрутизации может быть проверена путем ввода
route -n