linux – 在不同的子网上正确配置两个eth接口

任何在 Linux和网络方面具有沉重背景的人都可以帮助我吗?我已经在互联网上寻找一个明确的答案,我甚至比较了一个我可以访问的盒子和相同的设置,我无法让我的盒子工作.

基本情况是这样的:

===========================

RHEL 6 Linux机箱有两个以太网接口:

eth0 = 10.10.5.10/24
eth1 = 10.10.6.10/24

[root@box ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.5.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
10.10.6.0      0.0.0.0         255.255.255.0   U         0 0          0 eth1
0.0.0.0        10.10.5.254     0.0.0.0         UG        0 0          0 eth0

ip forwarding已启用且处于活动状态.

问题:

与eth1或10.10.6.x网络位于同一子网的客户端可以ping并telnet到此框上eth1上运行的资源.

但是,任何其他子网上的客户端都不能.所以从我的工作站我可以整天ping和盒子的eth0上的资源,但是没有关于eth1的内容……什么给出了什么?

将此设置与我环境中具有类似性质的另一个盒子进行比较,显示没有明显的差异.

这是一些文件:

# cat ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
HWADDR="Omitted"
IPADDR="10.10.5.10"
NETMASK="255.255.255.0"
NETWORK="10.10.5.0"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="no"

# cat ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="none"
HWADDR="omitted"
IPADDR="10.10.6.10"
NETMASK="255.255.255.0"
NETWORK="10.10.6.0"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="no"

# cat route-eth0 
default via 10.10.5.254 dev eth0

# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=box
GATEWAY=10.10.5.254
NOZEROCONF=yes

您将提供的任何帮助将不胜感激!

谢谢.

添加更多信息,但简洁包括:

# ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    inet 10.10.5.10/24 brd 10.10.5.255 scope global eth0
3: eth1: <BROADCAST,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    inet 10.10.6.10/24 brd 10.10.6.255 scope global eth1

解决方法

使用您当前显示的设置:

>你有两面:

> eth1方面(10.10.6.10接口,10.10.6.0/24 lan)
> eth0方面(10.10.5.10接口,10.10.5.0/24 lan)
>您在eth0端定义了该机器的默认网关(默认gw ip:10.10.5.254)

>因此

>在eth1方面:

> [必备] 10.10.6.0/24中的任何机器都应该能够与10.10.6.10(以及彼此之间)通信(我假设没有防火墙问题)
> [必备]此外:10.10.6.0/24中的任何机器已将其默认网关定义为“10.10.6.10”,可以将数据包发送到其他机器,通过您的机器(10.10.6.10/24-\u0026gt; eth1 [machine] eth0->其他lans).实际上,您不需要将其作为默认网关,但对于eth0侧的任何LAN,他们需要将该LAN与10.10.6.10网关相关联.

>在eth0方面:

> [必备] 10.10.5.0/24上的任何机器应该看到10.10.5.10(eth0)并且可以与它(以及彼此)通信.
> [必备]另一个局域网上的任何一台机器都应该能够与eth0通信,通过(可能是额外的跳跃)具有10.10.5.254 ip的机器(例如:如果该机器有2个子网,10.10.5.254 / 24在同一台机器上)如果是eth0,而另一个接口是10.xyz/24,则10.xy0 / 24中的机器可以通过路由:10.10.5.0/24和网关10.xyz将数据包发送到10.10.5.10.
>如果是这样,那么他们只需要有一条额外的路线通过网关10.x.y.z达到10.10.6.0/24:10.10.6.0/24

用文字说话会变得复杂……

什么会有所帮助:告诉我们网络列表()和每个网络的通道.

现在我猜我试着:

[everything other machines (even internet,via the exterior internet gateway)]
                  |
                  |(links via switch(s) for 10.x.y.0/24 network,for example.
                  |   If you have such an additionnal LAN.
                  |   Maybe it's even "the Internet",and therefore not in 10.x anything,|   but this is just an example.)
                  |
                  |      
      (10.x.y.z?) |  [---------------]
   (or Internet?)ethZ[some router/box]ethW(10.10.5.254)
                     [---------------] |
                                       |
                                       |(links via switch(s) for 10.10.5.0/24 network)
                                       |
                             [-------] |
             (10.10.6.10)eth1[yourbox]eth0(10.10.5.10)
                          |  [-------]   
                          |
                          |(links via switch(s) for 10.10.5.0/24 network)
                          |
                          |  [---------------------------]
                         ethx[any machine in 10.10.6.0/24]
                             [---------------------------]

调试设置的一般方法:

>假设您是IP数据包:您有源IP,目标IP.
>现在,在您坐在源的接口上,查看该机器的路由告诉您下一跳是哪个.然后去那里(但首先确保机器的设置允许你,例如在eth0 / eth1机器上,它需要ipforward从一个接口到另一个接口).继续,一次一跳,朝向你的目标(并回到你的源:有时目标机器的路由/ defaultgw被破坏,因此回复数据包不通过正确的路径发送)

> ex1(非常简单):10.10.6.10试图发送到10.10.5.10:step1你在eth1(10.10.6.10).那台机器的路线说“10.10.5.0/24就在这里,在eth0上”. Ipforwarding允许您从eth1跳到eth0.继续eth0. step2:你现在是(相同的IP包)在eth0上.事实证明这是你的目的地:好.步骤2b:回复包:反向源/目的地:你现在是一个数据包(10.10.5.10 – > 10.10.6.10 =):感谢上帝,本地路由告诉你下一跳是在eth1上. step4:没有eth1:你在目的地.好.> ex2(有点长ex :)你是来自“any_machine”,10.10.6.12(在eth1方面)的数据包.你试图达到destinatino谷歌(例如8.8.8.8).所以你是“10.10.6.12 – > 8.8.8.8”,首先你坐在10.10.6.12界面(比方说,eth3). “any_machine”上的本地路由告诉您(因为它是上面的先决条件):“default gw = 10.10.6.10”,所以你跳到“yourbox”,然后到达eth1一侧. step2:你现在正在使用“yourbox / eth1”:现在本地路由告诉你“你需要去默认gw:10.10.5.254,通过eth0”(而“yourbox”上的ipforward允许你从eth1跳到eth0).现在你到达eth0,并按照默认的gw路线,稍后到达ethW的“somerouter”(10.10.5.254).等……(不要忘记检查回路)

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...