使用 DHCPD 和 3 个以太网设备将 Ubuntu 服务器设置为路由器

使用 DHCPD 和 3 个以太网设备将 Ubuntu 服务器设置为路由器

我的配置:

  • Ubuntu 12.04
  • DHCP3 服务器
  • BIND9
  • eth0、eth1、eth2

eth0 是外部连接
eth1 和 eth2 是内部网络

eth1 和 eth2 应该分别是学生/老师的独立网络。

我希望外部设备的互联网能够桥接到设备 1 和 2,而 DHCP 服务器控制两个内部设备。它已经使用 DHCP 工作,我遇到的问题是如何桥接互联网。

我已经设置了一个在这里找到的脚本:路由器
原始脚本链接如下:Ubuntu 路由器指南

删除了旧的配置,不确定它们是否仍然准确

如果您需要更多信息,请告诉我。

编辑:

所以我有一个 255.255.254.0 网络,我相信这是导致问题的原因。不确定这是否会对第二张卡产生影响,我稍后会测试。

将子网更改为 255.255.255.0 后,ping 可以通过,但是 DNS 请求无法通过?

我的新配置防火墙规则 更新


# Generated by iptables-save v1.4.12 on Thu Dec  6 20:15:11 2012
*nat
:INPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j SNAT --to-source 192.168.11.1-192.168.11.254
-A POSTROUTING -o eth0 -j SNAT --to-source 192.168.25.1-192.168.25.254
COMMIT
# Completed on Thu Dec  6 20:15:11 2012
# Generated by iptables-save v1.4.12 on Thu Dec  6 20:15:11 2012
*mangle
:PREROUTING ACCEPT [9:1591]
:INPUT ACCEPT [9:1591]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:3498]
:POSTROUTING ACCEPT [6:3498]
COMMIT
# Completed on Thu Dec  6 20:15:11 2012
# Generated by iptables-save v1.4.12 on Thu Dec  6 20:15:11 2012
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# WAN to LAN
-A FORWARD -m state -i eth0 -o eth1 --state ESTABLISHED,RELATED -j ACCEPT
# WAN to LAN
-A FORWARD -m state -i eth0 -o eth2 --state ESTABLISHED,RELATED -j ACCEPT
# LAN to WAN
-A FORWARD -m state -i eth1 -o eth0 --state NEW,ESTABLISHED,RELATED -j ACCEPT
# LAN to WAN
-A FORWARD -m state -i eth2 -o eth0 --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Log
-A FORWARD -j LOG
COMMIT
# Completed on Thu Dec  6 20:15:11 2012

不确定您还需要什么,但我正在使用 Webmin 来控制服务器(现场操作员需要知道如何使用它。)

如果您可以将其解释为标准 CLI 命令,或者直接编辑此文件,那么我们就没问题了。:)

再次感谢 Erik,我相信您的编辑确实有帮助。

最近编辑

    root@LFBC-US01:~# ip route
    default via 192.168.1.1 dev eth0  metric 100
    192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.25
    192.168.11.0/24 dev eth1  proto kernel  scope link  src 192.168.11.1
    192.168.25.0/24 dev eth2  proto kernel  scope link  src 192.168.25.1
    root@LFBC-US01:~#

据我了解,这代表了我服务器中的路由,由于某种原因,DNS 不会通过,并且在我的 Windows 7 计算机上对 Google 的 ping 不会通过。有什么建议吗?

我的界面设置

auto lo eth0 eth1 eth2
iface lo inet loopback

iface eth0 inet dhcp
    dns-nameservers 208.67.222.123 208.67.220.123 8.8.8.8 8.8.4.4

iface eth1 inet static
    address 192.168.11.1
    netmask 255.255.255.0
    broadcast 192.168.11.255
    network 192.168.11.0

iface eth2 inet static
        address 192.168.25.1
        netmask 255.255.255.0
        broadcast 192.168.25.255
        network 192.168.25.0

最后是我的 DHCP.conf

ddns-update-style none;

default-lease-time 7000;
max-lease-time 7200;

log-facility local7;

# Student Network
subnet 192.168.11.0 netmask 255.255.255.0 {
    option domain-name-servers 192.168.11.1;
    range 192.168.11.2 192.168.11.252;
    option routers 192.168.11.1;
    option broadcast-address 192.168.11.255;
    }
# Teacher Network
subnet 192.168.25.0 netmask 255.255.255.0 {
    option domain-name-servers 192.168.25.1;
    range 192.168.25.2 192.168.25.252;
    option routers 192.168.25.1;
    option broadcast-address 192.168.25.255;
    }

答案1

我认为你可以直接关注启用转发和伪装(4.5)但你需要添加这个:

首先取消注释 INTIF2,因此您有:

INTIF=eth1
INTIF2=eth0

在防火墙脚本中添加 INTIF2 行(只需复制 $INTIF 行并将 $INTIF 更改为 $INTIF2):

-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -i "$EXTIF" -o "$INTIF2" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
-A FORWARD -i "$INTIF2" -o "$EXTIF" -j ACCEPT

编辑 和往常一样,您必须启用流量转发,但如果您使用上面链接的手册中的脚本就可以完成。

回显“ 1”> / proc / sys / net / ipv4 / ip_forward

相关内容