发现什么事情都没有做,混沌的日子。算了 睡觉~
Post by tywtyw2002 on 2009, November 28, 7:17 AM
发现什么事情都没有做,混沌的日子。算了 睡觉~
Post by tywtyw2002 on 2009, November 13, 11:50 AM
最近改进了一下iptables策略感觉 网络质量好多了
# iptables -vnL
Chain INPUT (policy DROP 11295 packets, 2190K bytes)
pkts bytes target prot opt in out source destination
2080 333K ACCEPT 0 -- vlan1 * 172.17.10.1 0.0.0.0/0
1380 44160 ACCEPT 0 -- vlan1 * 172.17.1.1 0.0.0.0/0
0 0 DROP 0 -- br0 * 0.0.0.0/0 172.17.167.1
9
183 12320 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0
state INVALID
11820 1343K ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
15016 1457K ACCEPT 0 -- br0 * 0.0.0.0/0 0.0.0.0/0
15 840 ACCEPT 0 -- lo * 0.0.0.0/0 0.0.0.0/0
304 18240 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 REJECT tcp -- vlan1 * !192.168.1.0/24 0.0.0.0/0
tcp dpt:23 reject-with tcp-reset
0 0 REJECT tcp -- vlan1 * !192.168.1.0/24 0.0.0.0/0
tcp dpt:80 reject-with tcp-reset
1399K 129M DROP 0 -- vlan1 * 172.17.0.0/16 0.0.0.0/0
内网包直接drop掉1399k个 不知道是什么包
路由开机5天
# uptime
22:25:39 up 5 days, 3:56, load average: 0.08, 0.03, 0.03
iptables 昨天晚上配置的。(计数器清零)
这个结果我很惊讶。
看来学校的网络架构很恶心了,通过用抓包软件获得 广播包为80-90/S
今晚8点在线主机436台。 其中包括学校核心路由1太 dhcp1太 computer lab 核心机5台 web服务器3台 应该还有几台路由
可想而知网速为什么那么慢了。
都快广播风暴了。按理来说应该100台机器配一个路由来隔离广播域
事实上不知道是不是如此。 如果没错100台机器一个路由 广播包为80-90/S 太。。。。。了吧 肯定是广播风暴。
或者是在路由上开了arp代理? 但是按照默认网关是172.17.1.1 mask 255.255.0.0 可以确定只有一个路由没有分子网
40%的网络被无用的广播包占据。
网关至少65000个端口 刨去3000个常用的至少还有 60000个端口可以用在做nat
60000/400= 150 port/ip 。。。这个数字很保守了
可能还是主机配置的有些问题 端口大概只开了1w 所以会造成网络很慢。
没有具体数据先写这么多吧
对了峰值主机不一定是436台 oak 250人 max
pinahall至少500人 所以峰值大概在600台电脑 600台 影响网速的还是 广播包 和 nat端口 如果多家几台路由 分成100台主机的一个小网 估计性能提升不止是1倍2倍的了
Post by tywtyw2002 on 2009, November 1, 9:26 AM
前几天显得无聊弄个个asus的wl520gu 回来 52刀 价格还是不错的 主要是可以刷tomato 这样正好可以练习下linux的网关技术 ^_^
下面简单说下吧。
wl520gu 用的是博通的芯片4mflash 16m ddr 带个几台下bt的机器足够用了。我刷的是dualwan 改版的tomato。
好了下面说下实验的环境。学校的网关是172.17.1.1 采用dhcp,我利用自己的权限偷偷给了自己n个静态ip(静态dhcp列表)172.17.167.17/18/19
路由器绑定是172.17.167.19
打算把172.17.167.18绑到laptop上,172.17.167.17绑到bt server上面方便从学校内网的其他机器访问。
拓扑图

