通过二层路由实现不同网段的虚拟机的上网(包括排错)

1.在真机上(使真机作为第二层路由器,虚拟机通过真机做地址转换从而可以上网)
[root@foundation78 ~]# ping www.baidu.com  # 保证真机可以上网,ping通就代表可以上网

在这里插入图片描述

[root@foundation78 ~]# systemctl start firewalld   # 因为libvirt服务开启影响了火墙的开启
^C
[root@foundation78 ~]# systemctl stop libvirtd.service  
[root@foundation78 ~]# systemctl start firewalld
[root@foundation78 ~]# systemctl start libvirtd.service 

# 查看路由功能是否开启

[root@foundation78 ~]# firewall-cmd --list-all    # 查看到防火墙masquerade 策略关闭,即路由功能没开启

在这里插入图片描述

[root@foundation78 ~]# firewall-cmd --add-masquerade   # 打开路由功能
	success
[root@foundation78 ~]# firewall-cmd --list-all

在这里插入图片描述

[root@foundation78 ~]# sysctl -a | grep ip_forward   # 内核路由必须打开,1表示打开
net.ipv4.ip_forward = 1

在这里插入图片描述
注:
作为路由器
(1)内核路由功能必须打开
(2)防火墙策略必须打开

2.配置第一层路由器

配置不同网段的路由器详解

[root@desktop ~]# cd /etc/sysconfig/network-scripts/
[root@desktop network-scripts]# vim ifcfg-eth0
  1 DEVICE=eth0  
  2 ONBOOT=yes  
  3 BOOTPROTO=none  
  4 IPADDR0=172.25.254.142  
  5 PREFIX0=24  
  6 NAME=eth0  
  7 GATEWAY0=172.25.254.78    # 添加真机ip作为网关
[root@desktop network-scripts]# systemctl restart network
[root@desktop network-scripts]# route -n

在这里插入图片描述

[root@desktop network-scripts]# ping 183.232.231.173  # ping 不通,可能是因为内核路由功能没开启
[root@desktop network-scripts]# sysctl -a | grep ip_forward  # 查看,果然是没开启,0代表没开启
net.ipv4.ip_forward = 0
[root@desktop network-scripts]# vim /etc/sysctl.conf    # 打开内核路由功能
net.ipv4.ip_forward = 1
[root@desktop network-scripts]# sysctl -p  # 查看是否更改成功
net.ipv4.ip_forward = 1

# 因为没有DNS服务器来做域名解析,此时我们只能用过访问百度的IP来上网

[root@desktop network-scripts]# ping 183.232.231.173   # 此时就可以ping 通了,即保证路由器可以上网,183.232.231.173是百度的域名解析地址
[root@desktop network-scripts]# firewall-cmd --add-masquerade   # 打开路由功能,帮助客户端上网
success
[root@desktop network-scripts]# firewall-cmd --list-all

在这里插入图片描述

3.配置客户端
[root@server Desktop]# cd /etc/sysconfig/network-scripts/
[root@server network-scripts]# vim ifcfg-eth0   
	1 DEVICE=eth0  
	2 BOOTPROTO=none  
	3 ONBOOT=yes  
	4 IPADDR0=192.168.0.242  
	5 NETMASK=255.255.255.0  
	6 GATEWAY0=192.168.0.142
[root@server network-scripts]# systemctl restart network
[root@server network-scripts# route -n   # 添加网关,保证可以和不同网段的主机通信

在这里插入图片描述

[root@server network-scripts]# ping 183.232.231.188   # 可以ping通baidu,成功上网

在这里插入图片描述

[root@server network-scripts]# traceroute 183.232.231.173   # 追踪路由,第一个是通过第一层路由通信到第二层路由,再通过第二层路由访问百度

在这里插入图片描述

# 在虚拟机上测试上网,成功打开网址,说明可以上网

在这里插入图片描述

4.排错:
(1)如果网络配置都ok的话,但是ping不通路由器,一定是物理网卡坏了,删除网卡,重新添加网卡
(2)查看路由器的内核路由功能是否打开,确保全部打开
(3)查看路由器的火墙策略是否打开
(4)查看客户端的网关是否设定正确

猜你喜欢

转载自blog.csdn.net/wzt888_/article/details/83268027