网卡配置:
1. 服务器有多网卡,除了网卡冗余策略(bond)。不同网卡不要配置相同网段,因为虽然ip不同,但是数据走的相同的网卡 (默认第一个网卡)
2. 一个路由表可以由多个网关,但是只有一个生效
3. 同网卡,同网段-路由示例:
4. 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
5. 结论:
它会实现从两张网卡进来的包,却从一张网卡出去,问题就产生了。假设eth0网卡有问题时,路由表里匹配到第一条后,依
然会走eth0网卡,而不会走eth1。
解决方法:比如多路由表或者双网卡绑定
路由转发:
route -n 查看路由,显示ip,不解析
route del default gw 100.1.1.254 删除默认路由
route add default gw 192.168.1.110 添加一个默认网关,把所有不知道的网络交给网关来转发
route add -net 192.168.2.0/24 dev eth0 对一个网络添加一个新的路由(另一个网段)/添加新网络通路
route del -net 192.168.2.0/24
模拟场景
三台虚拟主机的网络模式都是仅主机模式!
环境准备:
node1:10.1.1.1/24
作为网关服务器,开启路由转发功能/proc/sys/net/ipv4/ip_forward
node2:192.168.0.254/24
node3:172.16.0.254/24
要求:
实现不同网络(172.16.0.0/24和192.168.0.0/24)之间的互通,使用第三方主机node1作为路由进行转发
思路:
- 中间人node1,必须开启路由转发功能;
- 中间人node1即要有到达A网络,又能到达C网络的路
- node2主机(A网络)必须设置中间人node1作为自己的网关
- node3主机(C网络)必须设置中间人node1作为自己的网关
实现步骤:
1.node1服务器(中间人)完成以下任务
#1) 开启路由转发功能
临时开启:
[root@server ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@server ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@server ~]# cat /proc/sys/net/ipv4/ip_forward
1
永久开启:
[root@server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
2)分别添加到node2和node3两台主机所在的网络
[root@node1 ~]# route add -net 192.168.0.0/24 dev eth0
[root@node1 ~]# route add -net 172.16.0.0/24 dev eth0
[root@node1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 / 0.0.0.0 / 255.255.255.0 / U 0 0 0 / eth0
192.168.0.0 / 0.0.0.0 / 255.255.255.0 / U 0 0 0 / eth0
2. 分别配置node2和node3的IP和网关
[root@node2 ~]# route add -net 10.1.1.0/24 dev eth0
[root@node2 ~]# route add default gw 10.1.1.1
[root@node3 ~]# route add -net 10.1.1.0/24 dev eth0
[root@node3 ~]# route add default gw 10.1.1.1
3. 测试验证
1)中间主机分别ping node2和node3
2)node2和node3相互ping
总结:
- 不同网段(设备A,B)间的互通需要经过路由转发
- 路由转发需要专门的第三台设备(B)
- A,B设备需要配置与第三设备(B)的网络通路,添加网关,而且网关就是第三设备(B)的ip
- 第三设备(B)需要添加到设备A,B的网络通路,开启路由转发功能
- 验证第三设备(B)与A,B的胡同,验证A,B设备的互通性