Как я могу отключить TCP / IP для адаптера Ethernet?


8

У меня CentOS 6.3 работает на (виртуальной) машине с двумя адаптерами Ethernet. У меня есть eth0, подключенный к локальной сети TCP / IP, и eth1, подключенный к модему DSL. Система предназначена в качестве выделенного маршрутизатора / брандмауэра, и в ней установлены iptables для выполнения SNAT, DNAT и требуемой фильтрации.

Это работало замечательно, но я сменил DSL-модемы, и, к сожалению, новый (более быстрый) модем защищен от идиотизма, поэтому автоматически работает NAT и не позволяет мне передавать мой публичный IP-адрес в eth1. Я не могу терпеть двойной NAT, поэтому я провел некоторое исследование и прочитал, что этот модем можно «обмануть», чтобы дать моему компьютеру общедоступный IP-адрес, выполнив PPPoE на компьютере.

Поэтому я настроил pppd для использования eth1, создав соединение ppp0, которое затем заменил на eth1 в моем собственном конфигурационном скрипте iptables. Кажется, это работает до некоторой степени, но мне пришлось открыть брандмауэр, чтобы заставить его работать, и это плохо.

Частично, чтобы помочь в устранении неполадок, я хочу полностью исключить возможность прямого перенаправления любого трафика TCP / IP на eth1, где мой «дружественный» модем с радостью NAT его.

Насколько мне известно, PPPoE находится ниже, а не над IP - на физическом интерфейсе, который работает непосредственно в кадрах Ethernet. Поэтому мне даже не нужно было настраивать IP-сети на eth1, чтобы pppd работал, а IP-сети, работающие на eth1, просто бесполезно усложняют ситуацию.

Вот где я обнаружил, глупый я, я не знаю, как отключить стек TCP / IP в Linux! Я знаю, что в окне Windows вы можете просто отключить протокол TCP / IP в свойствах адаптера, но здесь я использую только текстовый CentOS и не знаю, как это сделать.

Видимо, это не очень распространенное желание, потому что я искал в Интернете безрезультатно. Похоже на аппаратное предположение, что адаптер Ethernet является соединением TCP / IP. Ну, обычно ...

Спасибо за любую помощь! Kevin

Ответы:


6

Просто удалите адреса IPv4 и IPv6 с помощью ip addr flush dev eth1и ip -6 addr flush dev eth1.


Спасибо за ответ - это сработало (и выявило другие проблемы в моем конфиге). Тем не менее, мне кажется недостатком дизайна в Linux, что нет никакого явного контроля, какие протоколы Уровня 3 связаны с данным сетевым интерфейсом.
Кевин

Что вы имеете в виду? IP-адрес является подключением интерфейса в стеке IP. Чтобы сказать стек IP (говорить о TCP в этом контексте не имеет смысла), просто не присваивайте ему IP-адрес, он такой же простой и одинаковый в каждой ОС, включая MS Windows.
Стефан Шазелас

С технической точки зрения, существует разница между сообщением самого протокола о том, что у него нет адреса, и сообщением операционной системы, что протокол не должен быть привязан к данному сетевому адаптеру. Возможно, тот же эффект, но последний более безопасный, четкий и равномерный. В Windows в свойствах адаптера есть контрольный список, который определяет, какие протоколы связаны с адаптером; на самом деле, это единственный способ отменить привязку IP-адреса, так как простая попытка удалить IP-адрес приведет к ошибке с указаниемThe adapter requires at least one IP address. Please enter one.
Кевин

0

Вы не можете отключить TCP / IP, но вы можете отключить интерфейс: просто запустите ip link set eth1 downв консоли.

Оставьте /etc/sysconfig/network-scripts/ifcfg-eth1только ONBOOT=noвнутри, чтобы сделать изменения постоянными.

Также проверьте, как отключить NIC в CentOS?

PD: Как gertvdijk отметил, что это будет также отключить возможность запуска pppdчерезeth1 .


1
Отключение NIC также остановит прохождение кадров Layer2, которые необходимы для PPPoE.
gertvdijk

@gertvdijk верно, ответ отредактирован.
Mmoya
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.