Основываясь на этом вопрос можно сделать следующее:
- Router with DHCP connected to NIC A on Box 1 - Machine B connected to NIC B on Box 1
Мне нужен компьютер B, чтобы получить IP-адрес DHCP от маршрутизатора на сетевом адаптере A. В настоящее время установка и конфигурация следующие:
- NIC A DHCP Assigned IP: 10.0.x.x (255.255.255.224) - NIC B Static IP: 10.1.x.x (255.255.255.252)
У меня включен ipv4_forwarding, но я не могу назначить статический IP-адрес машине B. Что мне нужно сделать, чтобы весь трафик от NIC A проходил через NIC B. Или, более конкретно, как я могу заставить машину B получить IP адрес от DHCP на роутере.
Уточнить
Эта коробка НЕ роутер. Маршрутизатор уже установлен. Это Linux-ящик, используемый для общих ресурсов Samba и виртуальных машин. Однако есть некоторые машины, которые нельзя подключить к главному выключателю, однако они могут быть подключены к этой машине через другой концентратор.
Коротко Эта машина находится посередине.
У вас есть три хоста:
Machine "B" ====== Machine "A" ====== Machine "R"
10.1.0.1 10.0.0.2 10.0.0.1
Если только Machine "R"
(ваш роутер) знает, что 10.1.0.0/16
маршруты через 10.0.0.2
это просто не сработает.
У вас есть три варианта:
Создать мост действительно просто. На машине «А»:
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 on
Затем настройте br0
чтобы иметь желаемый IP-адрес (например, запустив dhclient br0
).
Затем машина «B» сможет использовать dhclient eth0
и получите IP-адрес от машины "R"
Мосты связаны с целым рядом проблем, не в последнюю очередь из-за того, что многие устройства имеют некорректную поддержку STP.
Если у вас есть машина «R» для создания вашей таблицы маршрутизации, вам понадобится машина «A» для включения proxy arp:
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
Другие машины в вашей сети должны будут принимать перенаправления ICMP. Я видел по крайней мере два принтера, которые не работают по умолчанию. Ваш пробег может отличаться.
Наконец, включение трансляции сетевых адресов действительно просто:
iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source $IP
где $IP
это адрес, данный Machine "R"
для использования. Есть ряд инструментов, которые это автоматизируют.
Вы должны соединить два сетевых интерфейса; Таким образом, средний компьютер будет действовать как сетевой концентратор, передавая трафик между двумя портами совершенно прозрачно. Никакой маршрутизации, никаких конфигураций, другой компьютер и маршрутизатор «просто» смогут общаться друг с другом (и, конечно, с компьютером-мостом).
Почему бы вместо этого не привязать dhcp-сервер к обоим интерфейсам?
по умолчанию dhcpd должен уже прослушивать каждый интерфейс (если для демона не задан параметр) ... поэтому я думаю, вам нужно только изменить свой dhcpd.conf, чтобы управлять сетевой маской и на eth1 ... и демон будет служат и на этом интерфейсе.
ИЗМЕНИТЬ после ответа Diago. Извините, я неправильно понял ваш вопрос. Я не удаляю ответ для справки других, если он полезен.
Вам необходимо настроить DHCP Relay Agent в вашем Linux. Агент DHCP-ретрансляции позволяет ретранслировать DHCP-запрос из одной подсети на другие DHCP-серверы в разных подсетях. Команда linux для ретрансляции DHCP: dhcrelay
Также вам необходимо проверить, можете ли вы связаться с DHCP-сервером с машины B (проверьте мой ответ на ваш другой вопрос, чтобы настроить маршруты и шлюз по умолчанию) и что никакие правила брандмауэра на вашем сервере не блокируют пакеты с машины B на DHCP-сервер.
Если вы следовали указаниям по вопросу, который вы связали, значит, это маршрутизатор. Параметр ip_forward = 1 включает маршрутизацию. Если это не то, что вам нужно, вам нужно настроить его как мост.
Настроив коробку в качестве роутера, вы усложняете задачу, как вам кажется. Настройка системы с двумя интерфейсами как мост наверное самый простой вариант. Если вам нужно, чтобы коробка на самом деле была маршрутизатором, вам придется рассмотреть другие варианты.
Вы можете настроить агент ретрансляции DHCP на компьютере, но вам также потребуется добавить маршрут к маршрутизатору, чтобы он мог получить доступ к внутреннему адресному пространству, и вам нужно будет добавить дополнительную область к маршрутизатору для внутреннего адресного пространства.
Вы можете просто настроить DHCP-сервер на коробке с двумя интерфейсами и обслуживать адреса вашей внутренней сети. Это может быть самым простым способом настройки, если просто создать мост с двумя интерфейсами невозможно.
Ящик 1 необходимо настроить как агент ретрансляции DHCP.