Linux下路由配置命令
1. 添加主机路由
route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw 192.168.1.1
2. 添加网络路由
route add -net 192.168.1.11 netmask 255.255.255.0 eth0 route add -net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1 route add -net 192.168.1.0/24 eth0 route add -net 192.168.1.0/24 gw 192.168.1.1
3. 添加默认网关
route add default gw 192.168.1.1
4. 删除路由
route del -host 192.168.1.11 dev eth0
5. 删除默认路由
route del default gw 192.168.1.1
Linux下配置永久路由的几种方式
1. 在/etc/rc.local
里添加路由信息
route add -net 192.168.1.0/24 dev eth0 # 或者 route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
2. 在/etc/sysconfig/network
里追加
GATEWAY=[网关IP或者网关网卡名称]
3. /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 192.168.1.1 # 或者 any net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
4. 开启IP转发
1.临时开启
echo "1" > /proc/sys/net/ipv4/ip_forward
2.永久开启
vim /etc/sysctl.conf
修改net.ipv4.ip_forward=1
实验:配置双网卡主机同时使用内网和外网
本实验的背景是笔者在实践中遇到过的一个问题,本实验尽量还原当时的网络环境。仅当做一份笔记,同时分享给遇到此问题的同学。
奈何我现在没有硬件呀(T_T)...只能拿VMware Workstation和eNSP来模拟实验环境了。
问题背景
如下图拓扑所示,如果去掉client
节点,内网和外网就是相互隔离的网络。
但是实际情况是,client
节点既需要访问外网资源,又需要访问内网资源,而client
只能配置一条默认路由。如果将默认路由配置在外网网卡,client
可以访问172.16.2.0/24
网络的资源和外网的资源,但是其余内网资源将无法访问;如果将默认路由配置在内网网卡,client
虽然可以完全访问内网资源,但是却不能访问外网资源。
怎么解决呢?
实验环境
- VMware Workstation Pro
- 4台最小化安装的CentOS 7.3虚拟机
- 华为eNSP模拟器
实验拓扑
去掉client
节点,内网和外网是隔离的网络。
外网网络为10.0.0.0/16
,代表运营商的接入网;
内网网络为172.16.0.0/16
,代表内网部分(该部分为了安全,不允许对互联网的直接访问)。
其中:
client
为双网卡的主机,两网卡网段分别为10.0.0.0/16
、172.16.2.0/24
;server2
为172.16.2.0/24
网段的服务器;server3
为172.16.3.0/24
网段的服务器;server4
为172.16.4.0/24
网段的服务器。
网络规划
IP分配
虚机网卡类型
内网路由器如何实现呢?
VMnet2、VMnet3、VMnet4均为仅主机模式,那么常规情况下,只有其网络内的各计算机之间才可以通信,要怎样才能实现三个网络间的通信呢?
答案是使用华为eNSP模拟器中的Cloud。使用Cloud设备可以将eNSP中的路由器和VMware虚拟机的网卡连接起来。
配置内网环境
配置eNSP的路由器
接口
IP地址
子网掩码
G0/0/0
172.16.2.254
255.255.255.0
G0/0/1
172.16.3.254
255.255.255.0
G0/0/2
172.16.4.254
255.255.255.0
<huawei>system-view [huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 172.16.2.254 255.255.255.0 [Huawei-GigabitEthernet0/0/0]quit [huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]ip address 172.16.3.254 255.255.255.0 [Huawei-GigabitEthernet0/0/1]quit [huawei]int g0/0/2 [Huawei-GigabitEthernet0/0/2]ip address 172.16.4.254 255.255.255.0 [Huawei-GigabitEthernet0/0/2]quit [huawei]
修改虚机的IP地址
client
server2
server3
server4
网卡名称
IP地址
子网掩码
默认网关
备注
ens33
172.16.4.11
255.255.255.0
172.16.4.254
在server上搭建HTTP服务
以server2
为例:
使用Python创建一个简单的HTTP服务
cd ~ echo "server2" > index.html python -m SimpleHTTPServer 8080
对照试验
在client
上访问外网
ping www.baidu.com -c 4
在client
上访问server2
ping 172.16.2.11 -c 4
在client
上访问server3
ping 172.16.3.11 -c 4
在client
上访问server4
ping 172.16.4.11 -c 4
在对照试验中可以看到,在client
将默认网关配置在外网网卡的情况下,双网卡的client
可以正常访问外网和内网的172.16.2.0/24
部分,而172.16.3.0/24
和172.16.4.0/24
是不能访问到的。
为什么client
能访问172.16.2.0/24
网络,而不能访问172.16.0.0/16
的其余网络呢?
因为client
位于172.16.2.0/24
网络内,在网络内进行通信,数据包不用发送至其他网络,当然默认网关也就不起作用了。
而当client
与172.16.0.0/16
的其余网络通信时,client
的路由表没有记载发往目的地址的路径,所以client
只能傻傻的把数据包发送给默认网关,从此数据包和真正的目的地址就“南辕北辙”了。当然ping的结果就是网络不可达。
路由配置
在client
上查看路由表
route
在client
上添加路由
route add -net 172.16.0.0/16 gw 172.16.2.254
永久配置,则在/etc/rc.local
里添加路由信息
route add -net 172.16.0.0/16 gw 172.16.2.254
查看路由表
route
实验结果
检测连通性
ping www.baidu.com -c 4
ping 172.16.2.11 -c 4
ping 172.16.3.11 -c 4
ping 172.16.4.11 -c 4
访问内外网资源
curl http://www.baidu.com/
curl http://172.16.2.11:8080/index.html
curl http://172.16.3.11:8080/index.html
curl http://172.16.4.11:8080/index.html
解决的办法很简单,就是1条命令而已。
但是蕴藏在这条命令背后的原理、概念、理论,则需要我们进行深究!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。