Linux路由器设置

我试图设置一个Linux路由器第一次,我挣扎着设置。

在这里,我想如何设置它:ISP线 – > Linux路由器 – > Linksys路由器 – >局域网。

Linux路由器有eth0和eth1

我如何设置这个,我在哪里把我的外部IP?

非常感谢,

在家里有这样的设置,我想我知道如何做到这一点。

你的linux路由器将有两个物理接口。 我将它们称为eth0 (连接到您的内部networking和一个静态IP地址)和eth1 (连接到您的ISP,大概是通过DHCP提供的地址)。

打开数据包转发

在文件/etc/sysctl.conf ,可能有两行符合以下内容:

 # Controls IP packet forwarding net.ipv4.ip_forward = 0 

如果没有,你至less需要添加最后一行。 这里有一个重要的部分: 将0改为1 。 如果Linux路由器上的路由表告诉它它是下一步,那么这就告诉内核深入地将数据包从一个接口发送到另一个接口。 您将需要重新启动,或者运行以下命令: echo 1 > /proc/sys/net/ipv4/ip_forward

设置NAT

现在,eth0或eth1出来的所有内容都会使用与之相同的IP地址。 所以Google会从192.168.1.x(或者你的IPscheme)得到ping。 麻烦的是,这些IP地址不能通过公共互联网路由。 所以你必须告诉你的Linux路由器修改传出的数据包,以便将它们传回给你。 我已经这样做了以下规则:

 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE 

这告诉系统完成所有路由(因为它在POSTROUTING iptables链中),并且如果出接口是eth1(“ – o eth1”),则应用目标MASQUERADE。 这意味着“将源IP地址更改为该接口的IP地址。

设置DHCP

在这一点上,你的系统正在做基础。 但是,您必须将每个连接的系统设置为具有静态IP和指向外部DNS服务器的点。 这可以通过一个名为dhcp的包来改变。 安装它,并将其设置为在启动时启动。 在我的基于Red Hat的系统上,可以用两个命令完成: yum install dhcpchkconfig dhcpd on 。 然而,它不会做任何事情,因为你没有configurationDHCP你的IPscheme是什么,它应该听什么接口(虽然我可能是错的)。 以下是你的/etc/dhcpd.conf样子:

 # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # ddns-update-style interim; #include "/var/named/chroot/etc/rndc.key"; subnet 192.168.1.0 netmask 255.255.255.0 { authoritative; range 192.168.1.10 192.168.1.100; option routers 192.168.1.1; option domain-name-servers 192.168.1.1; } max-lease-time 14400; #4 hours default-lease-time 14400; #4 hours 

这里有几个关键点:

  1. 子网行:这必须是eth0的networking地址。 networking掩码也必须匹配。
  2. 范围线:这是您为内部networking设置开始和结束地址的位置。 我强烈build议使这个排除在linux路由器本身的地址。
  3. 选项路由器线路:这是您告诉客户端默认网关的地方。 在你描述的情况下,这将是Linux路由器的eth0的IP地址。
  4. Option domain-name-servers line:这是你告诉客户端他们的DNS服务器的地方。 如果要使用OpenDNS,请option domain-name-servers 8.8.8.8 8.8.4.4option domain-name-servers 8.8.8.8 8.8.4.4如果要使用Google Public DNS,或option domain-name-servers 192.168.1.1 option domain-name-servers 8.8.8.8 8.8.4.4 option domain-name-servers 192.168.1.1如果你想设置你的系统来处理这一切。

您现在可以通过在基于Red-Hat的系统上启动它, service dhcpd start以root身份service dhcpd start 。 如果你不使用红帽或者衍生物,那么你将需要运行该系统的启动脚本。

租约时间以秒为单位定义。 至less根据我所能find的文件,有时客户会要求一个具体的租赁期限,在这种情况下,最大租赁时间和最小租赁时间报表将被检查和调整以适应这些边界。 其他时候,客户不会要求租赁期限,在这种情况下,使用默认租赁时间。

这对于不使用内部networkingDHCP为您的ISP的其他客户端提供服务是安全的,因为如果DHCPD不知道其接口的IPscheme,DHCPD将不会提供地址。 因此,如果eth1上有一个dhcp请求,其IP地址为123.45.67.89,则DHCP设置没有该IP的子网块。 所以它不会发送任何DHCP请求。 但是,如果在eth0上有IP地址192.168.1.1,它有一个与该地址相匹配的子网块,它提供了DHCP。

设置DNS

这可能是最简单的。 在我的RHEL 5.1系统上,安装,启动并指向客户机。 开箱即用,它被configuration为指向根名称服务器,并在DNS启动时处于活动状态的任何接口上为客户端提供服务。

要安装,请记住,它不是dnsd,它的名称。 这不是命名的过去式。 相反,阅读它为“名称-D”。

 yum install named #installation service named start #start it for right now chkconfig named on #set it to start at system boot. 

您可能要考虑设置一个基于Linux的路由器分配,如Smoothwall( http://www.smoothwall.org )。 它是专门为路由器使用而devise的,比build立自己的设置要容易得多。