接触 DHCP 中继主机

接触 DHCP 中继主机

我有一个主服务器(DHCP)和一个辅助服务器(DHCP-RELAY)。

大多数主机由主要 (无线) 提供服务,但是也有少数 (有线) 主机从辅助 (辅助) 获取其 IP。

次要服务器将所有DHCP流量中继到主要服务器,主要服务器产生流量IP address,并将其发送回次要服务器,然后 IP 被发送给主机。isc-dhcp-[relay|server]

 __________                  ___________                  ___________
|   DHCP   |<----rel.req----| DHCP-RELAY|<=====ip.req====|    Host   |
|172.16.1.1|-{172.16.1.50}->|172.16.1.12|={172.16.1.50}=>|172.16.1.50|
 ¯¯¯¯¯¯¯¯¯¯                  ¯¯¯¯¯¯¯¯¯¯¯                  ¯¯¯¯¯¯¯¯¯¯¯

DHCP服务器
# ip route | grep 172
172.16.1.0/24 dev wlan5  proto kernel  scope link  src 172.16.1.1 
172.16.1.50 via 172.16.1.12 dev wlan5
DHCP中继
# ip addr | grep inet | grep 172
    inet 172.16.1.254/24 brd 172.16.1.255 scope global eth0
    inet 172.16.1.12/24 brd 172.16.1.255 scope global wlan3

# ip route | grep 172
default via 172.16.1.1 dev wlan3  metric 300 
172.16.1.0/24 dev wlan3  proto kernel  scope link  src 172.16.1.12 
172.16.1.0/24 dev eth0  proto kernel  scope link  src 172.16.1.254 
172.16.1.50 via 172.16.1.254 dev eth0

# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 16 packets, 1293 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 6 packets, 402 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 28 packets, 1568 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 28 packets, 1568 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    7   468 SNAT       all  --  *      eth0    172.16.1.0/24        0.0.0.0/0            to:172.16.1.254

如果我错了,请纠正我,但据我所知,以我目前的配置,它以这样或类似的方式工作:
来自 DHCP 服务器 (172.16.1.1<-->172.16.1.50)

172.16.1.1---icmp.ping--->172.16.1.12
172.16.1.12---icmp.ping--->172.16.1.254
172.16.1.254---icmp.ping--->172.16.1.50
172.16.1.254<---icmp.pong---172.16.1.50
172.16.1.12<--icmp.pong----172.16.1.254
172.16.1.1<---icmp.pong---172.16.1.12

因此我期望,如果我ping从主服务器后面的自定义主机:
来自主机(172.16.1.100<-->172.16.1.50)

172.16.1.100---icmp.ping--->172.16.1.1
172.16.1.1---icmp.ping--->172.16.1.12
172.16.1.12---icmp.ping--->172.16.1.254
172.16.1.254---icmp.ping--->172.16.1.50
172.16.1.254<---icmp.pong---172.16.1.50
172.16.1.12<--icmp.pong----172.16.1.254
172.16.1.1<---icmp.pong---172.16.1.12
172.16.1.100<---icmp.pong---172.16.1.1

但相反,我得到的是Destination Host Unreachable......

我必须static route在主机上添加另一个:

172.16.1.100:~# ip route add 172.16.1.50 via 172.16.1.12

然后一切顺利。亲爱的先生们,这就是很多静态路由!!

那么我遗漏了什么,有没有更好的方法解决这个问题?
我希望网络上的每个主机都可以与同一网络上的任何其他主机进行通信,使用尽可能少的静态路由。

谢谢

答案1

那么我遗漏了什么,有没有更好的方法解决这个问题?我希望网络上的每个主机都可以与同一网络上的任何其他主机进行通信,使用尽可能少的静态路由。

您可以使用 VLAN 并将无线和以太网段连接在一起。通过此配置,您将创建一个广播域,不需要静态路由,并且只需要一个 DHCP 服务器。

桥接方面有两种选择:

  1. 将接入点设置为桥接模式,并将其以太网连接到 VLAN 上的交换机端口
  2. 让所有接入点都连接到 DHCP 服务器,并在那里添加桥接接口

我个人会选择第一个选项,因为它更具可扩展性。

选项 #1(架构)

 ______________                ___________                  ___________
|Wireless      |<==Ethernet===|Switch 1  |<====Ethernet====|Switch 2   |
|Access Point 1|=============>|on VLAN A |================>|on VLAN A  |     
 ---------------               -----------                  -----------
                                      |                             |
                                   Ethernet                    Ethernet
                                      |                             |
                                  __________                    _________
                                 | DHCP     |                  |  Wired  |
                                 | Server   |                  |  Hosts  |
                                  ----------                    ---------
                                Serves IPs for
                                subnet {172.16/16}

事实上,所有主机和接入点都连接到同一个 VLAN,这使得您可以使用单个 DHCP 服务器访问它们,而无需任何特定的路由,所有这些都将在网络堆栈的第 2 级工作。

选项 #2(架构)

 ______________              _________________                __________
|Wireless      |<==Ethernet==|eth0|DHCP  |eth1|<==Ethernet===|Switch    |          
|Access Point 1|============>|    |Server|    |=============>|          |  
---------------              |     --------   |               ----------           
                             |    bridge0     |                    |
                              ----------------                   Ethernet
                              Only bridge0 interface               |
                              is given an IP address          __________
                              and DHCP servers is             |  Wired  |
                              configured to serve IPs         |  Hosts  |
                              on subnet {172.16/16}           -----------
                              only on bridge0 interface

bridge0eth0是桥接和连接 DCHP 服务器的虚拟接口eth1(这里我假设是 Linux 机器,但在其他操作系统上是相同的概念)。eth0并且eth1不能有任何自己的 IP,只能bridge0因为是唯一的接口可见的(1)从外部角度来看。同样,不需要静态路由。

(1) 我为使用非技术性语言而道歉,但我认为过于技术性的解释会使答案变得混乱,而且对于展示概念来说并不是绝对必要的。

相关内容