我在 LAN 网络上有一个 DHCP 服务器 (dnsmasq),其 IP 为 192.168.255.2/16。现在我在 Vyatta 上创建了结合 LAN 和 WLAN 网络的桥接器。两个 NIC 在 ESXi 中都处于混杂模式。
如果我将测试服务器放在发送 DHCP 请求的 WLAN 网络上,则数据包将通过 Vyatta 桥接器到达 LAN 网络,并且 dnsmasq 将按预期回复。回复发送到 Vyatta 盒,然后什么都没有。WLAN 网络中的测试机器没有收到回复。使用 tcpdump 监控时,我可以看到 Vyatta 盒的回复。
所有机器都是虚拟的,并在同一台物理 ESXi 主机上运行。如果我将同一台测试机放在 LAN 网络上,一切正常。所有网络都在自己的 VLAN 中,ESXi 处理 NIC 中的标记。
Vyatta 的 DHCP 中继服务器是否出现故障,或者我是否缺少某些选项/防火墙/nat 规则?
Vyatta 配置:
firewall {
all-ping enable
broadcast-ping disable
ipv6-receive-redirects disable
ipv6-src-route disable
ip-src-route disable
log-martians enable
name drop-all {
default-action drop
}
receive-redirects disable
send-redirects enable
source-validation disable
syn-cookies enable
}
interfaces {
bridge br0 {
address 192.168.255.1/16
aging 300
hello-time 2
max-age 20
priority 0
stp true
}
ethernet eth5 {
bridge-group {
bridge br0
}
description WLAN
duplex auto
hw-id 00:0c:29:60:1d:1b
smp_affinity auto
speed auto
}
ethernet eth6 {
bridge-group {
bridge br0
}
description LAN
duplex auto
hw-id 00:0c:29:60:1d:11
smp_affinity auto
speed auto
}
loopback lo {
}
}
nat {
source {
rule 1 {
description "Route traffic from LAN to Internet"
destination {
address !192.168.0.0/16
}
outbound-interface eth4
source {
address 192.168.0.0/16
}
translation {
address masquerade
}
}
}
}
service {
dhcp-relay {
interface br0
relay-options {
hop-count 10
max-size 576
port 67
relay-agents-packets forward
}
server 192.168.255.2
}
}
system {
config-management {
commit-revisions 20
}
console {
device ttyS0 {
speed 9600
}
}
host-name lan-internet-nat
login {
user vyatta {
authentication {
encrypted-password ****************
}
level admin
}
}
ntp {
server fi.pool.ntp.org {
}
}
package {
auto-sync 1
repository community {
components main
distribution stable
password ****************
url http://packages.vyatta.com/vyatta
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone GMT
}
- Vyatta 6.5R1 64 位
- VMware ESXi 5.1.0
答案1
我必须在 ESXi NIC 中启用“伪造传输”,并在 Vyatta 中删除 DHCP 中继服务器。