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了