Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> iptv+ igmpproxy, не могу посмотреть телег xD 
:(
    Опции темы
DRUG_ADDICT
Дата 6.1.2011, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Помогите пожалуйста, у меня в сетке есть IPTV и у меня дома два компа:
на первом компе куда воткнуты провода двух провайдеров стоит OpenSUSE 11.3
на втором компе Windows Seven xD
два эти компа пачкордом соединены через сетевую карту первого компа.

корочь OpenSUSE 11.3

#ifconfig
Код
# ifconfig
eth0      Link encap:Ethernet  HWaddr 1C:AF:F7:07:F6:D0
          inet addr:10.100.0.14  Bcast:10.100.0.15  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:962220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1574258 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:413815467 (394.6 Mb)  TX bytes:1119723250 (1067.8 Mb)
          Interrupt:21 Base address:0xa800

eth1      Link encap:Ethernet  HWaddr 00:21:91:20:CD:D2
          inet addr:100.0.0.1  Bcast:100.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8388138 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17729526 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1587907576 (1514.3 Mb)  TX bytes:3326515867 (3172.4 Mb)
          Interrupt:20 Base address:0x4400

eth2      Link encap:Ethernet  HWaddr 00:11:D8:AD:D0:68
          inet addr:10.2.11.193  Bcast:10.2.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:366150 errors:0 dropped:0 overruns:0 frame:0
          TX packets:245734 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:215235313 (205.2 Mb)  TX bytes:236751484 (225.7 Mb)
          Interrupt:22 Base address:0xac00

короче первый комп имеет ип 100.0.0.1 (eth1) второй 100.0.0.2 ну + ещё ип от провайдеров на eth0 и eth2 ...

# route -n
Код
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.100.0.12     0.0.0.0         255.255.255.252 U     0      0        0 eth0
85.234.99.248   10.2.0.1        255.255.255.248 UG    0      0        0 eth2
85.234.96.0     10.2.0.1        255.255.255.128 UG    0      0        0 eth2
109.248.96.0    10.100.0.13     255.255.255.0   UG    0      0        0 eth0
100.0.0.0       100.0.0.1       255.255.255.0   UG    0      0        0 eth1
193.227.98.0    10.100.0.13     255.255.255.0   UG    0      0        0 eth0
10.2.0.0        10.2.0.1        255.255.0.0     UG    0      0        0 eth2
10.3.0.0        10.2.0.1        255.255.0.0     UG    0      0        0 eth2
10.100.0.0      10.100.0.13     255.255.0.0     UG    0      0        0 eth0
192.168.0.0     10.100.0.13     255.255.0.0     UG    0      0        0 eth0
225.0.0.0       10.2.0.1        255.0.0.0       UG    0      0        0 eth2
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.100.0.13     0.0.0.0         UG    0      0        0 eth0

шлюз провайдера где крутиться IPTV: 10.2.0.1
вещение какбэ идет с 225.2.2.Х/24
по крайней мере провайдер в плеере (который раздает клиентам для просмотра IPTV) указывает в плейлистах ип 225.2.2.х

но я добавлял везде где ток можно ещё и 
224.0.0.0/8
и
239.0.0.0/8
бог его знает откуда ети мультикасты прут))) 

IPTABLES:
# vi /etc/sysconfig/scripts/SuSEfirewall2-custom
Код
iptables -A INPUT -p igmp -j ACCEPT
iptables -A OUTPUT -p igmp -j ACCEPT
iptables -A FORWARD -s 224.0.0.0/8 -p udp -j ACCEPT
iptables -A FORWARD -s 225.0.0.0/8 -p udp -j ACCEPT
iptables -A FORWARD -s 239.0.0.0/8 -p udp -j ACCEPT
iptables -A INPUT -i eth2 -d 224.0.0.0/8 -j ACCEPT
iptables -A INPUT -i eth2 -d 225.0.0.0/8 -j ACCEPT
iptables -A INPUT -i eth2 -d 239.0.0.0/8 -j ACCEPT


igmpproxy
# vi /usr/local/etc/igmpproxy.conf
Код
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave


