Итак, я пытаюсь настроить двухдоменный блок BRO IDS, который будет работать как шлюзовой(?) сервер между моей домашней сетью и существующим маршрутизатором El Cheapo, который идет в комплекте с широкополосным доступом. У меня есть вот это... (трубы обозначают провода, извините за плохое форматирование)
Internet
|
ADSL Router running DHCP (gateway is 192.168.1.254)
|
eth0 (192.168.1.1)
ubuntu 1404 server running bro IDS, running bind9,
it serves DHCP on 192.168.2.0 network only on eth1
eth1 (192.168.2.1)
|
Internal LAN running two Apple Airports in bridge mode
Я настроил все правильно, но Ubuntu Server не маршрутизирует. Я могу подключиться к нему по SSH и пинговать оба интерфейса с него, а также пинговать Интернет. Однако хосты в любой из локальных сетей не могут маршрутизировать на другую сторону Ubuntu Server.
Вот вывод команды routes -n
Kernel IP routing tableico /etc/network/interfaces
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0
192.168.1.254 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
и вот содержание/etc/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
broadcast 192.168.1.255
auto eth1
iface eth1 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.1.254
Я включил ipv4 ipforwarding с помощью sysctl. Ubuntu DHCP-сервер настроен на обслуживание только IP-адресов 192.168.2.0, и он работает хорошо. Есть еще один DHCP-маршрутизатор, обслуживающий eth0 (192.168.1.0), который я оставил активным, чтобы иметь возможность использовать Wi-Fi на широкополосном маршрутизаторе для просмотра веб-страниц, пока решаю проблему.
Но в любом случае мне так и не удалось пропинговать другую сторону Ubuntu-бокса после входа на обе стороны со статическими и динамически назначенными IP-адресами. Можете ли вы также опубликовать содержимое dhcpd.conf...?
Я упускаю что-то простое? Есть ли какие-либо шаги по устранению неполадок, которые я могу предпринять на Ubuntu box, чтобы проверить и сузить круг проблем. В настоящее время я получаю только сообщения «маршрут не найден / не существует»... Вот также подробности /etc/dhcpd.conf...
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.240;
option routers 192.168.1.254;
option broadcast-address 192.168.2.255;
option domain-name-servers 192.168.2.1, 8.8.8.8;
}
Это вывод ping через маршрутизатор
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Кроме того, при настройке я изначально настроил его как мост, но эта конфигурация была удалена из интерфейсов давным-давно (она вообще не работала)
Как и просили, вот вывод iptables -L
Цепочка ВХОД (политика ПРИНЯТЬ)
цель защита опц источник назначение
Цепь FORWARD (политика ACCEPT)
цель prot opt источник назначение
Цепочка ВЫХОД (политика ПРИНЯТЬ)
цель защита опция источник назначение
решение1
Есть несколько вещей, которые кажутся неясными, по крайней мере, мне на первый взгляд.
Следующая строка в /etc/dhcpd.conf выглядит так:конечнонеправильный:
опциональные маршрутизаторы 192.168.1.254;
должен быть
option routers 192.168.2.1
В настоящее время вы в основном сообщаете своим клиентам DHCP, что их шлюз по умолчанию находится в другой подсети, нежели их: как вы ожидаете, что они смогут достичь этого шлюза? Правильный адрес шлюза, который вы передаете клиентам, — это интерфейс локальной сети маршрутизатора.
Когда вы говорите, что не можете выполнить ping с DHCP-клиентов, пробовали ли вы использовать имя (напримерwww.google.com) или с IP (например8.8.8.8)? Это имеет значение, потому что вы ничего не сказали о разрешении DNS, так что этомощьслучиться так, что
пинг -c1 8.8.8.8
получает ответ, в то время как
ping -c1 www.google.com
не.Еслиэто так, тытолькоотсутствуют следующие две строки в/etc/resolv.conf:
nameserver 8.8.8.8
nameserver 8.8.4.4
Если этонетслучай, пожалуйста, читайте дальше.
Что вы говорите оiptablesне полностью соответствует, поскольку вы утверждаете, что добавили правило для NAT в iptables, но затем вы отображаете существующее правило iptables дляфильтрстол, а ненатtable. Поэтому, пожалуйста, введите следующую команду
iptables -t nat -A POSTROUTING -o eth0 -j МАСКАРАД
а потом,безперезагрузите компьютер и попробуйте выполнить те же команды ping, что и выше.
Если все это не помогло, откройте два терминала на машине Ubuntu и введите следующие две команды: в терминале 1:
tcpdump -i eth0 -n icmp
и в терминале 2
tcpdump -i eth1 -n icmp
затем перейдите к одному из клиентов DHCP и попробуйте один изпингкоманды выше. Если все работает, вы должны увидеть, как ping и его ответ пролетают черезобатерминалы. Если вы этого не сделаете, пожалуйста, вставьте вывод для еще одного раунда помощи.
решение2
Ваш маршрутизатор Ubuntu отлично маршрутизирует. Проблема не в этом. Проблема в том, что ваша конфигурация не может работать, потому что маршрутизатор ADSL не знает, как связаться с машинами в сети 192.168.2.x. Кроме того, ни одно устройство не настроено на выполнение NAT для сети 192.168.2.x. Поэтому ваша конфигурация просто не имеет смысла.
Итак, например, скажем 192.168.2.9
pings 8.8.8.8
. Сервер Ubuntu отлично направляет его по своему маршруту по умолчанию. Но затем маршрутизатор ADSL получает пакет от 192.168.2.9
на 8.8.8.8
свой интерфейс LAN и не знает, что с ним делать.
Обновление: Чтобы увидеть только одну проблему, рассмотрим таблицу маршрутизации на маршрутизаторе ADSL. Единственный локальный маршрут, который у него есть, — это 192.168.1.0/24 к локальной сети. Все остальные маршруты ведут к каналу связи с вашим провайдером. Поэтому, когда он обрабатывает пакет на 192.168.2.1, его таблица маршрутизации говорит отправить этот пакет в Интернет. Это явно не сработает.