Annak érdekében hogy ezt megakadályozzam a következő beállításokkal próbálkozom.
ebtables modulokat töltök be: - valójában az ebt_ip modul kivételével mind betöltődne magától. -
$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
8139too
8139cp
loop
lp
p4-clockmode
w83627hf
nf_conntrack_ftp
nf_conntrack_tftp
#add ebtables modules
ebtables
ebtable_filter
ebt_ip
A kliens és a szerver ugyanazokat a szkripteket használja, - természetesen néhány fix paraméter megváltoztatásával - ezért van a kavarás a változókkal a szkript elején.
$ cat up.sh
#!/bin/bash
netaddr() {
local OIFS IFS IPA NM IP MASK
OIFS=$IFS; IFS="."; IP=( $1 ); MASK=( $2 ); IFS=$OIFS
for i in {0..3}; do
echo -n "$(( ${IP[i]} & ${MASK[i]} ))$([ $i -lt 3 ] && echo ".")"
done
}
DIP=192.168.50.0
DMASK=255.255.255.0
# br0 tap1 1500 1574 192.168.50.51 255.255.255.0 init
BR="$1"; shift
DEV="$1"; shift
MTU="$1"; shift
BUF="$1"; shift
if [ "$1" ]; then
IP="$1"; shift
MASK="$1"; shift
else
IP=$DIP
MASK=$DMASK
fi
NET="$(netaddr "$IP" "$MASK")"
/sbin/ip link set "$DEV" up promisc on mtu "$MTU"
/sbin/brctl addif $BR $DEV
ebtables -t nat -D PREROUTING -i "$DEV" -p IPv4 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP
ebtables -t nat -D POSTROUTING -o "$DEV" -p IPv4 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP
ebtables -t nat -I PREROUTING -i "$DEV" -p IPv4 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP
ebtables -t nat -I POSTROUTING -o "$DEV" -p IPv4 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP
route del -net "$NET" netmask "$MASK" dev $DEV >/dev/null 2>&1
route add -net "$NET" netmask "$MASK" dev $BR || true
$ cat down.sh
#!/bin/bash
DIP=192.168.50.0
DMASK=255.255.255.0
netaddr() {
local OIFS IFS IPA NM IP MASK
OIFS=$IFS; IFS="."; IP=( $1 ); MASK=( $2 ); IFS=$OIFS
for i in {0..3}; do
echo -n "$(( ${IP[i]} & ${MASK[i]} ))$([ $i -lt 3 ] && echo ".")"
done
}
# br0 tap1 1500 1574 192.168.50.51 255.255.255.0 init
BR="$1"; shift
DEV="$1"; shift
MTU="$1"; shift
BUF="$1"; shift
if [ "$1" ]; then
IP="$1"; shift
MASK="$1"; shift
else
IP=$DIP
MASK=$DMASK
fi
NET="$(netaddr "$IP" "$MASK")"
route del -net "$NET" netmask "$MASK" dev $BR
ebtables -t nat -D PREROUTING -i $DEV -p IPv4 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP
ebtables -t nat -D POSTROUTING -o $DEV -p IPv4 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP
/sbin/brctl delif $BR $DEV || true
/sbin/ip link set "$DEV" down || true
úgy néz ki, hogy működőképes, de úgy vagyok vele, mint az egyszeri ember, aki leesett a 100 emeletes toronyház tetejéről, és esés közben minden emeletnél mondogatja magának: eddig jó:)
Ennek ellenére, vagy tán éppen ezért, néhány keresetlen szóval, epés megjegyzéssel, meg ilyesmivel hozzájárulhatnátok a szkriptek jobbításéhoz. már ha lehetséges ilyen egyszerű szkriptek esetén. :)
- apostroph3 blogja
- A hozzászóláshoz be kell jelentkezni
- 1500 megtekintés
Hozzászólások
Szvsz ha két LAN-t összebridgelsz (akár VPN tunnellel, akár egy fizikai bridge-dzsel), abból egy LAN lesz, egy LAN-ba pedig egy DHCP szervert illik tenni...
- A hozzászóláshoz be kell jelentkezni
igaz. de 2 már sok:))
ezért kellet szeparálni a dhcpket.
mindkét hálózat saját dhcp-vel, nameserverel, postfixel, stb bír, és mivel a net elérés olyan mint a kutya vacsorája, mind a kettőnek kell is a saját dhcp.
ha esetleg nincs net, meghalna a hálózat azon része amelyiknek nincs saját dhcp-je. ez meg nem fordulat elő. - persze ettől még előfordul:) -
mellesleg - szerintem - a window$ban van valami gány, mert mással nem fordult még elő, hogy a távoli szerverről kapna ip-t, ugyanis a lokális előbb kell hogy válaszoljon.
de ez van.
- A hozzászóláshoz be kell jelentkezni
Mármint egy broadcast domain-re gondolsz.
Egy LAN-on simán lehet két subnet, két külön DHCP szerverrel akár.
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni