我有以下设置(“服务器寻址数据包”部分除外):http://www.directupload.net/file/d/4062/jo9qswvv_png.htm 基本上是 eth0、eth1 和 wap。eth1 和 wap 与 br0 桥接。
因此,我的服务器有两个 IP 地址,但 eth0 上只有一个主机名(“服务器”)。问题是,来自桥接器(例如我的平板电脑)的数据包(通过主机名)会退出 eth1 端口并再次进入 eth0 端口。
我不知道如何正确路由这些数据包。是否必须使用 iptables 或 ebtables。或者使用 br0(服务器的第二个 ip)的 ip 解决从 wap 进入的 dns 请求“服务器”是否更简单?
我希望这是可以理解的。如果您需要更多或不同的解释,请告诉我。提前致谢。
(系统:Ubuntu Server 14.04.1)
答案1
您希望实现什么目标能可以完成,但确实需要一些工作。
iptables
首先我要澄清的是,这与或无关ebtables
。你应该将 NIC(包括网桥)视为窗户:它们在外面打开,而不是在里面打开。因此 和 都会eth0
从br0
外侧发送数据包,IE在以太网电缆上,并从同一方向接收数据包。因此,您无法诱导br0
向服务器内部发送数据包,也无法eth0
接受来自服务器内部的数据包。
你能执行的操作如下:
创建一个
tap0
接口,并将您的 wifi 接口与其桥接,而不是与eth1
;这意味着您还必须设置一个在新的桥接器上监听的 DHCP 服务器,我们称之为br-new
;设置
eth1
与您以前设置的完全相同br0
;将所有流量从
br-new
路由到 eth1;您可以通过policy-routing
(有时也称为 )来实现这一点source-routing
。这需要第二路由表,其中存放配置eth1
,包括默认网关。其实做起来很简单,只需阅读这里。当你为无线网络设置 DHCP 服务器时,请确保你的全新接口
br-new
与名称相关联Server
。例如,如果你使用dnsmasq
DHCP 服务器,则以下行将执行:dhcp 主机=4C:E6:76:C4:54:24,服务器,192.168.73.1,12h
这将为 MAC 地址为 4C:E6:76:C4:54:24 的接口分配名称Server
,以及静态 IP 地址 192.168.73.1,租期为 12 小时。如果您使用的是 Debian 或其衍生产品之一,这意味着您可以br-new
在文件中定义接口/etc/networking/interfaces
,但其类型既不是 dhcp 也不是静态的,而是manual
,因为这将允许 dnsmasq 为其分配一个 ip 地址。
就这些了。如果你从未这样做过,那肯定需要花一些时间来实现它。如果我是你,我会保留我当前的配置。