Forum

2 Farklı Ağ Üzerind...
 
Bildirimler
Hepsini Temizle

2 Farklı Ağ Üzerinde Ping İşlemleri Hk.

7 Yazılar
4 Üyeler
0 Reactions
1,912 Görüntüleme
(@ugurcankoc)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Merhaba,

 

Bir ping uygulaması yazdım c# üzerinden amacım monitoring etmek. Bir kaç aydır tek network üzerindeki cihazlarımızın ping durumlarını uygulama ile takip edebiliyorum ancak gelişen ihtiyaçlar doğrultusunda diğer network üzerindeki cihazlarımızında bağlantılarının kontrolünü bu şekilde takip etmek istiyoruz. Diğer network'den uygulamanın çalıştığı bilgisayarın 2. network girişine bir ağ kablosu taktım. Her iki ethernet kartınada sabit ıp tanımladım. CMD üzerinden manuel olarak kontrol ettiğimde her iki cihazada başarılı ping atabiliyorum. Ancak maalesef program sadece bir networkdakine atıp diğerine geldiğinde hata vermekte. Kabloları tek tek çıkararak denediğimde takılı olan network kablosunun bulunduğu ağdaki cihazlara uygulama üzerinden ping istekleri başarılı oluyor  ancak 2 side takılı olduğunda program sadece bir networkdeki ağlara başarılı ping işlemi yapıyor.

 

Bu durumu aşmak farklı yöntemler denedim. Örneğin networklerdeki cihazlar kategorili yani bir networkde a türü cihazlar var ise diğerinde b türü cihazlar mevcut. b türü cihazlara ping isteği atacağı zaman diğer ethernet bağdaştırıcıyı kapattırmayı denedim ancak bu seferde İşletim sistemi üzerinde farklı problemlere yol açmakta, Ayrıca Nic Teaming ile yapmayı denedim ancak burada da değişen birşey olmadı. Her iki networkdeki cihazlara CMD üzerinden manuel ping atabilmekte olup uygulama üzerinden ilk zamanki sorun devam etti. 

 

Uygulama C# ile yapıldığından aşağıdaki komut ile ping atmaktayım.

 

