Настроение философское, если забить на подробности, цепочка такая:
делаете, например, ping 8.8.8.8
с машины, на которой XP
Сетевая служба видит, что ip 8.8.8.8 не из вашей локальной подсети (192.168.0.0/24) и направляет ping-пакет в шлюз по умолчанию, тобишь в 192.168.0.1.
Ubuntu получает на интерфейс eth0 пакет для IP 8.8.8.8 и дальше, если ничего не настраивать, то она на ваш пакет забьет, потому что он не для нее, и в XP вы получите отлуп по таймауту от ping-а.
Если же включить форвардинг и разрешить его в iptables, то Ubuntu посмотрит в свои маршруты и увидит, что пакеты для 8.8.8.8 должны отправляться на шлюз GPRS провайдера.
Далее она возьмет этот пакет и направит в интерфейс ppp подключения, скорее всего он у вас ppp0, к шлюзу билайна. И дальше пакет, сквозь инет, дойдет до адресата - 8.8.8.8.
Адресат, получив пакет, ответит на него по адресу отправителя, значащемуся в пакете, тоесть 192.168.0.1
И поскольку этот диапазон IP-адресов используется для локальных сетей повсеместно, то станется так, что он придет к компу с таким же IP, который будет ближе всех к 8.8.8.8.
Но это в сказке, а на самом деле, первый ваш пакет будет убит еще на вылете из билайна, потому что в инете таким адресам не место.
Чтобы этого не случилось - есть SNAT и его динамический подвид - MASQUERADE. При его помощи можно сказать убунте, чтобы она подменяла адрес отправителя пакета (в нашем случае - Винды) на свой внешний IP и обратно.
И вот тогда 8.8.8.8 получит пакет уже от убунты и ответит ей же.
А Ubuntu перешлет ответ винде.
И Windows покажет время, которое потребовалось для этого путешествия ping-пакету.