Dlaczego obcy adres BGP jest portem 1027?
Używam BGP do łączenia routerów 1 i 2, ale kiedy pokazuję postęp TCP :
Router1>show tcp brief TCB Local Address Foreign Address (state) 4E976890 10.0.0.1.179 10.0.0.2.1027 ESTABLISHED
Mówimy, że BGP jest oparty na porcie TCP 179. Dlaczego BGP routera2 jest na porcie 1027?
Odpowiedź
Jedna strona połączenia będzie miała dowolny numer portu, a druga 179.
Cisco Press „Podstawy BGP” ma dobre wyjaśnienie ( link )
sąsiad o wyższym adresie IP zarządza połączenie. Router inicjujący żądanie używa dynamicznego portu źródłowego, ale port docelowy to zawsze 179.
Przykład 1-1 przedstawia ustanowioną sesję BGP za pomocą polecenia
show tcp brief
, aby wyświetlić aktywne sesje TCP między routerami. Zauważ, że źródłowy port TCP to 179, a docelowy to 59884 na R1, a przeciwne porty na R2.
Example 1-1: Established BGP session RP/0/0/CPU0:R1# show tcp brief | exc "LISTEN|CLOSED" PCB VRF-ID Recv-Q Send-Q Local Address Foreign Address State 0x088bcbb8 0x60000000 0 0 10.1.12.1:179 10.1.12.2:59884 ESTAB R2# show tcp brief TCB Local Address Foreign Address (state) EF153B88 10.1.12.2. 59884 10.1.12.1.179 ESTAB
To jest to samo, co każde inne połączenie TCP: pasywna otwarta strona siedzi i czeka na dobrze znanym numerze portu; aktywna otwarta strona wykorzystuje port arbitralny. To znacznie ułatwia zarządzanie łączami TCP „wiele do wielu”.
Komentarze
Odpowiedź
Źródło TCP a porty docelowe.
Aby podać inny przykład: serwery HTTP nasłuchują na porcie TCP 80. Zatem kiedy łączysz się z serwerem WWW, automatycznie użyjesz TCP / 80 jako portu docelowego. Jednak port źródłowy jest losowym portem powyżej 1024.
Dokładnie to samo dzieje się z BGP – klient (router inicjujący połączenie) połączy się z docelowym portem TCP 179. Ale port źródłowy dla tego połączenie będzie losowym wysokim portem.
Odpowiedź
Ogólnie rzecz biorąc, BGP
użyj portu TCP 179
jako usługi BGP. klient łączy port usługi BGP nie ma limitu.
np. serwer SSH używa 22
jako swojego portu, nie ma ograniczeń co do portu klienta.
iptables
?--dport 179
) i pozwolić mechanizmowi śledzenia połączenia obsługiwać odpowiedzi (--state ESTABLISHED
na przykład?)