Ubuntu как Маршрутизатор / Шлюз - Невозможно получить доступ к WAN

В настоящее время я пытаюсь настроить домашний маршрутизатор, используя машину с Ubuntu 12.04. У машины есть два порта Ethernet. eth0 - это LAN, а eth1 - это WAN.

Я установил eth0 на статический ip, и у eth1 запрашивается ip через DHCP.

/etc/network/interface

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.1.1.10
  netmask 255.255.255.0
  gateway 10.1.1.10
  dns-nameservers 10.1.1.1 10.1.1.10

auto eth1
iface eth1 inet dhcp

Это позволяет мне пропинговать компьютеры локальной сети, но я не могу пропинговать или получить доступ к каким-либо внешним хостам. Модем дает eth1 действительный IP-адрес. Машина настраивает свой IP-адрес локальной сети на 10.1.1.10 (для перемещения на 10.1.1.1, когда все работает).

Я добавил следующее в /etc/bind/named.conf.options:

    forwarders {
            8.8.8.8;
            8.8.4.4;
    };

net.ipv4.ip_forward = 1 был добавлен в /etc/sysctl.conf.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         Vanir.local     0.0.0.0         UG    100    0        0 eth0
10.1.1.0        *               255.255.255.0   U     0      0        0 eth0
98.162.168.0    *               255.255.252.0   U     0      0        0 eth1
link-local      *               255.255.0.0     U     1000   0        0 eth0

Кто-нибудь видит, чего мне не хватает, чтобы разрешить как WAN, так и LAN трафик на моем компьютере?

2
задан 11 April 2013 в 23:33

2 ответа

Мне удалось решить эту проблему, отредактировав /etc/udev/rules.d/70-persistent-net.rules. Сделав eth0 моим WAN NIC, linux автоматически использовал свой шлюз в качестве шлюза по умолчанию.

/etc/udev/rules.d/70-persittent-net.rules :

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="FF:FF:FF:FF:FF:F0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.5/0000:04:00.0/0000:05:01.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="FF:FF:FF:FF:FF:F1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8169 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="FF:FF:FF:FF:FF:F2", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
0
ответ дан 11 April 2013 в 23:33

Даже при том, что Вы, возможно, решили это путем переупорядочения интерфейсов, это не реальный источник проблемы.

Реальный источник проблемы - это:

auto eth0
iface eth0 inet static
  address 10.1.1.10
  netmask 255.255.255.0
  gateway 10.1.1.10
  dns-nameservers 10.1.1.1 10.1.1.10

Здесь Вы говорите, что, если у Вас есть пакет к некоторому объекту, который не находится на 10.1.1.0/24 подсети, она должна быть отправлена в 10.1.1.10, который будет знать, как иметь дело с нею. Но 10.1.1.10 локальный компьютер. Пакет не предназначен для этого компьютера, таким образом, он ищет в, он - таблица маршрутизации и решает передать пакет к 10.1.1.10... Это - маршрутная петля на одном компьютере.

Если у Вас только есть единственный маршрутизатор дома (вероятно), локальный интерфейс (интерфейсы) не должен иметь никакого определенного шлюза, поскольку весь IP в подсети достижим локально. Если у Вас есть несколько маршрутизаторов дома, необходимо настроить определенные маршруты к сетям, обработанным теми маршрутизаторами. Единственное время это имеет смысл с двумя маршрутами по умолчанию, - то, если у Вас на самом деле есть два различных маршрута к Интернету.

В Вашей установке только интерфейсу, указывающему на Интернет, нужно определить шлюз по умолчанию. Таким образом конфигурация должна быть

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.1.1.10
  netmask 255.255.255.0
  dns-nameservers 10.1.1.1 10.1.1.10

auto eth1
iface eth1 inet dhcp

Это работало бы.

Если бы у Вас есть несколько маршрутизаторов дома, это, вероятно, из-за homelab или подобно, и Вы, вероятно, использовали бы протокол маршрутизации для обработки его, но это могло быть настроено статически с post-up route add 192.168.1.0/24 gw 10.1.1.20 например.

То, что переупорядочение интерфейсов работало на Вас, является просто случайным, вероятно, из-за упорядочивания таблицы маршрутизации. Ваша конфигурация является все еще неправильной.

0
ответ дан 14 October 2019 в 14:10

Другие вопросы по тегам:

Похожие вопросы: