Xpoint
   [напомнить пароль]

После подключения по pppoe пропадает один из внешних интерфейсов

Метки: [без меток]
[удл]
2009-10-01 07:09:09 [обр] Роман Чемисов(0/327)[досье]
сообщение промодерировано

Добрый день.
Есть машина, с тремя интерфейсами: два внешних (eth0 и eth2) и один внутренний (eth1).

Интерфейс eth0 смотрит в интернет через ADSL-модем: на модеме поднимается pppoe, сам модем получает внешний ip 87.103.134.45, внутренний ip 192.168.1.1, а интерфейсу назначает ip 192.168.1.4.

Интерфейс eth2 смотрит в интернет посредством поднятия на нём pppoe (он получает внешний ip 94.137.204.194).

Вот что показывает ifconfig:

-bash-3.00# ifconfig 
eth0 Link encap:Ethernet HWaddr 00:1E:0B:DB:DA:4A 
inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0 
inet6 addr: fe80::21e:bff:fedb:da4a/64 Scope:Link 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
RX packets:3212 errors:0 dropped:0 overruns:0 frame:0 
TX packets:1302 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:1000 
RX bytes:342162 (334.1 KiB) TX bytes:107701 (105.1 KiB) 
Interrupt:137 

eth1 Link encap:Ethernet HWaddr 00:1E:0B:DB:DA:4B 
inet addr:192.168.0.22 Bcast:192.168.0.255 Mask:255.255.255.0 
inet6 addr: fe80::21e:bff:fedb:da4b/64 Scope:Link 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
RX packets:256278 errors:0 dropped:0 overruns:0 frame:0 
TX packets:304202 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:1000 
RX bytes:39877449 (38.0 MiB) TX bytes:254102991 (242.3 MiB) 
Interrupt:145 

eth2 Link encap:Ethernet HWaddr 00:18:71:EB:AF:DC 
inet addr:79.122.192.114 Bcast:79.122.192.115 Mask:255.255.255.252 
inet6 addr: fe80::218:71ff:feeb:afdc/64 Scope:Link 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
RX packets:594919 errors:0 dropped:0 overruns:0 frame:0 
TX packets:587381 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:100 
RX bytes:358602982 (341.9 MiB) TX bytes:106473853 (101.5 MiB) 
Base address:0xcc00 Memory:fdee0000-fdf00000 

lo Link encap:Local Loopback 
inet addr:127.0.0.1 Mask:255.0.0.0 
inet6 addr: ::1/128 Scope:Host 
UP LOOPBACK RUNNING MTU:16436 Metric:1 
RX packets:418099 errors:0 dropped:0 overruns:0 frame:0 
TX packets:418099 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:0 
RX bytes:67387314 (64.2 MiB) TX bytes:67387314 (64.2 MiB) 

ppp0 Link encap:Point-to-Point Protocol 
inet addr:94.137.204.194 P-t-P:10.10.0.13 Mask:255.255.255.255 
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 
RX packets:30669 errors:0 dropped:0 overruns:0 frame:0 
TX packets:33212 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:3 
RX bytes:22066048 (21.0 MiB) TX bytes:3942458 (3.7 MiB)

Всё дело в том, что как только я запускаю pppoe на интерфейсе eth2 у меня второй IP (87.103.134.45, который висит на eth0) становится невидимым из-вне :-(

Вот настройки маршрутизации:

-bash-3.00# route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Iface 
192.168.1.4 * 255.255.255.255 UH 0 0 0 eth0 
10.10.0.13 * 255.255.255.255 UH 0 0 0 ppp0 
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1 
169.254.0.0 * 255.255.0.0 U 0 0 0 eth2 
default 10.10.0.13 0.0.0.0 UG 0 0 0 ppp0

Вот настройки iptables:

# Generated by iptables-save v1.3.5 on Mon Jul 17 00:19:22 2006 
*nat 
:PREROUTING ACCEPT [3000:299134] 
:POSTROUTING ACCEPT [2089:165479] 
:OUTPUT ACCEPT [2089:165479] 

-A POSTROUTING -s 192.168.0.6 -j SNAT --to-source 94.137.204.194 


COMMIT 
# Completed on Mon Jul 17 00:19:22 2006 
# Generated by iptables-save v1.3.5 on Mon Jul 17 00:19:22 2006 
*mangle 
:PREROUTING ACCEPT [31849:10761772] 
:INPUT ACCEPT [31786:10757939] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [39665:9327957] 
:POSTROUTING ACCEPT [39981:9402849] 
COMMIT 
# Completed on Mon Jul 17 00:19:22 2006 
# Generated by iptables-save v1.3.5 on Mon Jul 17 00:19:22 2006 
*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [39665:9327957] 
:RH-Firewall-1-INPUT - [0:0] 
-A INPUT -j RH-Firewall-1-INPUT 
-A RH-Firewall-1-INPUT -i lo -j ACCEPT 
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT 
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT 

-A RH-Firewall-1-INPUT -i eth2 -j ACCEPT 

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 
-A RH-Firewall-1-INPUT -p ipv6-crypt -j ACCEPT 
-A RH-Firewall-1-INPUT -p ipv6-auth -j ACCEPT 
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT 
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT 
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT 
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2227 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2228 -j ACCEPT 
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 

########################## 
-A FORWARD -d 192.168.0.1 -p tcp -m multiport --dport 3389 -j ACCEPT 
-A FORWARD -s 192.168.0.1 -j ACCEPT 

-A FORWARD -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset 
-A FORWARD -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 


COMMIT

Подскажите, пожалуйста, почему пропадает интерфейс eth0? Как это можно исправить?

Заранее спасибо!

спустя 3 часа 27 минут [обр] Роман Чемисов(0/327)[досье]

Кажется понял в чём дело. Дело в том, что маршрут по умолчанию изменился и ответные пакеты просто идут по другому маршруту.

Как с помощью iptables/маршрутизации заставить ответные пакеты идти через этот же интерфейс?

спустя 36 минут [обр] Евгений Седов aka KPbIC(7/176)[досье]
Зачем?
спустя 1 час 8 минут [обр] Роман Чемисов(0/327)[досье]
Евгений Седов aka KPbIC[досье]
Чтобы второй интерфейс был тоже виден снаружи...
Небольшая проблема DNS: часть интернета всё ещё ломится на почтовый сервер по старому IP, а он не виден.
спустя 24 минуты [обр] Евгений Седов aka KPbIC(7/176)[досье]
Я все равно не понял, какая вам разница, по какому маршруту ходят пакеты, и как от этого зависит виден/не_виден IP? По-моему, вы чего-то не договариваете. Если проблема с SMTP, то может быть стоит забиндить сервер на конкретный IP?
спустя 1 час 3 минуты [обр] Евгений Седов aka KPbIC(7/176)[досье]
А, понял. "маршрутизация два провайдера". Погуглите, уже много раз обсуждали.
спустя 1 час 53 минуты [обр] Евгений Седов aka KPbIC(7/176)[досье]
И мне кажется, что NAT надо ограничить только нужным фейсом.
Powered by POEM™ Engine Copyright © 2002-2005