
1、首先检查主机的网络设置,确保主机的网络连接是可用的;
2、查看linux虚拟机的网络设置,确保它们正确配置;
3、检查主机和虚拟机之间的网络连接,确保它们正确配置;
4、检查路由器的设置,确保它们正确配置;
5、检查防火墙的设置,确保它们正确配置;
6、尝试重新启动主机和虚拟机,重新建立网络连接;
7、如果以上步骤都无法解决问题,可以尝试重新安装linux虚拟机,以确保正确的网络设置。
平时工作经常需要配置路由,接下来总结一下linux服务器配置路由的方法。
1、首先看一下本机的网路环境网络信息及路由信息:ip addrroute -n。
2、接着使用route命令添加一条静态路由:route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1。
3、然后使用route命令添加一条路由,并指定eth1网卡:route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth1。
4、接着使用route命令添加一条指向某一个主机的路由:route add -host 192.168.5.125 gw 192.168.2.1 。
5、最后使用ip命令添加一条静态路由,并指定从eth1网卡收发数据:ip route add 192.168.7.0/24 via 192.168.2.1 dev eth1,如下图所示添加静态路由就完成了。
Linux 路由需要记住两点:跨网段通信需要经过路由;Linux 本身就是一台路由器。
开启路由功能
$ cat/proc/sys/net/ipv4/ip_forward
如果值为 1,表示开启了路由功能,如未开启,需要在 /etc/sysctl.conf 中设置:
net.ipv4.ip_forward=1
然后执行 sysctl -p 使之生效。
实践
创建两个网络 namespace:
$ ip netns add ns1
$ ip netns add ns2
创建两对 veth-pair,一端分别挂在两个 namespace 中:
$iplinkadd v1type veth peer name v1_r$iplinkadd v2type veth peer name v2_r$iplink setv1netns ns1$iplink setv2netns ns2
分别给两对 veth-pair 端点配上 IP 并启用:
$ ip a a 10.10.10.1/24 dev v1_r$ ip l s v1_r up$ ip a a 10.10.20.1/24 dev v2_r$ ip l s v2_r up$ ip netnsexecns1 ip a a 10.10.10.2/24 dev v1$ ip netnsexecns1 ip l s v1 up$ ip netnsexecns2 ip a a 10.10.20.2/24 dev v2$ ip netnsexecns2 ip l s v2 up
测试:
$ ip netnsexecns1 ping 10.10.20.2
发现不通。
添加路由
查看路由:
$ ip netnsexecns1 route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 v1
只有一条直连路由,没有去往 10.10.20.0/24 网段的路由,怎么通?那就给它配一条:
$ ip netnsexecns1 route add -net 10.10.20.0 netmask 255.255.255.0 gw 10.10.10.1$ ip netnsexecns1 route -n
同理也给 ns2 配上去往 10.10.10.0/24 网段的路由:
$ ip netnsexecns2 route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.20.1$ ip netnsexecns2 route -n
再次测试,发现可以 ping 通了:
$ ip netnsexecns1 ping 10.10.20.2
总结
Linux 本身是一台路由器。
上面的实验使用 namespace 效果和使用虚拟机是一样的,关键是知道有这个功能,知道怎么用就差不多了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)