Ping x = new Ping();
PingReply reply = x.Send(IPAddress.Parse("192.168.1.1");

 

Komut ile ve diğer yöntemler konusunda sorunu çözmeme yardımcı olursanız sevinirim. 

 

Not: İki farklı network üzerindeki switchlerde köprüleme yapmak istemiyoruz bu çözümü yok sayabiliriz.

 

Şimdiden teşekkürler. 

 
Gönderildi : 08/05/2020 14:15

(@tanerk)
Gönderiler: 78
Trusted Member
 

Merhaba;

Neden 2 ethernet kartı kullanıyorsunuz? Ortamınızda Vlan var mı? Bu networkler nerede sonlanıyor? Firewall veya router var mı?

Network ortamınız hakkında biraz daha bilgi verebilir misiniz?

 
Gönderildi : 08/05/2020 14:35

(@ugurcankoc)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Hocam uygulamanın yüklü olduğu bilgisayarda 2 farklı ethernet kartı bu kartlara gelen kablolar 2 farklı network switch'inden gelmektedir.

 
Gönderildi : 08/05/2020 14:50

(@tanerk)
Gönderiler: 78
Trusted Member
 

2 farklı network aynı lokasyonda anladığım kadarıyla değil mi? 

Network kartlarına IP verirken default gateway'i internete çıkacağınız karta yazın. Diğerine yazmayın. Sadece IP ve Subnet mask girin.

Olmazsa statik route yazmak gerekebilir diğer IP için. 

CMD üzerinden aşağıdaki gibi static route yazabailirsiniz.

route add 10.1.0.0 mask 255.255.255.0 10.1.0.1 -p [IP'yi ve gateway'i kendi network'ünüze göre uyarlayın]
route delete 10.1.0.0 [Silmek için]

Aslında Yöentilebilir switchleriniz varsa networkleri farklı vlanlara alabilirsiniz. Vlan arasındaki yönlendirmeyi firewall üzerinden veya varsa Layer 3 switch üzerinden yapabilirsiniz. O zaman 2 ethernet kartı kullanmanıza gerek kalmaz. 

 
Gönderildi : 08/05/2020 15:13

(@ugurcankoc)
Gönderiler: 3
Active Member
Konu başlatıcı
 
Gönderen: @tanerk

2 farklı network aynı lokasyonda anladığım kadarıyla değil mi? 

Network kartlarına IP verirken default gateway'i internete çıkacağınız karta yazın. Diğerine yazmayın. Sadece IP ve Subnet mask girin.

Olmazsa statik route yazmak gerekebilir diğer IP için. 

CMD üzerinden aşağıdaki gibi static route yazabailirsiniz.

route add 10.1.0.0 mask 255.255.255.0 10.1.0.1 -p [IP'yi ve gateway'i kendi network'ünüze göre uyarlayın]
route delete 10.1.0.0 [Silmek için]

Aslında Yöentilebilir switchleriniz varsa networkleri farklı vlanlara alabilirsiniz. Vlan arasındaki yönlendirmeyi firewall üzerinden veya varsa Layer 3 switch üzerinden yapabilirsiniz. O zaman 2 ethernet kartı kullanmanıza gerek kalmaz. 

Hocam ben router veya switchler üzerinde işlem yapmak istemiyorum açıkcası yapmak istediğim daha çok yazılımsal çözüm sağlayabilmek. Her iki adaptörü birleştirerek windows'a tek bir adaptör gibi gösterebilsem problemin çözüleceğini düşünüyorum veya ping komutunda şu kategori cihazlar için şu network kartını kullan diyebilirsem çözeceğimi düşünüyorum. 

İlginiz için çok teşekkür ederim son çare olarak dediğiniz gibi route işlemi yapacağım. 

 
Gönderildi : 09/05/2020 08:01

(@eravse)
Gönderiler: 1753
Üye
 
Gönderen: @ugurcankoc
Gönderen: @tanerk

2 farklı network aynı lokasyonda anladığım kadarıyla değil mi? 

Network kartlarına IP verirken default gateway'i internete çıkacağınız karta yazın. Diğerine yazmayın. Sadece IP ve Subnet mask girin.

Olmazsa statik route yazmak gerekebilir diğer IP için. 

CMD üzerinden aşağıdaki gibi static route yazabailirsiniz.

route add 10.1.0.0 mask 255.255.255.0 10.1.0.1 -p [IP'yi ve gateway'i kendi network'ünüze göre uyarlayın]
route delete 10.1.0.0 [Silmek için]

Aslında Yöentilebilir switchleriniz varsa networkleri farklı vlanlara alabilirsiniz. Vlan arasındaki yönlendirmeyi firewall üzerinden veya varsa Layer 3 switch üzerinden yapabilirsiniz. O zaman 2 ethernet kartı kullanmanıza gerek kalmaz. 

Hocam ben router veya switchler üzerinde işlem yapmak istemiyorum açıkcası yapmak istediğim daha çok yazılımsal çözüm sağlayabilmek. Her iki adaptörü birleştirerek windows'a tek bir adaptör gibi gösterebilsem problemin çözüleceğini düşünüyorum veya ping komutunda şu kategori cihazlar için şu network kartını kullan diyebilirsem çözeceğimi düşünüyorum. 

İlginiz için çok teşekkür ederim son çare olarak dediğiniz gibi route işlemi yapacağım. 

merhaba bunu yapabılmenız ıcın ıkı network kartı takılı olması lazım eğer aynı anda yapacaksanız. İki lan ağını da ayrı ayrı tanımladıktan sonra aktıf network karlarını lısteleyerek ıp bloklarına gore bır for dongusu ıle bunu yapabılırsınız. bridge modda kod ile olmaya bilir. ağ birleşltirmesi yapmak doğru bir çozum olmayabılır. 

Tek network kartı var ıse ip ve ağ geçitlerini değiştirmeniz gerekiyor onun içinde sizin için aradığım bir kod bloğunu deneybilirsiniz.

**** KODU BEN YAZMADIM TEST ETTİM SADECE AKTİF KARTIN DEĞİŞİMİNİ YAPIYOR BİR BAKMANIZ LAZIM

class NetworkManagement
  {
    public void setIP(string ip_address, string subnet_mask)
    {
      ManagementClass objMC =
        new ManagementClass("Win32_NetworkAdapterConfiguration");
      ManagementObjectCollection objMOC = objMC.GetInstances();

      foreach (ManagementObject objMO in objMOC)
      {
        if ((bool)objMO["IPEnabled"])
        {
          ManagementBaseObject setIP;
          ManagementBaseObject newIP =
            objMO.GetMethodParameters("EnableStatic");

          newIP["IPAddress"] = new string[] { ip_address };
          newIP["SubnetMask"] = new string[] { subnet_mask };

          setIP = objMO.InvokeMethod("EnableStatic", newIP, null);
        }
      }
    }

    public void setGateway(string gateway)
    {
      ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
      ManagementObjectCollection objMOC = objMC.GetInstances();

      foreach (ManagementObject objMO in objMOC)
      {
        if ((bool)objMO["IPEnabled"])
        {
          ManagementBaseObject setGateway;
          ManagementBaseObject newGateway =
            objMO.GetMethodParameters("SetGateways");

          newGateway["DefaultIPGateway"] = new string[] { gateway };
          newGateway["GatewayCostMetric"] = new int[] { 1 };

          setGateway = objMO.InvokeMethod("SetGateways", newGateway, null);
        }
      }
    }

    public void setDNS(string NIC, string DNS)
    {
      ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
      ManagementObjectCollection objMOC = objMC.GetInstances();

      foreach (ManagementObject objMO in objMOC)
      {
        if ((bool)objMO["IPEnabled"])
        {
          // if you are using the System.Net.NetworkInformation.NetworkInterface
          // you'll need to change this line to
          // if (objMO["Caption"].ToString().Contains(NIC))
          // and pass in the Description property instead of the name 
          if (objMO["Caption"].Equals(NIC))
          {
            ManagementBaseObject newDNS =
              objMO.GetMethodParameters("SetDNSServerSearchOrder");
            newDNS["DNSServerSearchOrder"] = DNS.Split(',');
            ManagementBaseObject setDNS =
              objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
          }
        }
      }
    }

    public void setWINS(string NIC, string priWINS, string secWINS)
    {
      ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
      ManagementObjectCollection objMOC = objMC.GetInstances();

      foreach (ManagementObject objMO in objMOC)
      {
        if ((bool)objMO["IPEnabled"])
        {
          if (objMO["Caption"].Equals(NIC))
          {
            ManagementBaseObject setWINS;
            ManagementBaseObject wins =
            objMO.GetMethodParameters("SetWINSServer");
            wins.SetPropertyValue("WINSPrimaryServer", priWINS);
            wins.SetPropertyValue("WINSSecondaryServer", secWINS);

            setWINS = objMO.InvokeMethod("SetWINSServer", wins, null);
          }
        }
      }
    } 
  }

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 09/05/2020 21:50

(@mustafatasci)
Gönderiler: 1643
Üye
 
Gönderen: @ugurcankoc
Gönderen: @tanerk

2 farklı network aynı lokasyonda anladığım kadarıyla değil mi? 

Network kartlarına IP verirken default gateway'i internete çıkacağınız karta yazın. Diğerine yazmayın. Sadece IP ve Subnet mask girin.

Olmazsa statik route yazmak gerekebilir diğer IP için. 

CMD üzerinden aşağıdaki gibi static route yazabailirsiniz.

route add 10.1.0.0 mask 255.255.255.0 10.1.0.1 -p [IP'yi ve gateway'i kendi network'ünüze göre uyarlayın]
route delete 10.1.0.0 [Silmek için]

Aslında Yöentilebilir switchleriniz varsa networkleri farklı vlanlara alabilirsiniz. Vlan arasındaki yönlendirmeyi firewall üzerinden veya varsa Layer 3 switch üzerinden yapabilirsiniz. O zaman 2 ethernet kartı kullanmanıza gerek kalmaz. 

Hocam ben router veya switchler üzerinde işlem yapmak istemiyorum açıkcası yapmak istediğim daha çok yazılımsal çözüm sağlayabilmek. Her iki adaptörü birleştirerek windows'a tek bir adaptör gibi gösterebilsem problemin çözüleceğini düşünüyorum veya ping komutunda şu kategori cihazlar için şu network kartını kullan diyebilirsem çözeceğimi düşünüyorum. 

İlginiz için çok teşekkür ederim son çare olarak dediğiniz gibi route işlemi yapacağım. 

Merhaba

 

her 2 kartı Windows'a tek network adaptesi olarak göstermenin tek yolu fiziksel olarak teke düşürmektir.

ICMP paketleri böyle çalışır, source belirtmelisiniz,

Eğer amacınız sorunun çözümünü aramak ise, gelen kabloları vlan id leri ile alacak tek network üzerinde 2 yada fazla network ulaşabileceksiniz,

Böylelikle ICMP paketlerinde ki source her seferinde değiştirmek zorunda kalmayacaksınız.

En hızlı ve doğru çözüm bu olur, yazılım tarafında sürekli source seçmek , eklemek , düzenlemek, silmek gibi aksiyonlar ile uğraşmanız gerekecektir.

 

Kolay gelsin.

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 10/05/2020 02:09

Paylaş: