Chinaunix
标题:
两台linux服务器互联问题
[打印本页]
作者:
sauer
时间:
2016-08-05 09:27
标题:
两台linux服务器互联问题
两台linux服务器A和B,各有两个网卡分别连上网线
A1----------B1 172.16.100.0/24
A2----------B2 192.168.100.0/24
A1和B1是172.16.100网段,A2和B2是192.168.100网段,
两台linux都已经设置了ip转发
请教B1怎么才能ping通A2,谢谢!
作者:
Riet
时间:
2016-08-05 11:05
中间加路由设备 或者你B1 B2其中一台有两个网卡
作者:
sauer
时间:
2016-08-05 11:12
Riet 发表于 2016-08-05 11:05
中间加路由设备 或者你B1 B2其中一台有两个网卡
不明白,linux本身不是有路由功能么
作者:
jixuuse
时间:
2016-08-05 12:35
子网不一样,你先看看网络基础吧
不同子网间通信需要三层设备进行转发
作者:
Riet
时间:
2016-08-05 13:50
回复
3#
sauer
或者你B1 B2其中一台有两个网卡
作者:
lyhabc
时间:
2016-08-05 22:39
Linux添加永久静态路由
实际上route命令就是控制路由器的优先级,优先级如下
直连(两个机器通过一根网线直接连接)-》静态路由(修改路由表)-》动态路由
直连我就不叙述了,一根网线只有一条路径,route命令控制的是静态路由修改机器的路由表
实现Windows和Linux主机之间不同网段通信
大家知道不同网段的两台机器是不能通信的,其实我们可以通过路由规则的方法让两台机器通信
如果两台机器都是真实机,我们只需要使用直连线,中间不经过任何交换机路由器就可以通信
如果两台真实机都连着交换机,那么就需要多买一个网卡(两台机器双网卡),一个网卡连交换机,一个网卡直接连接
示意图
图中两个机器都只有一个网卡,通过网线直接相连
然后在Windows和Linux各自添加一条路由规则
Windows 192.168.1.100
route add -p 192.168.0.0 mask 255.255.255.0 192.168.0.106 IF 12 //Windows添加
在cmd下执行上面命令
IF:网卡接口编号,可以通过route print查看
-p :表示添加永久路由
Linux 192.168.0.106
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 //Linux添加
dev:为网卡设备,这里是 eth0
添加完毕之后,Windows和Linux都可以互相ping通
上面的命令,Windows添加的是永久路由,而Linux只是暂时路由,重启机器或重启网络服务,路由规则就会消失
这时候需要在Linux添加永久路由
在/etc/sysconfig/ 路径下新建一个static-routes 文件
添加一行
any net 192.168.1.0/24 dev eth0
# cat /etc/sysconfig/static-routes
any net 192.168.1.0/24 dev eth0
然后重启网络服务:service network restart
这时候,无论在Linux里重启机器或重启网络服务,路由规则都不会消失虚拟机跟真实机的做法都是一样的,并没有差异
这样,即使虚拟机跟真实机的网段不一样,我们照样可以ssh我们的Linux虚拟机
原理
附:在linux下设置永久路由的方法:
1.在/etc/rc.local里添加 方法,这种方法重启网络服务之后就会失效
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254
2.在/etc/sysconfig/network里添加到末尾 ,这种方法只能添加默认网关
方法:
GATEWAY=gw-ip或者 GATEWAY=gw-dev
3./etc/sysconfig/static-routes : (没有static-routes的话就手动建立一个这样的文件)
any net 192.168.3.0/24 gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129
4.开启 IP 转发:
# echo "1" >/proc/sys/net/ipv4/ip_forward (临时)
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久开启)
如果在rc.local中添加路由会造成NFS无法自动挂载问题,所以使用static-routes的方法是最好的。无论重启系统和service network restart 都会生效
按照linux启动的顺序,rc.local里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs(NFS)之后才被执行的,
那也就是说在netfs(NFS)启动的时候,服务器上的静态路由是没有被添加的,所以netfs(NFS)挂载不能成功。
static-routes文件又是什么呢,这个是network脚本执行时调用的一个文件,这个文件的放置在/etc/sysconfig目录下,在network脚本中的位置是
复制代码
/etc/init.d/network:
159 # Add non interface-specific static-routes.
160 if [ -f /etc/sysconfig/static-routes ]; then
161 grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
162 /sbin/route add -$args
163 done
164 fi
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2