1. router和switch
交换机工作在数据链路层,每端口高速转发数据,维护一个PORT对MAC地址表,VLAN就处在这一层
路由器工作在网络层,选择路径,转发数据包,维护PORT对IP地址表;因为在IP层,可以避免广播风暴;另外对于跨网段连接交换机无法做到,路由可以NAT来实现跨网段通信
2. 开源路由
网络上很多开源的路由协议,比如vyatta ddwrt openwrt,都用虚拟机模拟了一番,和实际硬件路由器一样好用,虚拟机配置是,一个桥接到实际网络段,搭建的环境路由IP网段192.168.18.*,就相当于路由的WAN;一个是虚拟机的内部网卡VNET2,定义为192.168.10.*,相当于接LAN;另外开一个虚拟机RH9连接虚拟机的内部网卡VNET2
3. vayatta
eth3就是WAN,eth1就是LAN,配置网关为192.168.10.1;这个时候RH9可以自动拿到IP:192.168.10.*,简直和硬件路由器一样
vyatta:/# ifconfig
eth3 Link encap:Ethernet HWaddr 00:0c:29:81:61:18
inet addr:192.168.18.10 Bcast:192.168.18.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe81:6118/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2662 errors:0 dropped:0 overruns:0 frame:0
TX packets:552 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:176534 (172.3 KiB) TX bytes:33551 (32.7 KiB)
Interrupt:16 Base address:0x1080
eth1_rename Link encap:Ethernet HWaddr 00:0c:29:81:61:22
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe81:6122/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6122 (5.9 KiB) TX bytes:1210 (1.1 KiB)
Interrupt:17 Base address:0x1400
4. dd-wrt
这个是开源的无线AP路由器,还可以WEB页面配,可以DHCP还是静态IP,比自己用的路由牛多了,
root@DD-WRTx86:~# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:29:1B:82:73
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:205 errors:0 dropped:0 overruns:0 frame:0
TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:16709 (16.3 KiB) TX bytes:7780 (7.5 KiB)
br0:0 Link encap:Ethernet HWaddr 00:0C:29:1B:82:73
inet addr:169.254.255.1 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth0 Link encap:Ethernet HWaddr 00:0C:29:1B:82:69
inet addr:192.168.18.116 Bcast:192.168.18.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:745 errors:0 dropped:0 overruns:0 frame:0
TX packets:145 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:54544 (53.2 KiB) TX bytes:6088 (5.9 KiB)
Interrupt:10 Base address:0x1400
eth1 Link encap:Ethernet HWaddr 00:0C:29:1B:82:73
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:205 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19579 (19.1 KiB) TX bytes:8080 (7.8 KiB)
Interrupt:9 Base address:0x1480
root@DD-WRTx86:~# iwconfig
lo no wireless extensions.
imq0 no wireless extensions.
imq1 no wireless extensions.
ifb0 no wireless extensions.
ifb1 no wireless extensions.
teql0 no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
br0 no wireless extensions.
bond0 no wireless extensions.
5. openwrt
这是DD-WRT前身,无页面,全命令,RH9可以tenlent到192.168.1.1上去配置这个路由器
root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr 00:0C:29:E9:A2:2D
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:218 errors:0 dropped:0 overruns:0 frame:0
TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:20421 (19.9 KiB) TX bytes:8604 (8.4 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:E9:A2:23
inet addr:192.168.18.178 Bcast:192.168.18.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:105 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14467 (14.1 KiB) TX bytes:1333 (1.3 KiB)
Base address:0x1070 Memory:ec820000-ec840000
eth1 Link encap:Ethernet HWaddr 00:0C:29:E9:A2:2D
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:521889 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:91226070 (86.9 MiB) TX bytes:8493 (8.2 KiB)
Base address:0x1078 Memory:ec840000-ec860000
因为openwrt和dd-wrt都没有实际的AP,所有没有无线网卡,另外这个是虚拟机模拟的,eth0和eth1都是有线口,一个是WAN,一个是LAN,LAN口eth1绑定br,这样LAN用户可以访问192.168.1.1
6. 实际的路由
下面是openwrt官方的硬件图,和它对应的ifconfig
eth0是有线接口(含WAN和LAN),eth2 是无线LAN,为了使得无线和有线LAN 都可以访问192.168.1.1 ,把 eth0 和 eth2 加到 br0 上面,然后给 br0 绑定了192.168.1.1,不管是有限LAN还是无线LAN都可以访问192.168.1.1
有线接口的LAN和WAN是通过vlan来划分的,eth0的VLAN1拿到公网IP
按理来说只有4个LAN口是可以当交换机来用的,感觉WAN和4个LAN就是一个交换机,难道只用VLAN分开后软件加3层路由功能就可以了?
root@comman:~# ifconfig
br0 Link encap:Ethernet HWaddr 00:06:25:DA:1E:AD
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1895257 errors:0 dropped:0 overruns:0 frame:0
TX packets:1715280 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:882547891 (841.6 MiB) TX bytes:1190856407 (1.1 GiB)
eth0 Link encap:Ethernet HWaddr 00:06:25:DF:90:81
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:3695441 errors:0 dropped:0 overruns:0 frame:0
TX packets:3674824 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2216675196 (2.0 GiB) TX bytes:2141503118 (1.9 GiB)
Interrupt:3
eth2 Link encap:Ethernet HWaddr 00:06:25:DA:1E:AD
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:50309 errors:0 dropped:0 overruns:0 frame:15659
TX packets:69983 errors:33 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6256618 (5.9 MiB) TX bytes:77584248 (73.9 MiB)
Interrupt:6 Base address:0×2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1063 (1.0 KiB) TX bytes:1063 (1.0 KiB)
vlan1 Link encap:Ethernet HWaddr 00:06:25:DF:90:81
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1743209 errors:0 dropped:0 overruns:0 frame:0
TX packets:1920871 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1190884315 (1.1 GiB) TX bytes:927881045 (884.8 MiB)
vlan2 Link encap:Ethernet HWaddr 00:06:25:DF:90:81
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:1951915 errors:0 dropped:0 overruns:0 frame:0
TX packets:1753960 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:959278641 (914.8 MiB) TX bytes:1196757129 (1.1 GiB)
还有一种无线AP,就是没有路由功能的,就是交换功能+AP,专门做无线中继的,这个应该更简单的
如果两个4口路由器连接,应该可以这样做
一个路由WAN口上行,四个LAN中一个连下一个路由的WAN,下一个路由IP设置不同网段,这样下一个路由也可以上网的,但是数据都经过CPU了
也可以一个路由WAN口上行,四个LAN中一个连下一个路由的LAN,下一个路由IP设置同一网段,这样就当一个交换机用,但是少一个LAN口,好处是数据不经过CPU了