Страница: 1 | 2 |
Вопрос: Различить Два ВПН соединения. Сверхзадача
Добавлено: 27.04.06 22:49
Автор вопроса: student-uni
Долблюсь уже долго.
Дано
Два ВПН соединения (или более). С1 и С2. с разными цель Ай Пи
Создаются На одном виртуальном адаптере.
Напр. С1 соединяется по ВПН с - 192.168.2.133 а
С2 - 192.169.3.144
После соединения каждый адаптер получает динамический адрес,
который каждый раз выпадает случайным образом .
На этот динамический адрес я добавляю маршрут
типа ROUTE ADD причем для С1 один, а для С2 другой.
Вопрос: а как мне не перепутать виртуальные интерфейсы ?
Ведь маршрут я могу положить только после того как соединение установлено, выловив динамически присвоенный Ай пи по Мак адресу например. Но нет гарантии, что пока я ожидаю появления С1,
кто то не вызовет С2. И я буду иметь два абсолютно одинаковых интерфейса с разными ай пи , но не буду знать кому положить какой маршрут.
Как различить их ?
Внизу привожу текст тестовой проги
У кого есть возможность попробовать
с двумя ВПН на одном витуальном интерфейсе
попробуйте найти отличия, которые бы сохранялись
после повторного соединения.
Спасибо всем
Imports System.Net
Imports System.Net.NetworkInformation
'Imports System.Net.NetworkInformation
Public Class Form1
Dim ni() As NetworkInterface
Dim ni2 As NetworkInterface
Dim pa() As IPAddress
Dim pa2 As IPAddress
Dim ipp As GatewayIPAddressInformation
Dim ia As IPInterfaceProperties
Dim ia2 As Collection
Dim ipp2 As GatewayIPAddressInformationCollection
Dim ipp3 As IPAddressCollection
Dim ipp4 As UnicastIPAddressInformationCollection
Dim ipp5 As UnicastIPAddressInformation
Dim ipp6 As IPAddressInformationCollection
Dim ipp7 As IPAddressInformation
Dim iip8 As TcpConnectionInformation
Dim iip9 As IPGlobalProperties
Dim ob As Object
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ni = NetworkInterface.GetAllNetworkInterfaces
ListBox1.Items.Clear()
For Each ni2 In ni
ListBox1.Items.Add("")
ListBox1.Items.Add("Description " & ni2.Description)
ListBox1.Items.Add("MACAddresses: " & ni2.GetPhysicalAddress.ToString) 'MAC
ListBox1.Items.Add("ID: " & ni2.Id.ToString) 'MAC
ListBox1.Items.Add("Interface Typ: " & ni2.NetworkInterfaceType.ToString)
ListBox1.Items.Add("Op Status: " & ni2.OperationalStatus.ToString)
ListBox1.Items.Add("Speed : " & ni2.Speed.ToString)
' ListBox1.Items.Add("Multicast : " & ni2.SupportsMulticast.ToString)
ia = (ni2.GetIPProperties)
ipp2 = ia.GatewayAddresses
'For y = 0 To ipp2.Count - 1
'ListBox1.Items.Add(ipp2.Item(y).Address)
'Next
For Each ipp In ipp2
ListBox1.Items.Add("GatewayAddresses: " & ipp.Address.ToString)
Next
ipp3 = ia.DnsAddresses
For Each pa2 In ipp3
ListBox1.Items.Add("DNS adresses: " & pa2.ToString)
Next
ipp3 = ia.DhcpServerAddresses 'MASK
For Each pa2 In ipp3
ListBox1.Items.Add("MASKE(DHCP): " & pa2.ToString)
Next
ipp4 = ia.UnicastAddresses 'WINS
For Each ipp5 In ipp4
ListBox1.Items.Add("UncastAddresses: " & ipp5.Address.ToString)
Next
ipp6 = ia.AnycastAddresses
For Each ipp7 In ipp6
ListBox1.Items.Add("AnycastAddresses: " & ipp7.Address.ToString)
Next
ListBox1.Items.Add("DNS Suffix: " & ia.DnsSuffix.ToString)
ListBox1.Items.Add("HASH CODE: " & ia.GetHashCode().ToString)
Next
' iip9.GetActiveTcpConnections()
End Sub
End Class
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 28.04.06 14:48
Я это канечно баяню, но всё же...
после повторного соединения.
а при этом чуть выше...
С2 - 192.169.3.144
т.е. различие и есть RemoteIP... другой вопрос как его получить
Номер ответа: 2
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #2
Добавлено: 28.04.06 15:57
Не-а! Неверно.
Мне ето отличие сохранить надо и потом каждыи раз для идентификации использовать.
А те Аи Пи каждыи раз другие.
/Указал же в вопросе динамическое присвоение Аи ПИ.
При статическом - проблемы нет./
Номер ответа: 3
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #3
Добавлено: 28.04.06 15:58
Ну в принципе да согласен. Получи я ремоте ИП - вопрос тоже решен был бы.
Но может есть что то еше кроме ремоте ИП ?
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 28.04.06 17:50
Еще есть название соединения AdapterName, мб, от него плясать?
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 28.04.06 18:55
Sharp, та врядли...
Два ВПН соединения (или более). С1 и С2. с разными цель Ай Пи
Создаются На одном виртуальном адаптере.
Номер ответа: 6
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #6
Добавлено: 28.04.06 20:00
Вот что вышло у меня
MACAddresses: 00134928F5EB
ID: {F683891D-12BA-4FBC-AA9A-748C26BDE468}
Interface Typ: Ethernet
Op Status: Up
Speed : 100000000
GatewayAddresses: 192.168.1.1
DNS adresses: 192.168.1.1
MASKE(DHCP): 192.168.1.1
UncastAddresses: 192.168.1.33
DNS Suffix:
HASH CODE: 687191
Description VMware Virtual Ethernet Adapter for VMnet1
MACAddresses: 005056C00001
ID: {C062E341-E04F-48C4-A2CD-B6B4D1DAEA80}
Interface Typ: Ethernet
Op Status: Up
Speed : 100000000
MASKE(DHCP): 255.255.255.255
UncastAddresses: 192.168.88.1
DNS Suffix:
HASH CODE: 30923613
Description VMware Virtual Ethernet Adapter for VMnet8
MACAddresses: 005056C00008
ID: {C135A265-6085-4E00-A3E5-4205B8E210CC}
Interface Typ: Ethernet
Op Status: Up
Speed : 100000000
MASKE(DHCP): 255.255.255.255
UncastAddresses: 192.168.140.1
DNS Suffix:
HASH CODE: 49385318
Description MS TCP Loopback interface
MACAddresses:
ID: MS TCP Loopback interface
Interface Typ: Loopback
Op Status: Up
Speed : 10000000
UncastAddresses: 127.0.0.1
DNS Suffix:
HASH CODE: 7746814
Ни фига непонятно - что-нить тебе может пригодится?
Честно говоря, не понимаю как одно устройство (пусть даже виртуальное) может иметь два ай-пишника?
Может, объяснишь как-нить доходчиво, что такое VPN (для начала). Что такое С1 и С2 - не витамины же, нет?
Номер ответа: 7
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #7
Добавлено: 29.04.06 09:38
Один АйПишник - он чисто для общения с одним компом, а второй - с другим.
у меня вон на этом компе 2 ветевые карты, каждая с други компом, все компа 3 -)
так все ок, без проблем
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 29.04.06 09:41
VPN - Virtual Private Network - мне она необходима для TCP/IP соединения по модему(!), а так же для выхода в интернет через проксю (мой другой комп).
Или вот сижу я в инете, установил ВПН-ку с другим компом - и можно считать нажу связь ЛОКАЛЬНОЙ (скорость не увеличится ). Есть сразу два других IP-шника, именя обоих компов, ф-ии добавления ShareAdd и прочее.
Номер ответа: 9
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #9
Добавлено: 29.04.06 10:21
Спасибо Neco,
но пока вопрос открыт.
Итак, по приведенному тобой примеру:
Ай-Пишник виртуального интерфейса это UNICASTadress.
Он назначается поствщиком услуг и бывает
статический (не меняется при каждом соединении)
(в этом случае проблемы нет)
и динамический, назначается из пула адресов
автоматически случайным образом при каждои соединении.
Если я хочу проложить маршрут - мне надо знать
этот ай пишник.
Если он статический - я сохраняю его
в базе данных и программа каждый раз просматривает
эти UNICASTadress, находит совпадающий
с тем что в БД и прокладывает маршрут.
Фигня когда он динамический.
Я не знаю заранее, какой ай пи мне предоставит
сервер и могу проложить маршрут только
после установки соединения.
Вы скажете "ну и прокладывай на здоровъе"
Ищи не по ай пи , а по МАКу
(те. сохраняй в БД MAC-adress, от него Берём
UNICASTadresse который каждый раз меняется и дело в шляпе )
Проблема:
Бывает так, что при одиноковом MAC-adress
могут быть несколько виртуальных интерфейсов
с различными UNICASTadress. И понять который из них "мой" - невозможно.
Твой случай не даёт мне инфомации,
потому что у тебя все МАКи разные.
Интересно было бы посмотреть при одинаковых
Маках. Но всё равно спасибо за помощъ
Номер ответа: 10
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #10
Добавлено: 29.04.06 10:25
Это понятно. У меня тоже как видишь четыре IP на одном компе. Ещё один могу добавить, если в инет выйду через мопед. Но по-любому получается - по ip на устройство. Два айпишника вроде бы имеет dsl мопед - но и это не так. Просто он объединяет в себе два устройства и его встроенный роутер разруливает отношения между ними. Тот же комп с мопедом...
Ты что-то путаешь.
Для tcp соединения по модему, достаточно настройки входящего и исходящего подключений.
Для выхода в инет через другой комп, надо либо ставить прокси, либо (что проще) указывать шлюз в настройках tcp (разрул на уровне роутера компа).
И где тут настройка vpn-сервера?
Эти два других ip не принадлежат какому-либо одному узлу - у каждого узла (т.е. девайса) как ни крути только один ip. А все ip, которые лежат по обе стороны от (к примеру) модемной линии принадлежат компу-роутеру с мопедом. Всё остальное (шары, dns) достигается путём добавления "клиент для сетей ms" в настройках tcp модема.
В общем, вопросы те же:
Что такое vpn?
Что такое виртуальный адаптер?
Что такое виртуальный интерфейс?
Что такое С1 и С2?
Номер ответа: 11
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #11
Добавлено: 29.04.06 10:45
Пардон, запостил после твоего ответа, но попал до.
Ммм...
Что-то не складывается...
Надо помедитировать...
Номер ответа: 12
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #12
Добавлено: 29.04.06 12:52
Короче, выкрутился так:
Всякий кто хочет установить соединение
сначала смотрит в БД и есл там нет
его МАк-адреса, записывает его туда
на время до полного соединения.
Одновременно смотрит какие
соединения уже установлены, есть ли там его МАк,
если есть - то запоминает какие Ай пи
им принадлежат.
Ждёт появления нового Мак адреса.
По появлению - когда соединение установлено-
читает соответствующий ему Ай Пи.
и удаляет свой МАк из БД.
Если же в БД изначально был такой же Мак -
- обождать пока исчезнет.
И только потом вписать свой и подсоединяться.
Ошибки в таком варианте маловероятны,
т.к. существующие соединения на данном МАКе
мы просматриваем и запоминаем
а новые не появятся пока мы не установим соединение.
Через Ж.. причем с большой буквы Ж,
но делать нечего.
Буду признателен если кто найдёт более умное решение.
Кстати, различаются они ещё по ДНС
но в случае с NECO ДНСа я не видел.
я выложил внизу новый код,
можно попробовать кто хочет.
Полагаю можно как то определить,
Стат/динам Ай Пи
И если он Стат - то сохранять Ай Пи
А если динам ... пока не знаю
Неко, скажи у тебя статический или динамический Ай Пи ?
Imports System.Net
Imports System.Net.NetworkInformation
'Imports System.Net.NetworkInformation
Public Class Form1
Dim ni() As NetworkInterface
Dim ni2 As NetworkInterface
Dim pa() As IPAddress
Dim pa2 As IPAddress
Dim ipp As GatewayIPAddressInformation
Dim ia As IPInterfaceProperties
Dim ia2 As Collection
Dim ipp2 As GatewayIPAddressInformationCollection
Dim ipp3 As IPAddressCollection
Dim ipp4 As UnicastIPAddressInformationCollection
Dim ipp5 As UnicastIPAddressInformation
Dim ipp6 As IPAddressInformationCollection
Dim ipp7 As IPAddressInformation
Dim iip8 As TcpConnectionInformation
Dim iip9 As IPGlobalProperties
Dim ip4ip As IPv4InterfaceProperties
Dim ip6ip As IPv6InterfaceProperties
Dim ip4ips As IPv4InterfaceStatistics
Dim ob As Object
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ni = NetworkInterface.GetAllNetworkInterfaces
ListBox1.Items.Clear()
For Each ni2 In ni
ListBox1.Items.Add(""
ListBox1.Items.Add("escription " & ni2.Description)
ListBox1.Items.Add("MACAddresses: " & ni2.GetPhysicalAddress.ToString) 'MAC
ListBox1.Items.Add("ID: " & ni2.Id.ToString) 'MAC
ListBox1.Items.Add("Interface Typ: " & ni2.NetworkInterfaceType.ToString)
ListBox1.Items.Add("Op Status: " & ni2.OperationalStatus.ToString)
ListBox1.Items.Add("Speed : " & ni2.Speed.ToString)
' ListBox1.Items.Add("Multicast : " & ni2.SupportsMulticast.ToString)
ia = (ni2.GetIPProperties)
ipp2 = ia.GatewayAddresses
'For y = 0 To ipp2.Count - 1
'ListBox1.Items.Add(ipp2.Item(y).Address)
'Next
For Each ipp In ipp2
ListBox1.Items.Add("GatewayAddresses: " & ipp.Address.ToString)
Next
ipp3 = ia.DnsAddresses
ListBox1.Items.Add("NS Enabled Y/N: " & ia.IsDnsEnabled.ToString)
For Each pa2 In ipp3
ListBox1.Items.Add("NS adresses: " & pa2.ToString)
ListBox1.Items.Add("NS Name: " & Dns.GetHostEntry(pa2).HostName)
ListBox1.Items.Add("NS Alias: " & Dns.GetHostEntry(pa2).Aliases.ToString)
Next
ListBox1.Items.Add("ynamic DNS Y/N: " & ia.IsDynamicDnsEnabled.ToString)
ipp3 = ia.DhcpServerAddresses 'MASK
For Each pa2 In ipp3
ListBox1.Items.Add("MASKE(DHCP): " & pa2.ToString)
Next
ipp4 = ia.UnicastAddresses 'WINS
For Each ipp5 In ipp4
ListBox1.Items.Add("UncastAddresses: " & ipp5.Address.ToString)
Next
ipp6 = ia.AnycastAddresses
For Each ipp7 In ipp6
ListBox1.Items.Add("AnycastAddresses: " & ipp7.Address.ToString)
Next
ListBox1.Items.Add("NS Suffix: " & ia.DnsSuffix.ToString)
ListBox1.Items.Add("HASH CODE: " & ia.GetHashCode().ToString)
ListBox1.Items.Add("ipV: "
Try
ip4ip = ia.GetIPv4Properties()
ListBox1.Items.Add("ipV4 index: " & ip4ip.Index.ToString)
ListBox1.Items.Add("ipV4 IsAutomaticPrivateAddressingActive: " & ip4ip.IsAutomaticPrivateAddressingActive.ToString)
ListBox1.Items.Add("ipV4 IsAutomaticPrivateAddressingEnabled: " & ip4ip.IsAutomaticPrivateAddressingEnabled.ToString)
ListBox1.Items.Add("ipV4 IsDHCPEnabled: " & ip4ip.IsDhcpEnabled.ToString)
ListBox1.Items.Add("ipV4 IsForwardingEnabled: " & ip4ip.IsForwardingEnabled.ToString)
ListBox1.Items.Add("ipV4 MTU: " & ip4ip.Mtu.ToString)
ListBox1.Items.Add("ipV4 UsesWins: " & ip4ip.UsesWins.ToString)
Catch ex As Exception
End Try
Try
ip6ip = ia.GetIPv6Properties()
ListBox1.Items.Add("ipV6 MTU: " & ip6ip.Mtu.ToString)
ListBox1.Items.Add("ipV6 Index: " & ip6ip.Index.ToString)
Catch ex As Exception
End Try
ip4ips = ni2.GetIPv4Statistics
Next
' iip9.GetActiveTcpConnections()
End Sub
End Class
Номер ответа: 13
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #13
Добавлено: 29.04.06 13:11
Что такое vpn?
Что такое виртуальный адаптер?
Что такое виртуальный интерфейс?
Что такое С1 и С2?
Речь впринципе не только о ВПН,
речь о любом соединении,
которое использует виртуаьный интерфейс/он же виртуальный адаптер/ - то что физически на компе
не существует, а создаётся программно,
драйвером например (такой интерфейс существует
с момента вкл до выкл компа) либо самим софтом
при соединении , что собственно то же самое но - такой интерфейс появляется на момент соединения а после разрыва исчезает. (по пробуйте диалап например). В примере НЕКО очевидно что
Зухель - это физическое устройство
ZyXEL OMNI LAN PCI G1 1000Base-T Adapter
а это виртьуальные интерфейсы
VMware Virtual Ethernet Adapter for VMnet1
VMware Virtual Ethernet Adapter for VMnet8
созданные программно и на которые собственно можно ложить маршрут
Номер ответа: 14
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #14
Добавлено: 29.04.06 17:52
У инета (192.168.1.33) динамо - выдаётся мопедом (который 192.168.1.1).
У виртуальных статика у обоих.
MACAddresses: 00134928F5EB
ID: {F683891D-12BA-4FBC-AA9A-748C26BDE468}
Interface Typ: Ethernet
Op Status: Up
Speed : 100000000
GatewayAddresses: 192.168.1.1
DNS Enabled Y/N: False
DNS adresses: 192.168.1.1
DNS Name: ch4.telecom.kz
DNS Alias: System.String[]
Dynamic DNS Y/N: True
MASKE(DHCP): 192.168.1.1
UncastAddresses: 192.168.1.33
DNS Suffix:
HASH CODE: 45053718
ipV:
ipV4 index: 4
ipV4 IsAutomaticPrivateAddressingActive: False
ipV4 IsAutomaticPrivateAddressingEnabled: True
ipV4 IsDHCPEnabled: True
ipV4 IsForwardingEnabled: False
ipV4 MTU: 1500
ipV4 UsesWins: False
Description VMware Virtual Ethernet Adapter for VMnet1
MACAddresses: 005056C00001
ID: {C062E341-E04F-48C4-A2CD-B6B4D1DAEA80}
Interface Typ: Ethernet
Op Status: Up
Speed : 100000000
DNS Enabled Y/N: False
Dynamic DNS Y/N: True
MASKE(DHCP): 255.255.255.255
UncastAddresses: 192.168.88.1
DNS Suffix:
HASH CODE: 60148537
ipV:
ipV4 index: 3
ipV4 IsAutomaticPrivateAddressingActive: False
ipV4 IsAutomaticPrivateAddressingEnabled: True
ipV4 IsDHCPEnabled: False
ipV4 IsForwardingEnabled: False
ipV4 MTU: 1500
ipV4 UsesWins: False
Description VMware Virtual Ethernet Adapter for VMnet8
MACAddresses: 005056C00008
ID: {C135A265-6085-4E00-A3E5-4205B8E210CC}
Interface Typ: Ethernet
Op Status: Up
Speed : 100000000
DNS Enabled Y/N: False
Dynamic DNS Y/N: True
MASKE(DHCP): 255.255.255.255
UncastAddresses: 192.168.140.1
DNS Suffix:
HASH CODE: 61597202
ipV:
ipV4 index: 2
ipV4 IsAutomaticPrivateAddressingActive: False
ipV4 IsAutomaticPrivateAddressingEnabled: True
ipV4 IsDHCPEnabled: False
ipV4 IsForwardingEnabled: False
ipV4 MTU: 1500
ipV4 UsesWins: False
Description MS TCP Loopback interface
MACAddresses:
ID: MS TCP Loopback interface
Interface Typ: Loopback
Op Status: Up
Speed : 10000000
DNS Enabled Y/N: False
Dynamic DNS Y/N: True
UncastAddresses: 127.0.0.1
DNS Suffix:
HASH CODE: 65472899
ipV:
Приведи, кстати, свои результаты тоже - интересно глянуть.
---
Всё ещё не въехал (счас отвлёкся малость) в тему - но потом всё-таки хочу добить вопрос, т.к. один раз понадобилось знание в этой области и получилось так, что не знал ни я, ни админ.
Номер ответа: 15
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #15
Добавлено: 30.04.06 11:18
Не, похоже никак не получится.
Единственное что, можно определить
есди Ай Пи статический, то можно сохранять его.
В твоём случае Ай Пи динамический
Dynamic DNS Y/N: True
причём он назначается не поставщиком услуг,
а твоей виндой.
ящас не могу подключить два соединения, но картина такая
на двух виртуальных интерфейсах
всё одинаковое кроме UNICAST ID
ещё отличаются сервера ДНС, но это мало что даёт,
т.к. например в твоём случае их вообще нет.
/на виртуальных интерфейсах/
Конечно если сервер ДНС есть - то проблема тоже
похоже решается.
Я запоминаю Мак и ДНС-имя и потом ищу соответствующий етой паре Ай Пи (Уникаст),
я предполагаю, что все соединения с одинаковым
Ремоте Ай Пи использует после соединения одинаковый ДНС-сервер.
(Ремоте Ай Пи - я называю то что прописывается
в свойствах соединения)
Но даже если это все так,
то что делать если ДНС не используется,
как в твоем случае
Если ещё мало понятна проблема,
задавайте вопросы.
Ещё раз спасибо