机器有2个NIC卡. eth0和eth1. eth1连接到调制解调器,使其IP为10.10.1.X
eth1需要在192.168.2.X上提供DHCP,并且从连接到路由器的交换机获得另一个IP,该路由器在192.168.1.X上提供DHCP
目前该机器具有以下IP
eth0 - 10.10.0.4 eth1 - 192.168.2.1 (DHCP Server,Gateway) eth1:0 - 102.168.1.103
我正在努力完成以下任务
如果一台机器通过交换机连接到eth1,它应该能够ping 192.168.1.10
[Modem+Router 10.1.1.0/24] | | | (eth0) |----- [ Server 192.168.1.10] Ubuntu | Firewall (eth1) ----- [Switch]-----[Modem+Router 192.168.1.0/24] (eth1:0)--------| \ \ \--------[EndPoint 192.168.2.4]
我的根本问题在于我收到来自2.4的数据包,这些数据包是发往互联网的,我可以使用IpTables正确地路由它们.然而,如果数据包到达1.10,我应该将其发送回具有相应选项集的交换机.
我尝试了以下内容
>将1.0的默认网关设置为2.1为2.4并设置下一个
跳到1.1我希望能做正确的转发
>我还使用bridge-utils桥接了eth1和eth1:0,然后为希望从10.10.0.1上网的2.X中的任何人应用iptables转发
解决方法
桥接也是不同类型的东西,不应该在这里帮助你.桥接别名接口可能应该进行循环,从而破坏该以太网段中的网络.
您需要两侧的路由,例如,在192.168.1.0/24网络中的主机上通过192.168.1.103 ip route add 192.168.2.0/24,并在192.168.2.0/24网络中的主机上设置192.168.2.1作为默认网关.
如果您在防火墙框上设置了防火墙,则需要启用从eth1到eth1:1的流量转发并返回:
iptables -A FORWARD -i eth1 -o eth1:0 -j ACCEPT iptables -A FORWARD -o eth1 -i eth1:0 -j ACCEPT
或者您可能只需要一条第一条规则,如果您已经使用iptables配置了状态防火墙-A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT或-m state(废弃).
只有在想要伪装该流量时才需要特殊的iptables配置,对于192.168.1.0/24中的主机,不知道您是从192.168.2.0/24网络连接.然后你不需要.1.0 / 24端的任何其他路由,但需要NAT规则和转发启用规则:
iptables -t nat -A POSTROUTING -o eth1:1 -s 192.168.2.0/24 -o 192.168.1.0/24 -j SNAT --to-source 192.168.1.103 iptables -A FORWARD -i eth1 -o eth1:0 -j ACCEPT