配置 Ubuntu 作为内网路由器

配置 Ubuntu 作为内网路由器

我正在配置内部网络使用 Virtual Box 和 4 台虚拟机。我已经配置了所有接口,并稍微弄乱了IP 转发IP伪装在 Host 上,这将是路由器

路由器有两个以太网接口:一个连接HostC,另一个连接HostA和HostB。

我做错了什么如果主机C能够 ping 通主机 A 和 B主机 A 和 B无法 ping 通主机C。应该是路由器配置。

答案1

为了诊断此处的问​​题,您确实应该在帖子中添加更多信息,我将其作为答案添加以澄清问题,因为有一些命令可以尝试诊断此问题,但在评论中阅读起来会很困难。请在路由器上运行这些命令并报告输出,这将有助于了解您的网络设置和配置并识别问题:

列出接口:

ip link show

列出接口转发状态:

sysctl -a | grep forwarding

列出接口地址:

ip addr show
ip -6 addr show

列出防火墙规则:

iptables -L
ip6tables -L

列出 NAT 规则:

iptables -t nat -L
ip6tables -t nat -L

另外,请检查路由器本身是否可以访问所有主机:

ping -c4 HostA
ping -c4 HostB
ping -c4 HostC

当然,要用主机的 IP 地址替换 HostA/B/C,这是一个重要的步骤,因为如果这里存在问题,那么在尝试担心子网之间的路由之前,需要先解决这个问题。

答案2

ip link show

结果:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:90:2d:e5 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:d4:ac:c1 brd ff:ff:ff:ff:ff:ff

一切看上去都很好。

sysctl -a |grep forwarding

结果:

net.ipv4.conf.all.forwarding = 1 net.ipv4.conf.all.mc_forwarding = 0 net.ipv4.conf.default.forwarding = 1 net.ipv4.conf.default.mc_forwarding = 0 net.ipv4.conf.eth0.forwarding = 1 net.ipv4.conf.eth0.mc_forwarding = 0 net.ipv4.conf.eth1.forwarding = 1 net.ipv4.conf.eth1.mc_forwarding = 0 net.ipv4.conf.eth2.forwarding = 1 net.ipv4.conf.eth2.mc_forwarding = 0 net.ipv4.conf.lo.forwarding = 1 net.ipv4.conf.lo.mc_forwarding = 0 net.ipv6.conf.all.forwarding = 0 net.ipv6.conf.all.mc_forwarding = 0 sysctl: reading key "net.ipv6.conf.all.stable_secret" net.ipv6.conf.default.forwarding = 0 net.ipv6.conf.default.mc_forwarding = 0 sysctl: reading key "net.ipv6.conf.default.stable_secret" net.ipv6.conf.eth0.forwarding = 0 net.ipv6.conf.eth0.mc_forwarding = 0 sysctl: reading key "net.ipv6.conf.eth0.stable_secret" net.ipv6.conf.eth1.forwarding = 0 net.ipv6.conf.eth1.mc_forwarding = 0 sysctl: reading key "net.ipv6.conf.eth1.stable_secret" net.ipv6.conf.eth2.forwarding = 0 net.ipv6.conf.eth2.mc_forwarding = 0 sysctl: reading key "net.ipv6.conf.eth2.stable_secret" net.ipv6.conf.lo.forwarding = 0 net.ipv6.conf.lo.mc_forwarding = 0 sysctl: reading key "net.ipv6.conf.lo.stable_secret"

已启用转发。

ip addr show

IP 地址正确。已在 Cisco Packet Tracer 中检查。

ip -6 addr show

ipv6 未配置。

iptables -L

结果:

`链输入(策略接受)目标保护选择源目标

链转发(策略接受)目标保护选择源目标

链输出(策略接受)目标保护选择源目标`

iptables -S

结果:

-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT

現在默認。

Pinging

HostR(路由器,10.0.0.1,172.16.0.1)可以 ping 通 HostA、HostB,但无法 ping 通 HostC

HostA/HostB (10.0.0.5/.6) 可以 ping 通 HostA/B、HostR,但无法 ping 通 HostC

HostC(172.16.0.2)向所有人执行 ping 操作。

谢谢你的回答。请告诉我你对这些结果的看法。我现在正在努力解决这个问题。如果有任何突破,我会报告的。

相关内容