虚拟机上RedHat网络不通,eth0没有ip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机上RedHat网络不通,eth0没有ip相关的知识,希望对你有一定的参考价值。

虚拟机的网络采用Bridged(桥接)方式,刚开始以为,是因为机器上的有些网卡没有连接电缆,而VMWare又恰好使用了该网卡,经过几个小时的测试,通过禁用没连线的网卡、把VMWare的VM0映射到连线的其他网卡,都没有解决问题。
在VM虚拟机中装了redhatlinux9.0,准备与主机共享文件,结果网络不通!
无法激活,在输入ifup eth0后总提示:
Dertermining IP information for eth0....failed - no link present check cable
解决办法:
在 /etc/sysconfig/network-scripts/ifcfg-eth0
中添加以下script:
check_link_down()
return 1;

具体操作:
[root@localhost root]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vi ifcfg-eth0
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=yes
USERCTL=no
PEERDNS=yes
TYPE=Ethernet
DEVICE=eth0
HWADDR=00:0c:29:64:c2:5f #此处可以不添加,根据自己机器而定(建议先不添加)
BOOTPROTO=dhcp
#以下为添加部分,具体操作方法:先按a,在光标后插入下面文本,最后 :wq 保存退出(或用Gedit编辑)
check_link_down()
return 1;

接下来,重起网络(如果重起网络不行,则重启系统!)
[root@localhost network-scripts]# ifup eth0
Determining IP information for eth0... done.
好了,看到上面的提示说明已经成功,可用ifconfig检查自己是否已获得有效IP。
参考技术A 桥接的,首先我看不到eth0的信息,使用ifconfig -a 或ifconfig eth0都可以看到,但是信息中看不到ip,所以使用了ifconfig eth0 xxx.xxx.xxx.xx 设置了后再查看就有了。也可以ping通了。

搭建路由环境

搭建路由环境

     部署路由环境的拓扑结构

 

 

由3个路由器R1R2R32个主机A,B构成的路由结构如上图。其中,每个路由器都有两个网卡eth0eth1。网络IP地址分为4个网段,默认网络IP16位。

在虚拟机上配置网络地址

在虚拟机中添加网络:

 

 

主机AR1eth0在网络11

 

同上将R1eth1R2eth0设置在网络12R2eth1R3eth0在网络13R3eth1与主机B在网络14

修改网卡名称

Vim /wtc/udev/rules.d/70-persistent-net.rules

将多余的网卡记录删除,按照MAC地址设置网卡名称

 

 

查看网卡

       dmesg |grep -i eth

       ethtool -i eth0

卸载网卡驱动

       modprobe -r e1000(驱动名称)

       rmmod e1000(驱动名称)

装载网卡驱动

       modprobe e1000(驱动名称)

指定网络IP地址

vim /etc/sysconfig/network-scripts/ifcfg-网卡名称

    #编辑配置文件,添加修改以下内容

    DEVICE=eth0    #设备名称

    BOOTPROTO=static|none   #启用静态IP地址   dhcp自动获取IP

    ONBOOT=yes  #开启自动启用网络连接

    IPADDR=10.0.1.100  #设置IP地址

    NETMASK=255.255.0.0  #设置子网掩码 PREFIX=16

    GATEWAY=10.0.1.200   #设置网关   下一个路由器临近路由器的接口

    DNS1=8.8.8.8 #设置主DNS

    DNS2=8.8.4.4 #设置备DNS

    IPV6INIT=no  #禁止IPV6

 

 

 

将虚拟机的网络IP手动设置为所需要的IP

 

 

因为我是直接克隆的虚拟机,MAC地址也需要手动改或者删除MAC地址行

重新启动服务  service nerwork restart

 

    使用ip a 命令查看网卡状态

 

所有主机路由器设置完成后,使用ping命令查看网络连接

 

如图 主机A与路由器R1连接成功。

网络连接成功后,给每个路由器添加路由信息

 每个路由器中都有一个路由表:

直连网络路由信息自动生成,不需要手动添加

 

R1的路由表

目标网络的网络ID

子网掩码

接口

网关

10.3.0.0

16

eth1

10.2.0.201

10.4.0.0

16

eth1

10.2.0.201

 

路由管理命令:

   查看 route -n

   添加 route add   host 仅主机路由  net 网络路由jinzhu

   删除 route del

  route add -net 10.3.0.0/16 gw 10.2.0.201 dev eth1

 

配置完成 R1R2间的网络连接成功

 

R2的路由表:

目标网络的网络ID

子网掩码

接口

网关

10.1.0.0

16

eth0

10.2.0.200

10.4.0.0

16

Eth1

10.3.0.201

 

 

双向网络连接成功

 

 

 

R3的路由表:

 

目标网络的网络ID

子网掩码

接口

网关

10.1.0.0

16

eth0

10.3.0.200

10.2.0.0

16

eth0

10.3.0.200

 

 

此时的主机A并不能与R2连接,因为,在用主机模拟路由器的时候,主机在收到目标不是自己的数据包是,不回转发出去,而是直接丢掉。

 

可以看出此时R1只接收包,不发出包

 

需要开启路由转发特性

 

将只改为1 开启

 

此时主机AR2网络连接仍然不成功

 

将路由器R1R2R3的防火墙关闭

查看防火墙 iptables -vnL

 

关闭防火墙 iptables -F

 

 

查看网络连接:

 

整个路由网络连接成功!

这个路由是临时的,如果要存盘,就要写在文件中。

/etc/sysconfig/network-scripts/ifcfg-IFACE  文件需要自己创建

注意:需service network restart生效

两种风格:

(1) TARGET via GW

如:10.0.0.0/8 via 172.16.0.1

(2) 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

实验总结:

虽然这只是一个很小的实验,但是还是出现了很多错误,花费了很多时间。试验中涉及了前面学习的一些零散的知识,才发现已经忘记了很多。只能通过查前面的笔记,看视频回忆起来。虽然磕磕绊绊,但是总算完成了,还是很有成就感的!再接再厉,开始下一个实验!

以上是关于虚拟机上RedHat网络不通,eth0没有ip的主要内容,如果未能解决你的问题,请参考以下文章

我用虚拟机装的linux 可以ping ssh 内网,但是PING不通网关,也不能ping其它外网。

虚拟机固定IP后ping不通

KVM虚拟机桥接网卡变更导致网络不通解决方案

虚拟机上的Linux系统ping不通宿主机

家庭网络用SecureCRT链接VMware Workstation中虚拟机Redhat Linux

CentOS7最小安装网络配置