linux路由器设置

use*_*850 3 linux router

我第一次尝试设置 linux 路由器,但我正在努力设置。

在这里我想如何设置它:ISP 线路 -> Linux 路由器 -> Linksys 路由器 -> Lan。

Linux 路由器有 eth0 和 eth1

我如何设置这个以及我在哪里放置我的外部IP?

非常感谢,

Kev*_*n M 12

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

您的 linux 路由器将有两个物理接口。我会打电话给他们eth0(连接到您的内部网络并使用静态 IP 地址)和eth1(连接到您的 ISP,大概是通过 DHCP 提供的地址)。

开启数据包转发

在 file 中/etc/sysctl.conf,可能有两行与以下内容匹配:

# Controls IP packet forwarding
net.ipv4.ip_forward = 0
Run Code Online (Sandbox Code Playgroud)

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

设置 NAT

现在,无论是 eth0 还是 eth1,所有出去的 IP 地址都与它进来的 IP 地址相同。因此,Google 将从 192.168.1.x(或任何您的 IP 方案)获得 ping。麻烦的是,这些 IP 地址无法通过公共互联网路由。所以你必须告诉你的 Linux 路由器修改传出的数据包,以便它们可以路由回给你。我已经按照以下规则这样做了:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

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

设置 DHCP

此时,您的系统正在做基础工作。但是,您必须将每个连接的系统设置为具有静态 IP 并指向外部 DNS 服务器。这可以通过一个名为dhcp. 安装它,并将其设置为在启动时启动。在我基于 Red Hat 的系统上,这可以通过两个命令来完成:yum install dhcpchkconfig dhcpd on. 但是,它不会做任何事情,因为您尚未将 DHCP 配置为关于您的 IP 方案是什么以及它应该侦听哪些接口。(尽管我可能是错的)。下面是你的/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
Run Code Online (Sandbox Code Playgroud)

这里有几个关键点:

  1. 子网线:这必须是 eth0 的网络地址。网络掩码也必须匹配。
  2. 范围行:这是您设置内部网络的起始地址和结束地址的地方。我强烈建议将其排除在 linux 路由器本身的地址之外。
  3. Option routers line:这是你告诉客户端他们的默认网关是什么的地方。在您描述的情况下,这将是 linux 路由器的 eth0 的 IP 地址。
  4. Option domain-name-servers 行:这是您告诉客户端他们的 DNS 服务器将是什么的地方。你可以把它option domain-name-servers 208.67.222.222 208.67.220.220,如果你想使用OpenDNS的,option domain-name-servers 8.8.8.8 8.8.4.4如果你想使用谷歌公共DNS,或者option domain-name-servers 192.168.1.1如果你想设置您的系统来处理这一切。

您现在可以service dhcpd start以 root 身份执行(在基于 Red-Hat 的系统上)来启动它。如果您没有使用 Red Hat 或 derivitave,那么您将需要为该系统运行启动脚本。

租用时间以秒为单位定义。至少根据我能找到的文档,有时客户会要求特定的租用期限,在这种情况下,会检查并调整 max-lease-time 和 min-lease-time 语句以适应这些边界。其他时候,客户端不会要求租用期限,在这种情况下使用 default-lease-time。

这在不使用内部网络 DHCP 为 ISP 的其他客户端提供服务方面是安全的,因为如果 DHCPD 不知道它进入的接口的 IP 方案,则它不会提供地址。因此,如果 eth1 上有 dhcp 请求,其 IP 为 123.45.67.89,则 DHCP 设置没有该 IP 的子网块。因此它不会为该请求发送任何 DHCP 提议。但是如果它进入 eth0,它的 IP 为 192.168.1.1,它确实有一个与该地址匹配的子网块,并且它确实提供了 DHCP。

设置 DNS

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

要安装,请记住它不是 dnsd,它是命名的。这不是命名的过去式。相反,将其读作“name-D”。

yum install named    #installation
service named start  #start it for right now
chkconfig named on   #set it to start at system boot.
Run Code Online (Sandbox Code Playgroud)