Temat: IP z wan

Mam TP linka 1043 z OpenWrt Backfire 10.03 , mam do dyspozycji 5 adresów IP z puli 88.156.... jak zrobić żeby ruter i wszystko co podłączone za dostawały te zewnętrzne.Próbowałem różnych rzeczy ale nie wiem czego się złapać.

2

Odp: IP z wan

Zrobić na ruterze dodatkowe aliasy (opisane to jest na stronie), a później przekierować wszystko z tego aliasy z/do komputera. On sam co prawda nie będzie miał tego adresu publicznego, ale dzięki przekierowaniu będzie widoczny w sieci pod tym adresem.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: IP z wan

Nie dodałem tylko ze te adresy z puli zewnętrznej są zmienne.

4

Odp: IP z wan

To w sumie masz problem, bo na chwilę obecną openwrt nie pozwala na dhcp na aliasach.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez rpc 2010-04-17 07:42:55)

Odp: IP z wan

Tak sobie myślę. Można by było wrzucić skrypt do /etc/ppp/ip-up.d co to po otrzymaniu adresu ip grepuje go i wylicza następne 4 adresy. Potem iptables i przekierowanie na hosty do lan zdefiniowane np. w /etc/ethers.

TAK naprawdę dla swoich klientów w LAN masz 4 adresy bo piaty jest przeznaczony dla routera od strony wan

W skrypcie można by wykorzystać zmienne $IFNAME, $IPLOCAL z pppd np.


zakładam że otrzymujesz od ISP adresy w stylu

88.156.128.48 adres sieci
88.156.128.49 gateway
88.156.128.50 1adres
88.156.128.51 2adres
88.156.128.52 3adres
88.156.128.53 4adres
88.156.128.54 5adres
88.156.128.55 broadcast

czyli siec 8 adresowa

zakładam ze otrzymujesz automatycznie pierwszy adres z sobie przydzielonych adresów sieciowych

zakładam, iż twój interfejs wan to ppp0

zakładam że w pliku /etc/ethers masz np. poniższe wpisy:
00:16:ea:49:13:fe       192.168.1.21
00:1f:16:00:fd:a3        192.168.1.22
00:1f:14:00:ab:a4       192.168.1.23
00:1f:15:00:ac:a5       192.168.1.24

tworzysz plik
touch /etc/ppp/ip-up.d/90-alias
chmod +x /etc/ppp/ip-up.d/90-alias

o zawartości:

#!/bin/sh                                                                                                                                                    
                                                                                                                                                             
adresip_wan=$IPLOCAL                                                                                                                                         
device_wan=$IFNAME                                                                                                                                           
siec_lan=192.168.10       # wpisz adres sieci LAN - 3 pierwsze sekcje                                                                
adres_lan=21                   # wpisz od którego adresu LAN masz zdefiniowane w /etc/ethers                                                           
                                                                                                                                                             
sekcja_ip_wan=`echo ${adresip_wan} | cut -d"." -f1-3`                                                                                                        
sekcja_ipl_wan=`echo ${adresip_wan} | cut -d"." -f4`                                                                                                         
licz_bcast_wan=`expr $sekcja_ipl_wan + 5`                                                                                                                    
adres_bcast_wan=$sekcja_ip_wan.$licz_bcast_wan                                                                                                               
                                                                                                                                                             
for i in $(seq 1 4);                                                                                                                                         
do                                                                                                                                                           
 ad_wan=`expr $sekcja_ipl_wan + $i`                                                                                                                          
 ad_lan=`expr $adres_lan + $i - 1`                                                                                                                               
 ifconfig $device_wan:$i $sekcja_ip_wan.$ad_wan broadcast $adres_bcast_wan                
 iptables -I FORWARD -i $device_wan:$i -j ACCEPT                                                                                                             
 iptables -t nat -I PREROUTING -i $device_wan:$i -d $sekcja_ip_wan.$ad_wan -j DNAT --to-destination $siec_lan.$ad_lan
done      

tworzysz drugi plik
touch /etc/ppp/ip-down.d/90-alias
chmod +x /etc/ppp/ip-down.d/90-alias

o zawartości:

#!/bin/sh