因为不论tomato、dd-wrt还是dualwan的web设置都是很简单的 所以直接ssh到 路由
telnet 192.168.1.1
用户名为root 不要输成admin。
进入后就是busybox busybox是个linux的命令行 他简化了linux 可以自己添加命令 主要用于工程机。 具体信心google吧。
先用ifconfig 查看下网卡状态
# ifconfig
br0 Link encap:Ethernet HWaddr 00:26:18:13:54:65
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:4738408 errors:0 dropped:0 overruns:0 frame:0
TX packets:4377015 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:796135268 (759.2 MiB) TX bytes:4205217353 (3.9 GiB)
eth0 Link encap:Ethernet HWaddr 00:26:18:13:54:65
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:40477302 errors:12636 dropped:0 overruns:3651 frame:3651
TX packets:3943571 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3945465567 (3.6 GiB) TX bytes:692054944 (659.9 MiB)
Interrupt:4 Base address:0x1000
eth1 Link encap:Ethernet HWaddr 00:26:18:13:54:67
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4741308 errors:0 dropped:0 overruns:0 frame:57195958
TX packets:4633764 errors:2023 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:862835253 (822.8 MiB) TX bytes:4266446464 (3.9 GiB)
Interrupt:13 Base address:0x5000
imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00
0-00
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:4181208 errors:0 dropped:0 overruns:0 frame:0
TX packets:4181001 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
RX bytes:4083558188 (3.8 GiB) TX bytes:4083286490 (3.8 GiB)
imq1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00
0-00
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:3052447 errors:0 dropped:0 overruns:0 frame:0
TX packets:3052447 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
RX bytes:476100316 (454.0 MiB) TX bytes:476100316 (454.0 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:467 errors:0 dropped:0 overruns:0 frame:0
TX packets:467 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:36671 (35.8 KiB) TX bytes:36671 (35.8 KiB)
vlan0 Link encap:Ethernet HWaddr 00:26:18:13:54:65
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:368198 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:67479636 (64.3 MiB)
vlan1 Link encap:Ethernet HWaddr 00:26:18:13:54:68
inet addr:172.17.167.19 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:40477302 errors:0 dropped:0 overruns:0 frame:0
TX packets:3575373 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3216874131 (2.9 GiB) TX bytes:624575308 (595.6 MiB)
vlan1就是wan1口
vlan0是wan2口 我把它禁用了
然后给vlan1增加ip
ifconfig vlan1:1 172.17.167.18 broadcast 172.17.255.255 netmask 255.255.0.0
ifconfig vlan1:2 172.17.167.17 broadcast 172.17.255.255 netmask 255.255.0.0
再用ifconfig查看
vlan1:1 Link encap:Ethernet HWaddr 00:26:18:13:54:68
inet addr:172.17.167.18 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
vlan1:2 Link encap:Ethernet HWaddr 00:26:18:13:54:68
inet addr:172.17.167.17 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
多出2个vlan1 这样ip就绑定对了 你再试试用几个ip能访问到80端口不。
为了安全在iptables先做下安全
iptables -A INPUT -i vlan1 -p tcp --dport 23 -s ! 192.168.1.1/255.255.255.0 -j REJECT --reject-with tcp-reset
iptables -A INPUT -i vlan1 -p tcp --dport 80 -s ! 192.168.1.1/255.255.255.0 -j REJECT --reject-with tcp-reset
幽默点对于非192.168.1.1/24这段ip 访问路由器 全部返回 tcp-reset 就是连接重置。
开始进行nat
先把192.168.1.254 nat 到172.17.167.17上
iptables -t nat -I POSTROUTING -s 192.168.1.1/255.255.255.0 -d 192.168.1.254 -j SNAT --to-source 172.17.167.17
iptables -t nat -I PREROUTING -d 172.17.167.17 -j DNAT --to-destination 192.168.1.254
iptables -t nat -I POSTROUTING -o vlan1 -s 192.168.1.254 -j SNAT --to 172.17.167.17
iptables -I FORWARD -i vlan1 -d 192.168.1.254 -j ACCEPT
在吧192.168.1.118 nat 到172.17.167.18上
iptables -t nat -I POSTROUTING -s 192.168.1.1/255.255.255.0 -d 192.168.1.118 -j SNAT --to-source 172.17.167.18
iptables -t nat -I PREROUTING -d 172.17.167.18 -j DNAT --to-destination 192.168.1.118
iptables -t nat -I POSTROUTING -o vlan1 -s 192.168.1.118 -j SNAT --to 172.17.167.18
iptables -I FORWARD -i vlan1 -d 192.168.1.118 -j ACCEPT
ok 这样nat 就ok了
为了开机自动执行脚本
把
ifconfig vlan1:1 172.17.167.18 broadcast 172.17.255.255 netmask 255.255.0.0
ifconfig vlan1:2 172.17.167.17 broadcast 172.17.255.255 netmask 255.255.0.0
加到wan联网时
把
iptables -t nat -I POSTROUTING -s 192.168.1.1/255.255.255.0 -d 192.168.1.254 -j SNAT --to-source 172.17.167.17
iptables -t nat -I PREROUTING -d 172.17.167.17 -j DNAT --to-destination 192.168.1.254
iptables -t nat -I POSTROUTING -o vlan1 -s 192.168.1.254 -j SNAT --to 172.17.167.17
iptables -I FORWARD -i vlan1 -d 192.168.1.254 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.1.1/255.255.255.0 -d 192.168.1.118 -j SNAT --to-source 172.17.167.18
iptables -t nat -I PREROUTING -d 172.17.167.18 -j DNAT --to-destination 192.168.1.118
iptables -t nat -I POSTROUTING -o vlan1 -s 192.168.1.118 -j SNAT --to 172.17.167.18
iptables -I FORWARD -i vlan1 -d 192.168.1.118 -j ACCEPTiptables -A INPUT -i vlan1 -p tcp --dport 23 -s ! 192.168.1.1/255.255.255.0 -j REJECT --reject-with tcp-reset
iptables -A INPUT -i vlan1 -p tcp --dport 80 -s ! 192.168.1.1/255.255.255.0 -j REJECT --reject-with tcp-reset
加入到防火墙中
结束
目前严重策略路由中 过几天写一下