(Я редактирую свой вопрос и отправляю ответ всем, кто окажется в аналогичном положении.)
Я хотел бы, чтобы брандмауэр, для которого требуется общедоступный статический IP-адрес на внешнем интерфейсе, использовался с одобренным интернет-провайдером ADSL-модемом. (Эта установка не рекомендуется, поскольку служба ADSL и модем являются потребительскими, но нам нужно сэкономить деньги.)
Модем может действовать как маршрутизатор, что означает, что он будет преобразовывать весь трафик через NAT и использовать публичный статический IP-адрес службы 1 на своем внешнем интерфейсе. Мы не можем использовать общедоступную подсеть за этим NAT, так как это не поддерживается этой службой ADSL.
Другой вариант состоит в том, что этот модем может действовать как полноценный мост, но брандмауэр не может прервать соединение PPP.
Есть один модем (DrayTek Vigor 120), который я мог бы приобрести, который поддерживает режим полумоста (DrayTek называет это «True-DMZ»), где одному устройству за модемом назначается один общедоступный статический IP-адрес ADSL-канала. Это сработало, но, к сожалению, у нас возникли не связанные с этим проблемы с линией ADSL, и мы не смогли получить поддержку от нашего интернет-провайдера при использовании этого модема.
Как мне настроить компьютер с Linux так, чтобы он завершал соединение PPP в режиме полумоста?
Я использовал Debian на ПК с тремя сетевыми адаптерами (1 для управления, 1 для подключения к модему, 1 для подключения к брандмауэру). Я закончил с eth0 = management, eth1 = modem, eth2 = firewall, ppp0 = ADSL service и lo.
Добавьте следующее в / etc / ppp / ip-up (непосредственно перед строкой run-parts):
ifconfig ppp0 IP в подсети, которую вы никогда не будете использовать/CIDR этой подсети
ifconfig eth2 вверх
ifconfig eth2 ваш публичный IP/ваша общедоступная подсеть
ip route удалить по умолчанию
ip route добавить dev по умолчанию ppp0
очистка кеша маршрута IP
Скажем, ваш общедоступный IP-адрес - 1.1.1.100/24, а ваш шлюз - 1.1.1.1 (наш интернет-провайдер назначил нам что-то вроде этого; насколько я понимаю, вы обычно получаете 1.1.1.100/32 без шлюза). Скажите также, что 172.16.1.0/24 - это сеть, которую вы никогда нигде не будете использовать. Так:
ifconfig ppp0 172.16.1.1/24
ifconfig eth2 up
ifconfig eth2 1.1.1.101/24
ip route delete default
ip route add default dev ppp0
ip route flush cache
Ваша таблица маршрутов:
Обратите внимание, что вы назначаете eth2 1.1.1.101, а не 1.1.1.100. Eth2 должен находиться в той же подсети, что и ваш общедоступный IP-адрес, но не сам общедоступный IP-адрес.
Вам нужно будет использовать либо реальную подсеть, используемую вашим интернет-провайдером (например, 1.1.1.0/24), либо создать фиктивную (и использовать / 30, чтобы уменьшить ее как можно меньше). Другие IP-адреса (обычно это другие клиенты вашего интернет-провайдера) в этой подсети в Интернете станут для вас недоступны.