一、路由的分类
1、软路由:依靠软件+系统设置完成路由功能。常见操作就是刷openwrt固件
2、硬路由:专业的路由设备,比如华为路由器
二、mac地址表、ARP表、路由表概念
1、mac地址表:记录MAC地址和端口的映射关系,代表了交换机从哪个端口学习到了某个MAC地址,交换机把这个信息记录下来,后续交换机需要转发数据的时候就可以根据报文的目的MAC地址去根据MAC地址表转发数据。
华为网络设备上可以通过dis mac-address 查看本地mac的地址表的信息
2、ARP表:记录IP地址和MAC地址对应关系的表项。
华为网络设备上可以通过dis arp 查看本地arp表的信息
<HUAWEI-YEWU>dis arp all
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN
------------------------------------------------------------------------------
192.168.0.6 e483-2607-b2fb I - Vlanif8
192.168.0.5 5046-4ab9-f751 20 D-0 XGE0/0/32
8
192.168.2.254 e483-2607-b2fb I - Vlanif20
192.168.2.145 e43d-1a2c-f484 18 D-0 Eth-Trunk5
20
192.168.2.144 e43d-1a2c-f43c 10 D-0 Eth-Trunk6
20
192.168.2.146 e43d-1a2c-f460 10 D-0 Eth-Trunk4
20
192.168.2.147 e43d-1a2c-e11c 10 D-0 Eth-Trunk3
20
192.168.2.148 e43d-1a2d-2fb8 10 D-0 Eth-Trunk2
20
192.168.2.149 e43d-1a2d-3120 19 D-0 Eth-Trunk1
20
------------------------------------------------------------------------------
Total:9 Dynamic:7 Static:0 Interface:2
3、路由表:路由表就是路由器用于指导数据包如何转发的表项,记录了去往目的IP的下一跳去哪里
华为网络设备上可以通过display ip routing-table 查看本地路由表的信息
三、Linux 路由
1、三种查看方式
(1)netstat -nr
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 10.1.1.1 0.0.0.0 UG 0 0 0 br0 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 10.1.4.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-69fc5c18a652 192.168.32.0 0.0.0.0 255.255.240.0 U 0 0 0 br-6cac1b29cce9 192.168.48.0 0.0.0.0 255.255.240.0 U 0 0 0 br-fc595b0fe16c 192.168.64.0 0.0.0.0 255.255.240.0 U 0 0 0 br-96db9a133881
(2)route -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.1.1.1 0.0.0.0 UG 425 0 0 br0 10.1.1.0 0.0.0.0 255.255.255.0 U 425 0 0 br0 10.1.1.0 0.0.0.0 255.255.255.0 U 425 0 0 br0 10.1.1.0 0.0.0.0 255.255.255.0 U 425 0 0 br0 10.1.4.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-69fc5c18a652 192.168.32.0 0.0.0.0 255.255.240.0 U 0 0 0 br-6cac1b29cce9
(3)ip route (list/show)
default via 10.1.1.1 dev br0 proto static metric 425 10.1.1.0/24 dev br0 proto kernel scope link src 10.1.1.3 metric 425 10.1.1.0/24 dev br0 proto kernel scope link src 10.1.1.85 metric 425 10.1.1.0/24 dev br0 proto kernel scope link src 10.1.1.84 metric 425 10.1.4.0/24 dev wg0 proto kernel scope link src 10.1.4.1 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 172.19.0.0/16 dev br-69fc5c18a652 proto kernel scope link src 172.19.0.1 192.168.32.0/20 dev br-6cac1b29cce9 proto kernel scope link src 192.168.32.1 192.168.48.0/20 dev br-fc595b0fe16c proto kernel scope link src 192.168.48.1
2、添加路由:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev If]
目标:192.168.40.211 网关:192.168.40.1(必须与本地地址在同一网络)
route add -host 192.168.40.211 gw 192.168.40.1 dev ens33
ip route add TARGET via GW [dev IFACE] [src SOURCE_IP]
(dev表示流出的接口,via:经由下一跳)
ip route add 192.168.1.3 via 172.16.0.1 dev eth0 ip route add 192.168.0.0/24 via 172.16.0.1
注意TARGET中的格式:
主机路由:IP
网络路由:NETWORK/MASK
ip route add 192.168.40.132 via 192.168.40.1 dev ens33
3、 删除路由:
ip route del IP
写在配置文件永久生效
vim /etc/rc.local
实际案例
uos系统桌面版,ip也配置在桌面(网卡配置文件为空),ansible setup模块获取不到ip地址
ip route add default via 192.168.1.1 dev 网卡名
4、多网卡路由的问题(有待整理)
Linux ARP特性 Linux主机有这么一个特性,假设我们的主机上有两块网卡,比如eth0,eth1 当arp请求eth1的mac地址的时候,eth1会答复,这个是理所当然的,但是eth0也会“好心”的帮eth1回答这个arp请求; 要防止这样的话,就需要更改下我们的一些内核参数: net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.all.arp_ignore = 1 正常情况下只写第二条就是了,all 是指所有设备的interface,当all和具体的interface比如lo,按照最大的值生效; 另外一个linux的特性就是,对于一个从realserver发出的arp请求,其源IP是VIP,而出口不会是lo,这里假设是eth0,那么这个arp请求包里里面,源IP就是VIP,源MAC是eth0的mac,目的IP是网关,那么路由器在接收到这个请求的时候,会将将自己的相应接口的硬件地址放在arp响应包中,同时将请求包中的源IP及MAC放在arp高速缓存中,那这下可就乱套了,就会使真正的VIP得不到正确的请求了. 这是因为,正常的情况下,arp的请求中源IP是出去的所在接口的地址,mac也是出去的接口的mac,但linux在默认情况下却不是这样的,如果一个接口发出的arp请求须经另一个出口出去的时候,源IP就不是所出去接口的IP,那么将内核参数设置为 2 相应的解决了这个问题。 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2
https://www.cnblogs.com/kaishirenshi/p/10394754.html
实践:物理服务器两个光口配置了bond,一个电口配置静态ip,笔记本直连电口,ping不通局域网内部的ip。
添加路由
sudo ip route add 192.168.20.103 via 192.168.20.254 dev bond0
四、windos 路由
1、添加路由
route add 80.47.1.0 mask 255.255.255.0 160.5.1.254
注:要去的网段:80.47.1.0 本机的网关:160.5.1.254
2、追踪路由
tracert 10.72.64.10 traceroute 10.72.64.10 ##Linux版本
五、网络设备路由
1、路由器设备
两种选择,第一个是所有都映射出去,第二个只映射指定端口
华为路由器将 0/0/3 接口开启地址转换(外部地址 10.xx.8.144 转到内部 192.168.2.xx)
system-view interface gigabitethernet 0/0/3 nat server protocol tcp global 10.xx.8.144 inside 192.168.2.xx