##------------------------------------------------------
## Configuration for eth0 (Upstream Interface)
##------------------------------------------------------
phyint eth2 upstream  ratelimit 0  threshold 1
        altnet 10.0.0.0/8
        #altnet 100.0.0.0/8
        altnet 225.0.0.0/8
        altnet 224.0.0.0/8
        altnet 239.0.0.0/8
        #altnet 192.168.0.0/24


##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
##------------------------------------------------------
phyint eth1 downstream  ratelimit 0  threshold 1
        altnet 100.0.0.0/8

##------------------------------------------------------
## Configuration for eth2 (Disabled Interface)
##------------------------------------------------------
phyint eth0 downstream  ratelimit 0  threshold 1
        altnet 10.100.0.0/16


но плеер на Windows Seven не че не показывает...:confused:
ПОМОГИТЕ ПЛИЗ! скажите в чем трабла((((((((((((((

ЛОГИ:
Код
igmpproxy -d -vv /usr/local/etc/igmpproxy.conf
Searching for config file at '/usr/local/etc/igmpproxy.conf'
Config: Quick leave mode enabled.
Config: Got a phyint token.
Config: IF: Config for interface eth2.
Config: IF: Got upstream token.
Config: IF: Got ratelimit token '0'.
Config: IF: Got threshold token '1'.
Config: IF: Got altnet token 10.0.0.0/8.
Config: IF: Altnet: Parsed altnet to 10/8.
Config: IF: Got altnet token 225.0.0.0/8.
Config: IF: Altnet: Parsed altnet to 225/8.
Config: IF: Got altnet token 224.0.0.0/8.
Config: IF: Altnet: Parsed altnet to 224/8.
Config: IF: Got altnet token 239.0.0.0/8.
Config: IF: Altnet: Parsed altnet to 239/8.
IF name : eth2
Next ptr : 0
Ratelimit : 0
Threshold : 1
State : 1
Allowednet ptr : 80513a8
Config: Got a phyint token.
Config: IF: Config for interface eth1.
Config: IF: Got downstream token.
Config: IF: Got ratelimit token '0'.
Config: IF: Got threshold token '1'.
Config: IF: Got altnet token 10.100.0.0/16.
Config: IF: Altnet: Parsed altnet to 10.100/16.
Config: IF: Got altnet token 100.0.0.0/8.
Config: IF: Altnet: Parsed altnet to 100/8.
IF name : eth1
Next ptr : 0
Ratelimit : 0
Threshold : 1
State : 2
Allowednet ptr : 8051418
Config: Got a phyint token.
Config: IF: Config for interface eth0.
Config: IF: Got downstream token.
Config: IF: Got ratelimit token '0'.
Config: IF: Got threshold token '1'.
Config: IF: Got altnet token 10.100.0.0/16.
Config: IF: Altnet: Parsed altnet to 10.100/16.
Config: IF: Got altnet token 100.0.0.0/8.
Config: IF: Altnet: Parsed altnet to 100/8.
IF name : eth0
Next ptr : 0
Ratelimit : 0
Threshold : 1
State : 2
Allowednet ptr : 8051468
buildIfVc: Interface lo Addr: 127.0.0.1, Flags: 0x0049, Network: 127/8
buildIfVc: Interface lo Addr: 127.0.0.2, Flags: 0x0049, Network: 127/8
buildIfVc: Interface eth0 Addr: 10.100.0.14, Flags: 0x1043, Network: 10.100.0.12/30
buildIfVc: Interface eth1 Addr: 100.0.0.1, Flags: 0x1043, Network: 100.0.0/24
buildIfVc: Interface eth2 Addr: 10.2.11.193, Flags: 0x1043, Network: 10.2/16
Found config for eth0
Found config for eth1
Found config for eth2
adding VIF, Ix 0 Fl 0x0 IP 0x0e00640a eth0, Threshold: 1, Ratelimit: 0
        Network for [eth0] : 10.100.0.12/30
        Network for [eth0] : 10.100/16
        Network for [eth0] : 100/8
adding VIF, Ix 1 Fl 0x0 IP 0x01000064 eth1, Threshold: 1, Ratelimit: 0
        Network for [eth1] : 100.0.0/24
        Network for [eth1] : 10.100/16
        Network for [eth1] : 100/8
adding VIF, Ix 2 Fl 0x0 IP 0xc10b020a eth2, Threshold: 1, Ratelimit: 0
        Network for [eth2] : 10.2/16
        Network for [eth2] : 10/8
        Network for [eth2] : 225/8
        Network for [eth2] : 224/8
        Network for [eth2] : 239/8
Got 262144 byte buffer size in 0 iterations
Joining all-routers group 224.0.0.2 on vif 10.100.0.14
joinMcGroup: 224.0.0.2 on eth0
Joining all-routers group 224.0.0.2 on vif 100.0.0.1
joinMcGroup: 224.0.0.2 on eth1
SENT Membership query   from 10.100.0.14     to 224.0.0.1
Sent membership query from 10.100.0.14 to 224.0.0.1. Delay: 10
SENT Membership query   from 100.0.0.1       to 224.0.0.1
Sent membership query from 100.0.0.1 to 224.0.0.1. Delay: 10
Created timeout 1 (#0) - delay 10 secs
(Id:1, Time:10)
Created timeout 2 (#1) - delay 21 secs
(Id:1, Time:10)
(Id:2, Time:21)
RECV Membership query   from 100.0.0.1       to 224.0.0.1
RECV V2 member report   from 100.0.0.1       to 224.0.0.2
The IGMP message was from myself. Ignoring.
RECV V2 member report   from 100.0.0.1       to 224.0.0.251
The IGMP message was from myself. Ignoring.
RECV V2 member report   from 100.0.0.2       to 225.2.2.7
Should insert group 225.2.2.7 (from: 100.0.0.2) to route table. Vif Ix : 1
No existing route for 225.2.2.7. Create new.
No routes in table. Insert at beginning.
Inserted route table entry for 225.2.2.7 on VIF #1
Joining group 225.2.2.7 upstream on IF address 10.2.11.193
joinMcGroup: 225.2.2.7 on eth2

Current routing table (Insert Route):
-----------------------------------------------------
#0: Src: 0.0.0.0, Dst: 225.2.2.7, Age:2, St: I, OutVifs: 0x00000002
-----------------------------------------------------
RECV V2 member report   from 100.0.0.2       to 239.255.255.250
Should insert group 239.255.255.250 (from: 100.0.0.2) to route table. Vif Ix : 1
No existing route for 239.255.255.250. Create new.
Found existing routes. Find insert location.
Inserting after route 225.2.2.7
Inserted route table entry for 239.255.255.250 on VIF #1
Joining group 239.255.255.250 upstream on IF address 10.2.11.193
joinMcGroup: 239.255.255.250 on eth2

Current routing table (Insert Route):
-----------------------------------------------------
#0: Src: 0.0.0.0, Dst: 225.2.2.7, Age:2, St: I, OutVifs: 0x00000002
#1: Src: 0.0.0.0, Dst: 239.255.255.250, Age:2, St: I, OutVifs: 0x00000002
-----------------------------------------------------
RECV V2 member report   from 100.0.0.2       to 225.2.2.1
Should insert group 225.2.2.1 (from: 100.0.0.2) to route table. Vif Ix : 1
No existing route for 225.2.2.1. Create new.
Found existing routes. Find insert location.
Inserting at beginning, before route 225.2.2.7
Inserted route table entry for 225.2.2.1 on VIF #1
Joining group 225.2.2.1 upstream on IF address 10.2.11.193
joinMcGroup: 225.2.2.1 on eth2

Current routing table (Insert Route):
-----------------------------------------------------
#0: Src: 0.0.0.0, Dst: 225.2.2.1, Age:2, St: I, OutVifs: 0x00000002
#1: Src: 0.0.0.0, Dst: 225.2.2.7, Age:2, St: I, OutVifs: 0x00000002
#2: Src: 0.0.0.0, Dst: 239.255.255.250, Age:2, St: I, OutVifs: 0x00000002
-----------------------------------------------------
RECV V2 member report   from 100.0.0.2       to 239.192.152.143
Should insert group 239.192.152.143 (from: 100.0.0.2) to route table. Vif Ix : 1
No existing route for 239.192.152.143. Create new.
Found existing routes. Find insert location.
Inserting after route 225.2.2.7
Inserted route table entry for 239.192.152.143 on VIF #1
Joining group 239.192.152.143 upstream on IF address 10.2.11.193
joinMcGroup: 239.192.152.143 on eth2

Current routing table (Insert Route):
-----------------------------------------------------
#0: Src: 0.0.0.0, Dst: 225.2.2.1, Age:2, St: I, OutVifs: 0x00000002
#1: Src: 0.0.0.0, Dst: 225.2.2.7, Age:2, St: I, OutVifs: 0x00000002
#2: Src: 0.0.0.0, Dst: 239.192.152.143, Age:2, St: I, OutVifs: 0x00000002
#3: Src: 0.0.0.0, Dst: 239.255.255.250, Age:2, St: I, OutVifs: 0x00000002
-----------------------------------------------------
About to call timeout 1 (#0)
Aging routes in table.

Current routing table (Insert Route):
-----------------------------------------------------
#0: Src: 0.0.0.0, Dst: 225.2.2.1, Age:2, St: I, OutVifs: 0x00000002
#1: Src: 0.0.0.0, Dst: 225.2.2.3, Age:2, St: I, OutVifs: 0x00000002
#2: Src: 0.0.0.0, Dst: 225.2.2.4, Age:2, St: I, OutVifs: 0x00000002
#3: Src: 0.0.0.0, Dst: 225.2.2.13, Age:2, St: I, OutVifs: 0x00000002
#4: Src: 0.0.0.0, Dst: 239.192.152.143, Age:2, St: I, OutVifs: 0x00000002
#5: Src: 0.0.0.0, Dst: 239.255.255.250, Age:2, St: I, OutVifs: 0x00000002
-----------------------------------------------------
RECV Membership query   from 10.2.0.1        to 224.0.0.1
RECV V2 member report   from 10.2.11.193     to 224.0.0.251
The IGMP message was from myself. Ignoring.
RECV V2 member report   from 10.2.11.193     to 225.2.2.3
The IGMP message was from myself. Ignoring.
Route activation request from 10.2.11.193 for 225.2.2.3 is from myself. Ignoring.
RECV V2 member report   from 10.2.11.193     to 225.2.2.1
The IGMP message was from myself. Ignoring.
Route activation request from 10.2.11.193 for 225.2.2.1 is from myself. Ignoring.
About to call timeout 15 (#0)
SENT Membership query   from 100.0.0.1       to 225.2.2.4
Sent membership query from 100.0.0.1 to 225.2.2.4. Delay: 10
Created timeout 17 (#1) - delay 10 secs
(Id:16, Time:0)
(Id:17, Time:10)
(Id:9, Time:74)
About to call timeout 16 (#1)
SENT Membership query   from 100.0.0.1       to 225.2.2.13
Sent membership query from 100.0.0.1 to 225.2.2.13. Delay: 10
Created timeout 18 (#1) - delay 0 secs
(Id:17, Time:10)
(Id:18, Time:0)
(Id:9, Time:74)
RECV Membership query   from 100.0.0.1       to 225.2.2.4
RECV Membership query   from 100.0.0.1       to 225.2.2.13
Route activation request from 10.2.11.193 for 239.192.152.143 is from myself. Ignoring.
Route activation request from 10.2.11.193 for 239.255.255.250 is from myself. Ignoring.
^Cselect() failure; Errno(4): Interrupted system call
Got a interupt signal. Exiting.
clean handler called
Removing route entry for 225.2.2.1
Route is not active. No kernel updates done.
Leaving group 225.2.2.1 upstream on IF address 10.2.11.193
leaveMcGroup: 225.2.2.1 on eth2
Removing route entry for 225.2.2.3
Route is not active. No kernel updates done.
Leaving group 225.2.2.3 upstream on IF address 10.2.11.193
leaveMcGroup: 225.2.2.3 on eth2
Removing route entry for 225.2.2.4
Route is not active. No kernel updates done.
Leaving group 225.2.2.4 upstream on IF address 10.2.11.193
leaveMcGroup: 225.2.2.4 on eth2
MRT_DROP_MEMBERSHIP failed; Errno(99): Cannot assign requested address
Removing route entry for 225.2.2.13
Route is not active. No kernel updates done.
Leaving group 225.2.2.13 upstream on IF address 10.2.11.193
leaveMcGroup: 225.2.2.13 on eth2
MRT_DROP_MEMBERSHIP failed; Errno(99): Cannot assign requested address
Removing route entry for 239.192.152.143
Route is not active. No kernel updates done.
Leaving group 239.192.152.143 upstream on IF address 10.2.11.193
leaveMcGroup: 239.192.152.143 on eth2
Removing route entry for 239.255.255.250
Route is not active. No kernel updates done.
Leaving group 239.255.255.250 upstream on IF address 10.2.11.193
leaveMcGroup: 239.255.255.250 on eth2
All routes removed. Routing table is empty.
Shutdown complete....

:jazik:плеер не че не показывают, нажимаю какинеть каналы не че не выходит(((( 


зы. сори что так много логов...

Это сообщение отредактировал(а) DRUG_ADDICT - 6.1.2011, 13:22
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
DRUG_ADDICT
Дата 6.1.2011, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



короче чуть поправил: 

igmpproxy
# vi /usr/local/etc/igmpproxy.conf
Код

##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave

##------------------------------------------------------
## Configuration for eth0 (Upstream Interface)
##------------------------------------------------------
phyint eth2 upstream  ratelimit 0  threshold 1
        altnet 224.0.0.0/4

##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
##------------------------------------------------------
phyint eth1 downstream  ratelimit 0  threshold 1

##------------------------------------------------------
## Configuration for eth2 (Disabled Interface)
##------------------------------------------------------
phyint eth0 disabled


IPTABLES
# vi /etc/sysconfig/scripts/SuSEfirewall2-custom
Код

fw_custom_after_chain_creation() {

#modprobe ipt_TTL
iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth2 -j ACCEPT
iptables -t filter -A INPUT -s 224.0.0.0/240.0.0.0 -i eth2 -j ACCEPT
iptables -t filter -A FORWARD -d 224.0.0.0/240.0.0.0 -j ACCEPT
iptables -t filter -A FORWARD -s 224.0.0.0/240.0.0.0 -j ACCEPT
iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1

    true
}

именно в секцию fw_custom_after_chain_creation()

далее rcSuSEfirewall2 restart

# route -n
Код

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.100.0.12     0.0.0.0         255.255.255.252 U     0      0        0 eth0
85.234.99.248   10.2.0.1        255.255.255.248 UG    0      0        0 eth2
85.234.96.0     10.2.0.1        255.255.255.128 UG    0      0        0 eth2
109.248.96.0    10.100.0.13     255.255.255.0   UG    0      0        0 eth0
100.0.0.0       100.0.0.1       255.255.255.0   UG    0      0        0 eth1
193.227.98.0    10.100.0.13     255.255.255.0   UG    0      0        0 eth0
10.2.0.0        10.2.0.1        255.255.0.0     UG    0      0        0 eth2
10.3.0.0        10.2.0.1        255.255.0.0     UG    0      0        0 eth2
10.100.0.0      10.100.0.13     255.255.0.0     UG    0      0        0 eth0
192.168.0.0     10.100.0.13     255.255.0.0     UG    0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.100.0.13     0.0.0.0         UG    0      0        0 eth0

роуты те же... интерфейсе тоже те же, жэжэжэ, что в первом посте от меня)))
будет здоровы! всех с рождеством!

всё заработало.... спасибо большое http://www.tonchik.ru/pub/over/Linux%20Mul...0IGMPProxy.html

Это сообщение отредактировал(а) DRUG_ADDICT - 6.1.2011, 21:22
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
ZeeLax
Дата 7.1.2011, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 26
Всего: 88




M
ZeeLax
Ололо, падонге ин да хаус



--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1040 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.