虚拟机上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个路由器R1,R2,R3和2个主机A,B构成的路由结构如上图。其中,每个路由器都有两个网卡eth0和eth1。网络IP地址分为4个网段,默认网络IP为16位。
在虚拟机上配置网络地址
在虚拟机中添加网络:
主机A与R1的eth0在网络11。
同上将R1的eth1与R2的eth0设置在网络12,R2的eth1与R3的eth0在网络13,R3的eth1与主机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
配置完成 R1与R2间的网络连接成功
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 开启
此时主机A与R2的网络连接仍然不成功
将路由器R1,R2,R3的防火墙关闭
查看防火墙 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其它外网。