Автор Тема: bash script  (Прочетена 1598 пъти)

samiboy

  • Напреднали
  • *****
  • Публикации: 66
    • Профил
bash script
« -: May 25, 2009, 21:54 »
Код:
IPCLIENT="10.18.5.2 10.18.5.3 10.18.5.4 10.18.5.5"
IPNAT="93.155.162.202"

for IPCLIENT in $IPCLIENT; do
iptables -t nat -A POSTROUTING -s $IPCLIENT -o $DEVOUT -j SNAT --to $IPNAT
tc filter add dev $DEVIN parent 1: protocol ip prio 1 u32 match ip dst $IPCLIENT classid 1:1
iptables -t mangle -A FORWARD -s $IPCLIENT -j MARK --set-mark 0x1
done

До тук всичко работи добре, но има ли начин 10.18.5.2 да е зад NAT точно на 93.155.162.202 и 10.18.5.3 да е зад NAT на 93.155.162.203. Аз си го представям така. В един текстов файл създаваме редица с един разделител между двата ип адреса, пример:
Код:
10.18.5.2:93.155.162.202
10.18.5.3:93.155.162.203
10.18.5.4:93.155.162.204
10.18.5.5:93.155.162.202

Като първата промелнлива ще е $IPCLIENT а втората след двуеточието е $IPNAT. Нямам представа с каква ключова дума да потърся  в google. Ако някой насочи или даде решение благодарности.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Re: bash script
« Отговор #1 -: May 25, 2009, 22:39 »
Код:
#!/bin/sh

net=10.18.5.
conf=/etc/ipnat.conf
client=$( seq 2 5 )

for suffix in $client; do
ip=$net$suffix
nat=$( awk -F : "/^$ip:/ { print \$2 }" $conf )
iptables -t nat -A POSTROUTING -s $ip -o $devout -j SNAT --to $nat
tc filter add dev $devin parent 1: protocol ip prio 1 u32 match ip dst $ip classid 1:1
iptables -t mangle -A FORWARD -s $ip -j MARK --set-mark 0x1
done
Активен

samiboy

  • Напреднали
  • *****
  • Публикации: 66
    • Профил
Re: bash script
« Отговор #2 -: May 25, 2009, 23:30 »
Получих точно това което търсих  :D
Код:
iptables -nvL -t nat
    0     0 SNAT       all  --  *      vlan149  10.18.5.2            0.0.0.0/0           to:93.155.162.202
    0     0 SNAT       all  --  *      vlan149  10.18.5.3            0.0.0.0/0           to:93.155.162.203
515 31948 SNAT       all  --  *      vlan149  10.18.5.4            0.0.0.0/0           to:93.155.162.204
   46  3936 SNAT       all  --  *      vlan149  10.18.5.5            0.0.0.0/0           to:93.155.162.205

Благодаря за бързия и точен отговор. Надявам се, че може още един въпрос. Във файла /etc/ipnat.conf не мога да слагам коментари след ип адресите от рода на:
Код:
10.18.5.2:93.155.162.202 # pesho
10.18.5.3:93.155.162.203 # kiro
Има ли начин и това да стане ?
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Re: bash script
« Отговор #3 -: May 26, 2009, 06:45 »
Код:
#!/bin/sh

net=10.18.5.
conf=/etc/ipnat.conf
client=$( seq 2 5 )

for suffix in $client; do
ip=$net$suffix
nat=$( awk -F : "/^$ip:/ { sub(/ *#.*$/, '', \$2); print \$2 }" $conf )
iptables -t nat -A POSTROUTING -s $ip -o $devout -j SNAT --to $nat
tc filter add dev $devin parent 1: protocol ip prio 1 u32 match ip dst $ip classid 1:1
iptables -t mangle -A FORWARD -s $ip -j MARK --set-mark 0x1
done
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
bash script
Хардуерни и софтуерни проблеми
flame 6 4055 Последна публикация Sep 02, 2004, 12:28
от mimosh
Bash script и извеждането му
Web development
martien 3 3313 Последна публикация Nov 02, 2006, 11:55
от morbid_viper
Bash script за следене съдържанието на директория
Общ форум
mishot 9 4309 Последна публикация Mar 05, 2008, 00:38
от maniac
Bash script
Общ форум
vikktor 14 5353 Последна публикация Mar 04, 2009, 23:38
от CappY
Помощ за bash script
Общ форум
LinuxFanUNIX 4 2868 Последна публикация May 15, 2009, 23:05
от LinuxFanUNIX