Làm cách nào tôi có thể tắt TCP / IP cho bộ điều hợp Ethernet?


8

Tôi có CentOS 6.3 chạy trong một máy (ảo) với hai bộ điều hợp Ethernet. Tôi có eth0 được kết nối với TCP / IP LAN và eth1 được kết nối với modem DSL. Hệ thống này được thiết kế như một bộ định tuyến / tường lửa chuyên dụng và có các iptables được thiết lập để thực hiện SNAT, DNAT và bộ lọc mong muốn.

Điều này đã hoạt động rất tốt nhưng tôi đã thay đổi modem DSL và không may là thiết bị mới (nhanh hơn) được bảo vệ một cách tự động và NAT cũng tự động và sẽ không cho phép tôi chuyển IP công cộng của mình sang eth1. Tôi không thể chịu đựng được gấp đôi NAT vì vậy tôi đã thực hiện một số nghiên cứu và đọc rằng modem này có thể bị 'lừa' để cung cấp cho máy tính của tôi một IP công cộng bằng cách thực hiện PPPoE trên máy tính.

Do đó, tôi đã thiết lập pppd để sử dụng eth1, tạo kết nối ppp0 mà sau đó tôi thay thế cho eth1 trong tập lệnh cấu hình iptables tùy chỉnh của mình. Điều này có vẻ hoạt động ở một mức độ nào đó nhưng tôi đã phải mở tường lửa để làm cho nó hoạt động, và nó không ổn định.

Một phần để giúp khắc phục sự cố, tôi muốn loại trừ hoàn toàn khả năng bất kỳ lưu lượng TCP / IP nào được chuyển trực tiếp đến eth1 nơi modem 'thân thiện' của tôi sẽ vui vẻ NAT.

Theo hiểu biết tốt nhất của tôi, PPPoE nằm bên dưới, không phải trên IP - trên giao diện vật lý mà nó giao dịch trực tiếp trong các khung Ethernet. Do đó, tôi thậm chí không cần phải cấu hình mạng IP trên eth1 để pppd hoạt động và mạng IP chạy trên eth1 do đó chỉ là vấn đề không cần thiết.

Đây là nơi tôi khám phá, thật ngốc, tôi không biết cách vô hiệu hóa ngăn xếp TCP / IP trên Linux! Tôi biết trên hộp Windows, bạn chỉ có thể bỏ chọn giao thức TCP / IP trong thuộc tính bộ điều hợp, nhưng ở đây tôi đang chạy một CentOS chỉ có văn bản và tôi không biết làm thế nào để làm điều đó.

Rõ ràng đó không phải là một mong muốn phổ biến, bởi vì tôi đã tìm kiếm trên Internet vô ích. Có vẻ như một giả định cứng cáp rằng bộ điều hợp Ethernet kết nối TCP / IP. Chà, thường là ...

Cảm ơn vì bất kì sự giúp đỡ! Kevin

Câu trả lời:


6

Chỉ cần xóa địa chỉ IPv4 và IPv6 với ip addr flush dev eth1ip -6 addr flush dev eth1.


Cảm ơn bạn đã trả lời - điều này đã làm việc (và phơi bày các vấn đề khác trong cấu hình của tôi). Tuy nhiên, đối với tôi có vẻ như một lỗ hổng thiết kế trong Linux rằng không có bất kỳ sự kiểm soát rõ ràng nào trong đó các giao thức Lớp 3 bị ràng buộc với một giao diện mạng nhất định.
Kevin

Ý anh là gì? Địa chỉ IP là móc nối của giao diện trong ngăn xếp IP. Để nói về ngăn xếp IP (nói về TCP trong bối cảnh đó không có ý nghĩa gì), chỉ cần không cung cấp cho nó một địa chỉ IP, nó đơn giản như vậy và giống nhau trong mọi HĐH bao gồm cả MS Windows.
Stéphane Chazelas

Từ góc độ kỹ thuật, có một sự khác biệt giữa việc nói với chính giao thức rằng nó không có địa chỉ và nói với hệ điều hành rằng giao thức không bị ràng buộc với bộ điều hợp mạng đã cho. Hiệu ứng tương tự có lẽ nhưng sau này an toàn hơn, rõ ràng và thống nhất hơn. Trong Windows, có một danh sách kiểm tra trong các thuộc tính của bộ điều hợp để xác định giao thức nào được ràng buộc với bộ điều hợp; thực tế, đây là cách duy nhất để hủy liên kết IP, vì chỉ cần cố gắng xóa địa chỉ IP sẽ nhận được thông báo lỗiThe adapter requires at least one IP address. Please enter one.
Kevin

0

Bạn không thể tắt TCP / IP nhưng bạn có thể tắt giao diện: chỉ cần chạy ip link set eth1 downtrong bảng điều khiển.

Rời /etc/sysconfig/network-scripts/ifcfg-eth1với chỉ ONBOOT=nobên trong để thực hiện thay đổi dai dẳng.

Ngoài ra kiểm tra Làm thế nào để vô hiệu hóa một NIC trong CentOS?

PD: Như gertvdijk đã lưu ý, điều này cũng sẽ vô hiệu hóa khả năng chạy pppdquaeth1 .


1
Việc vô hiệu hóa một NIC cũng sẽ khiến các khung Layer2 vượt qua, điều cần thiết cho PPPoE.
gertvdijk

@gertvdijk đúng, trả lời chỉnh sửa.
mmoya
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.