简介
公司总部在A, 有一个子公司在B,最近做了一个客服系统,使用专线互通。
之前A公司地址在192.168.0.0/24,有dhcp。
B公司地址在192.168.78.0/24,没有dhcp,有野路由(上连线接入到了LAN口)。
问题
问题就出在这个野路由上面,dhcp通过专线从B进入到A,获得了野路由的地址分配,而且不止一个,导致总部这边的机器无法上网。
第一波处理方案
暂时的处理方案是,在A地方采用手工固定地址的方式,让用户临时可以上去网。
然后让B的网管将专线拔掉。
然后让B处理野路由,找出来。
A地的网管通过arp-scan –local-net xxx.0/24 扫描主机,可以把192.168.1.1这种找出来,基本可以得出一共有几个野路由。
第二波处理方案
是否可以采用净化血的方式,将dhcp包过滤掉呢,如果是三层交换机,这个也好办了, dhcp snooping虽然不知道具体,但是知道是干这个事儿的。
但是我们的统统是傻瓜交换机。
好吧,我们可以尝试笔记本+ usb网卡,用ebtables的方式进行过滤。
或者我们可以使用ubnt这种专业的企业路由器进行。
接下来重点说ubnt的方法。
购买了, eth0地址192.168.1.1 账号密码都是ubnt,登录后
set interfaces bridge br0
set interfaces bridge br0 address 10.0.1.111/24
set interfaces ethernet eth1 bridge-group bridge br0
set interfaces ethernet eth2 bridge-group bridge br0
set interfaces ethernet eth3 bridge-group bridge br0
commit
ebtables -F
ebtables -A FORWARD -p ipv4 --ip-proto udp --ip-source-port 67:68 -j DROP
ebtables -L
ebtables-save
我们就是要eth1 eth2 eth3进入br0, 然后在里面将udp的包过滤掉。
效果杠杠的
部署策略之前,dhcp包有来有回的,可以获得地址
部署策略之后,只有dhcp请求包,永远等不到reponse了,因为我们的br0里面已经将dhcp包过滤掉了。
遗留问题
1.策略如果加上-i br0会失效,但是不加的话,岂不是所有的口子都会过滤掉dhcp
ebtables -F
ebtables -A FORWARD -i br0 -p ipv4 --ip-proto udp --ip-source-port 67:68 -j DROP
ebtables -L
2.ebtables不是etables
由于过去经常使用iptables,所以下意识的以为二层的网络可以通过etables进行过滤,但是实际上是通过ebtables进行的,默认好像是安装的,我区分不开了。
3.ubnt的switch0和br0
这个地方比较扯,默认是有switch0的,但是eth1包没法抓,部署了策略也不生效,最后才搞到br0.
4.ubnt的软件更新源,突然发现重启后,配置的sources.list消失了
deb http://http.us.debian.org/debian/ wheezy main contrib non-free
deb http://http.us.debian.org/debian/ wheezy-updates main contrib non-free
deb http://http.us.debian.org/debian/ wheezy-backports main contrib non-free
deb http://http.us.debian.org/debian/ wheezy-proposed-updates main contrib non-free
deb http://http.us.debian.org/debian/ wheezy-backports-sloppy main contrib non-free