马哥20-怎么使用虚拟机实现主机路由?


在这里插入图片描述

Internet层协议

IP协议
ICMP协议
/proc/sys/net/ipv4/icmp_echo_ignore_all 关闭ICMP回应
ARP协议
RARP协议

基本网络配置

将Linux主机接入到网络,需要配置网络相关设置。一般包括如下内容:
主机名(hostname)
IP地址和子网掩码(IP/netmask)
路由(默认网关gateway)
主DNS服务器(dns)
次DNS服务器
CentOS 6 网卡名称

以太网:eth[0-9]
ppp:ppp[0-9]
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules

ARP表
arp -n

路由表

Destination:目标网络ID,主机IP,0.0.0.0/0默认路由
Gateway:把数据报文交给下一个路由临近当前设备的接口IP
Genmask:netmask
Metric:花费越小优先级越高
Ifac:接口,表示当前设备在哪个网卡发出去,才能到达Destination

命令:route

路由管理命令
查看:route -n
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

#目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

#默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1

#删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

#目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3

#目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
配置动态路由
通过守护进程获取动态路由
•安装quagga包
•支持多种路由协议:RIP、OSPF和BGP
•命令vtysh配置

命令:netstat

显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e]] [--program|-p]
[OPTION]注释
-ttcp协议相关
-uudp协议相关
-wraw socket相关
-l处于监听状态
-a所有状态
-n以数字显示IP和端口
-e扩展格式
-p显示相关进程及PID
常用组合:
-tan, -uan, -tnl, -unl
显示路由表:
netstat {–route|-r} [–numeric|-n]
-r: 显示内核路由表
-n: 数字格式
显示接口统计数据:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0

命令:ip

配置Linux网络属性:ip 命令(显示、操作路由,设备,路由策略和隧道)
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT ={ link | address | addrlabel | route | rule | neigh | 
		ntable | tunnel | tuntap | maddress | mroute | mrule |
		 monitor | xfrm | netns | l2tp | tcp_metrics | token | macsec }

 OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
            -h[uman-readable] | -iec |
            -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link }|
            -4 | -6 | -I | -D | -B | -0 |
            -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
            -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
            -rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}

命令的使用

ip link - 网卡配置
	set dev/IFACE
		up and down:激活或禁用指定接口(也可以ifup/ifdown)
		name NETNAME(修改网卡名)
	show [dev IFACE]:指定接口

ip addr - IP地址配置
	add/del IP/mask dev DEVICE   (添加/删除IP)
		[scope {global|link|host}] - 指明作用域(全局/仅链接/本机)
		[label LABEL] - 指明网卡别名
		[broadcast ADDRESS]:指明广播地址
	show - 查看网络
		[dev DEVICE]
		[label PATTERN]
		[primary and secondary]
	flush - 刷新网卡,使用格式同show

ip route - 路由配置
	add/del NET/MASK via GATEWAY_IP [dev IFACE] [src SOURCE_IP]
		default - 默认路由
	flush [dev IFACE] [via GATEWAY_IP] - 清空路由表
	show/list - 显示路由

实验准备

路由思维导图

在这里插入图片描述

在这里插入图片描述

虚拟机实验环境

#关闭防火墙
systemctl disable --now firewalld

#关闭selinux
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

重新设置网卡名

#在你的虚拟机执行以下命令,可重新设置你的网卡为eth开头,默认从eth0开始,这样方便咱们识别网卡,以便进行实验。
sed -ir '/GRUB_CMDLINE_LINUX/s@"$@ net.ifnames=0"@' /etc/default/grub

grub2-mkconfig -o /etc/grub2.cfg

配置虚拟机网卡

如图所示,实验所需三台虚拟机都需要连接两个网段,所以都需要配置两个网卡。在设置网卡时,要把对应的网卡设置到对应的网段。下面是实验的范例,都是根据路由导图走的:
PC1
    eth0:172.10.0.0/16 #桥接网卡

Router1:
    eth0:172.10.0.0/16 #桥接网卡
    eth1:10.0.0.0/8 #仅主机网卡

Router:
    eth0:10.0.0.0/8 #仅主机网卡
    eth1:192.168.39.0/24 #NAT网卡

Router:
    eth0:192.168.39.0/24 #NAT网卡
    eth1:172.20.0.0/24 #桥接网卡

PC2:
    eth0:172.10.0.0/24 #桥接网卡

配置主机

配置PC1

1.ifconfig eth0 172.10.0.10/16

2.route add -net 172.10.0.0/16 dev eth0

3.route add default gw 172.10.0.100 dev eth0

4.route -n #查看路由表

5.ip a #查看ip地址

配置PC2

1.ifconfig eth0 172.20.0.20/24

2.route add -net 172.20.0.0/24 dev eth0

3.route add default gw 172.20.0.200 dev eth0

4.route -n #查看路由表

5.ip a #查看ip地址

配置路由器

配置Router1

1.ifconfig eth0 172.10.0.100/16

2.ifconfig eth1 10.0.0.1/8

3.route add -net 172.10.0.0/16 dev eth0

4.route add -net 10.0.0.0/8 dev eth1

5.route add -net 192.168.39.0/24 gw 10.0.0.2 dev eth1 

6.route add -net 172.20.0.0/24 gw 10.0.0.2 dev eth1 

7.echo 1 > /proc/sys/net/ipv4/ip_forward  #开启路由转发协议

配置Router2

1.ifconfig eth0 10.0.0.2/8

2.ifconfig eth1 192.168.39.10/24

3.route add -net 10.0.0.0/8 dev eth0

4.route add -net 192.168.39.0/24 dev eth1

5.route add -net 172.10.0.0/16 gw 10.0.0.1 dev eth0 

6.route add -net 172.20.0.0/24 gw 192.168.39.100 dev eth1 

7.echo 1 > /proc/sys/net/ipv4/ip_forward  #开启路由转发协议

配置Router3

1.ifconfig eth0 192.168.39.100/24

2.ifconfig eth1 172.20.0.200/24

3.route add -net 192.168.39.0/24 dev eth0

4.route add -net 172.20.0.0/24 dev eth1

5.route add -net 172.10.0.0/16 gw 192.168.39.10 dev eth1 

6.route add -net 10.0.0.0/8 gw 192.168.39.10 dev eth1 

7.echo 1 > /proc/sys/net/ipv4/ip_forward  #开启路由转发协议

就此所有的设备就全部配置好了,所有网段是可以相互ping通的,因为实验环境不同,所以具体情况具体分析。愿天下没有难写的代码!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值