我第一次尝试设置 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
.
现在,无论是 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 地址。
此时,您的系统正在做基础工作。但是,您必须将每个连接的系统设置为具有静态 IP 并指向外部 DNS 服务器。这可以通过一个名为dhcp
. 安装它,并将其设置为在启动时启动。在我基于 Red Hat 的系统上,这可以通过两个命令来完成:yum install dhcp
和chkconfig 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)
这里有几个关键点:
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。
这可能是最简单的。在我的 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)
归档时间: |
|
查看次数: |
2306 次 |
最近记录: |