我在带有两个以太网适配器的(虚拟)机器中运行 CentOS 6.3。我将 eth0 连接到 TCP/IP LAN,将 eth1 连接到 DSL 调制解调器。该系统旨在作为专用路由器/防火墙,并设置 iptables 来执行 SNAT、DNAT 和所需的过滤。
这工作得很好,但我更换了 DSL 调制解调器,不幸的是,新的(更快)的调制解调器是防白痴的,因此会自动执行 NAT,并且不允许我将我的公共 IP 传递到 eth1。我不能容忍双重 NAT,所以我做了一些研究,发现这个调制解调器可以通过在计算机上执行 PPPoE 来“欺骗”为我的计算机提供公共 IP。
因此,我将 pppd 设置为使用 eth1,创建 ppp0 连接,然后在自定义 iptables 配置脚本中替换 eth1。这似乎在一定程度上有效,但我必须打开防火墙才能使其正常工作,而且它很不稳定。
部分是为了帮助排除故障,我想完全排除任何 TCP/IP 流量直接路由到 eth1 的可能性,我的“友好”调制解调器会很乐意对其进行 NAT。
据我所知,PPPoE 位于 IP 之下,而不是之上 - 在物理接口上,它直接处理以太网帧。因此,我根本不需要在 eth1 上配置 IP 网络来让 pppd 工作,因此在 eth1 上运行的 IP 网络只会让事情变得不必要的复杂化。
在这里我发现,愚蠢的我,我不知道如何在 Linux 上禁用 TCP/IP 堆栈!我知道在 Windows 机器上,您可以在适配器属性中取消选中 TCP/IP 协议,但在这里我运行的是纯文本 CentOS,我不知道该怎么做。
显然这不是一个很常见的愿望,因为我一直在互联网上搜索但没有结果。这似乎是一个硬连线的假设,即以太网适配器是TCP/IP 连接。嗯,通常...
谢谢你的帮助!凯文
答案1
ip addr flush dev eth1
只需使用和删除 IPv4 和 IPv6 地址即可ip -6 addr flush dev eth1
。
答案2
您无法禁用 TCP/IP,但您可以能禁用接口:只需ip link set eth1 down
在控制台中运行即可。
/etc/sysconfig/network-scripts/ifcfg-eth1
只保留ONBOOT=no
内部,以使变化持久。
PD:如格特夫戴克著名的,pppd
这也将禁用运行能力eth1
。