Poo*_*rna 3 networking linux gateway
我是网络新手,试图弄清楚多个网络接口是如何工作的。我的疑问是当一台机器上有两个或更多 NIC 时,/etc/sysconfig/network文件中默认网关的含义是什么。内核是否应该在各自/etc/sysconfig/network-scripts/ifcfg-eth*文件中定义网关的不同接口之间进行负载平衡?
默认网关是当没有更多特定路由时发送数据包的地方 - 实际上默认网关具有匹配所有数据包的路由 - /0 网络掩码路由。
尝试“netstat -rn”以查看系统上的路由。
默认网关不是您系统上的接口 - 它通常是您的本地路由器。它可以通过多个接口访问,但通常只有一个活动接口。
我不确定负载平衡,但如果默认网关可以从多个接口访问,那么数据包可以从所有接口发送到它似乎是合理的。
从头开始设置网络的简单示例:
ifconfig eth0 192.168.0.55 netmask 255.255.255.0
route add default gateway 192.168.0.1 eth0
Run Code Online (Sandbox Code Playgroud)
第一个命令设置您的接口并添加到本地网络 (192.168.0/24) 的路由。第二个命令通过 192.168.0.1 添加默认路由,由于第一个路由,现在可以访问该路由。
如果你有第二个界面,你也可以设置它:
ifconfig eth1 192.168.0.56 netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
现在任一接口都可以到达默认网关。您可以通过使用“ifconfig”并查看 RX/TX 数据包来检查负载平衡是否正在发生。如果计数器增加,则表明正在使用接口。
更新:
对于不同网络上的两个接口,您可以添加多个默认网关。我不知道 etc/sysconfig 是否支持这种情况。如果没有,您可以在启动脚本中添加“路由添加默认网关”语句。
关于这个主题的一些琐事:过去可以通过网关发送来自另一个接口的源 IP 的数据包(非对称路由)。通过这种方式,您可以从一个网关发送所有数据包并通过另一个网关接收它们。这在您连接不对称上/下带宽或延迟的情况下很有用(想想卫星下行链路和蜂窝上行链路)。
我说“曾经”是因为大多数 ISP 现在过滤掉源 IP 未分配给下游的数据包。
更随机的双网卡乐趣:
我的笔记本电脑上有两个网卡:有线和无线。我根据他们的以太网地址在我的 DHCP 服务器配置中为他们分配了相同的 IP。当有线连接时,我获得高速。但是当我拔掉它时,一切都会继续工作。我什至没有失去与远程主机的连接。内核并不关心数据包来自哪个接口,只要它绑定了正确的 IP 地址。
默认网关应该只能通过一个网络接口访问。在同一子网上有多个 NIC,因此潜在的不确定输出路径可能会导致意外和令人失望的行为。
参见例如https://serverfault.com/questions/415304/multiple-physical-interfaces-with-ips-on-the-same-subnet
如果你真的想实现它,一个可靠的方法是配置某种形式的网络聚合,就 Linux 而言,这转化为绑定/团队。
| 归档时间: |
|
| 查看次数: |
6942 次 |
| 最近记录: |