adresip_wan=`ifconfig $IFNAME | grep addr | cut -d":" -f2 | cut -d" " -f1`                                                                                  $
device_wan=$IFNAME
siec_lan=192.168.10       # wpisz adres sieci LAN - 3 pierwsze sekcje
adres_lan=21                   # wpisz od którego adresu LAN masz zdefiniowane w /etc/ethers

sekcja_ip_wan=`echo ${adresip_wan} | cut -d"." -f1-3`
sekcja_ipl_wan=`echo ${adresip_wan} | cut -d"." -f4`
licz_bcast_wan=`expr $sekcja_ipl_wan + 5`
adres_bcast_wan=$sekcja_ip_wan.$licz_bcast_wan

for i in $(seq 1 4);
do
 ad_wan=`expr $sekcja_ipl_wan + $i`
 ad_lan=`expr $adres_lan + $i - 1`                                                                                                                          $
 iptables -D FORWARD -i $device_wan:$i -j ACCEPT
 iptables -t nat -D PREROUTING -i $device_wan:$i -d $sekcja_ip_wan.$ad_wan -j DNAT --to-destination $siec_lan.$ad_lan
done


Co to robi.

Masz z góry zdefiniowane adresy ip dla swoich clientów w LAN (przypisujesz po MAC adresie w np./etc/ethers)
Jak router zaloguje się do sieci WAN to wywoływany jest skrypt /etc/ppp/ip-up.d/90-alias który robie przekierowanie z wyliczonego adresu ip na adres LAN.
Drugi skrypt kasuje utworzone przez nas reguły z firewalla

88.156.128.50 - adres twojego WAN na ppp0
88.156.128.51 -> 192.168.1.21
88.156.128.52 -> 192.168.1.22
88.156.128.53 -> 192.168.1.23
88.156.128.54 -> 192.168.1.24

co skrypt tak naprawdę robi?
generuje i wykonuje następujące polecenia:

ifconfig ppp0:1 88.156.128.51 broadcast 88.156.128.55
iptables -I FORWARD -i ppp0:1 --dst 192.168.10.21 -j ACCEPT
iptables -t nat -I PREROUTING -i ppp0:1 -d 88.156.128.51 -j DNAT --to-destination 192.168.10.21
ifconfig ppp0:2 88.156.128.52 broadcast 88.156.128.55
iptables -I FORWARD -i ppp0:2 --dst 192.168.10.22 -j ACCEPT
iptables -t nat -I PREROUTING -i ppp0:2 -d 88.156.128.52 -j DNAT --to-destination 192.168.10.22
ifconfig ppp0:3 88.156.128.53 broadcast 88.156.128.55
iptables -I FORWARD -i ppp0:3 --dst 192.168.10.23 -j ACCEPT
iptables -t nat -I PREROUTING -i ppp0:3 -d 88.156.128.53 -j DNAT --to-destination 192.168.10.23
ifconfig ppp0:4 88.156.128.54 broadcast 88.156.128.55
iptables -I FORWARD -i ppp0:4 --dst 192.168.10.24 -j ACCEPT
iptables -t nat -I PREROUTING -i ppp0:4 -d 88.156.128.54 -j DNAT --to-destination 192.168.10.24

lub drugi skrypt usuwający reguły

iptables -D FORWARD -i ppp0:1 --dst 192.168.10.21 -j ACCEPT
iptables -t nat -D PREROUTING -i ppp0:1 -d 88.156.128.51 -j DNAT --to-destination 192.168.10.21
iptables -D FORWARD -i ppp0:2 --dst 192.168.10.22 -j ACCEPT
iptables -t nat -D PREROUTING -i ppp0:2 -d 88.156.128.52 -j DNAT --to-destination 192.168.10.22
iptables -D FORWARD -i ppp0:3 --dst 192.168.10.23 -j ACCEPT
iptables -t nat -D PREROUTING -i ppp0:3 -d 88.156.128.53 -j DNAT --to-destination 192.168.10.23
iptables -D FORWARD -i ppp0:4 --dst 192.168.10.24 -j ACCEPT
iptables -t nat -D PREROUTING -i ppp0:4 -d 88.156.128.54 -j DNAT --to-destination 192.168.10.24

to tak naprędce. Nie mam 8 adresów ale poszedłbym w tym kierunku

pewnie można by było zaprządz proxyarp ale tracisz nie jeden a 2 adresy no i dla komputerów w LAN zostaja tylko 3 do wykorzystania